~ chicken-core (chicken-5) f5506a132c2a9b64946c6d59c2adbc592cd30846


commit f5506a132c2a9b64946c6d59c2adbc592cd30846
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Wed Mar 23 10:19:55 2011 -0400
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Wed Mar 23 10:19:55 2011 -0400

    fixed functor tests; fixed bug in exports-validation; everything works; the sun is shining

diff --git a/modules.scm b/modules.scm
index c0a90fdb..cbc802c3 100644
--- a/modules.scm
+++ b/modules.scm
@@ -724,7 +724,11 @@
 			   (if (and (pair? (cdr x)) (symbol? (cadr x)))
 			       (iface (cadr x))
 			       (err "invalid interface specification" x exps)))
-			  (else (err "invalid export" x exps))))))))))
+			  (else
+			   (let loop2 ((lst x))
+			     (cond ((null? lst) (cons x (loop (cdr xps))))
+				   ((symbol? (car lst)) (loop2 (cdr lst)))
+				   (else (err "invalid export" x exps)))))))))))))
 
 (define (##sys#register-functor name fargs fexps body)
   (putp name '##core#functor (cons fargs (cons fexps body))))
diff --git a/tests/QUEUE.scm b/tests/QUEUE.scm
index b9f79868..59d9eee4 100644
--- a/tests/QUEUE.scm
+++ b/tests/QUEUE.scm
@@ -2,8 +2,8 @@
 
 
 (define-interface QUEUE
-  empty-queue
-  enqueue
-  head
-  empty?
-  dequeue)
+  (empty-queue
+   enqueue
+   head
+   empty?
+   dequeue))
diff --git a/tests/embedded3.c b/tests/embedded3.c
index 301a2e7f..ebf328c4 100644
--- a/tests/embedded3.c
+++ b/tests/embedded3.c
@@ -26,7 +26,7 @@ int main() {
   assert(!status);
  
   CHICKEN_get_error_message(buffer, 255);
-  printf("ouch: %s\n", buffer);
+  printf("ouch (expected): %s\n", buffer);
  
   status = CHICKEN_eval_string_to_string("(bar 23)", buffer, 255);
   assert(status);
diff --git a/tests/functor-tests.scm b/tests/functor-tests.scm
index 0cbfde2b..18d39689 100644
--- a/tests/functor-tests.scm
+++ b/tests/functor-tests.scm
@@ -1,7 +1,7 @@
 ;;;; functor-tests.scm
 
 
-(use srfi-1 data-structures)
+(use srfi-1 data-structures extras)
 
 
 (include "test-queue")
@@ -33,7 +33,9 @@
       (if (empty? q2) (entry-x q) (head q2))))
   (define (dequeue q) 
     (let ((q2 (entry-q q)))
-      (if (empty? q2) empty-queue (make-queue (dequeue q) x)))) )
+      (if (empty? q2) 
+	  empty-queue 
+	  (make-entry (dequeue q2) (entry-x q)))) ))
 
 
 (module queue3 QUEUE
@@ -61,14 +63,14 @@
 (import (rename test-q2 (list->queue l2q2) (queue->list q2l2)))
 (import (rename test-q3 (list->queue l2q3) (queue->list q2l3)))
 
-(define long-list (list-tabulate 10000 identity))
+(define long-list (list-tabulate 1000 identity))
 
 (print "Queue representation #1:")
 (time (q2l1 (l2q1 long-list)))
 (print "Queue representation #2:")
 (time (q2l2 (l2q2 long-list)))
 (print "Queue representation #3:")
-(time (q2l3 (q2l3 long-list)))
+(time (q2l3 (l2q3 long-list)))
 
 (module breadth = (breadth-first queue3))
 (import breadth)
@@ -79,4 +81,5 @@
 (define (show n csq) 
   (map list->string (take csq 1)))
 
+;;XXX shows (""), which looks wrong:
 (pp (show 8 (search next-char '())))	;XXX assert
diff --git a/tests/runtests.sh b/tests/runtests.sh
index 2e730e6d..43dfb09f 100644
--- a/tests/runtests.sh
+++ b/tests/runtests.sh
@@ -109,14 +109,6 @@ diff -bu dwindtst.expected dwindtst.out
 echo "*** Skipping \"feeley-dynwind\" for now ***"
 # $interpret -s feeley-dynwind.scm
 
-echo "======================================== lolevel tests ..."
-$interpret -s lolevel-tests.scm
-$compile lolevel-tests.scm
-./a.out
-
-echo "======================================== arithmetic tests ..."
-$interpret -D check -s arithmetic-test.scm
-
 echo "======================================== syntax tests ..."
 $interpret -s syntax-tests.scm
 
@@ -150,11 +142,12 @@ $interpret -bnq simple-functors-test.scm
 $compile simple-functors-test.scm
 ./a.out
 $interpret -bnq functor-tests.scm
-$compile -bnq functor-tests.scm
+$compile functor-tests.scm
 ./a.out
 $compile -s square-functor.scm -J
 $compile -s square-functor.import.scm
-$compile run-square-functor.scm
+$interpret -bnq use-square-functor.scm
+$compile use-square-functor.scm
 ./a.out
 
 echo "======================================== compiler syntax tests ..."
@@ -226,6 +219,9 @@ $interpret -bnq ec.so ec-tests.scm
 # $compile ec-tests.scm
 # ./a.out        # takes ages to compile
 
+echo "======================================== arithmetic tests ..."
+$interpret -D check -s arithmetic-test.scm
+
 echo "======================================== hash-table tests ..."
 $interpret -s hash-table-tests.scm
 
@@ -258,6 +254,11 @@ touch tmpdir/.dotfile
 ln -s /usr tmpdir/symlink
 $interpret -R posix -e '(delete-directory "tmpdir" #t)'
 
+echo "======================================== lolevel tests ..."
+$interpret -s lolevel-tests.scm
+$compile lolevel-tests.scm
+./a.out
+
 echo "======================================== regular expression tests ..."
 $interpret -bnq test-irregex.scm
 $interpret -bnq test-glob.scm
diff --git a/tests/simple-functors-test.scm b/tests/simple-functors-test.scm
index 11f01776..f72e9662 100644
--- a/tests/simple-functors-test.scm
+++ b/tests/simple-functors-test.scm
@@ -18,5 +18,5 @@
 (module bar = (do-things f))
 
 (import bar)
-(assert (equal? '(1 2) (doit)))
+(assert (equal? '(1 2) (do-it)))
 
diff --git a/tests/test-queue.scm b/tests/test-queue.scm
index aaed0972..00e53242 100644
--- a/tests/test-queue.scm
+++ b/tests/test-queue.scm
@@ -9,7 +9,7 @@
   (use srfi-1)
   
   (define (list->queue lst)
-    (fold (lambda (x q) (enqueue q x)) empty-queue l))
+    (fold (lambda (x q) (enqueue q x)) empty-queue lst))
 
   (define (queue->list q)
     (if (empty? q)
Trap