~ chicken-core (chicken-5) bae148680cf3ed65dc344b53121a2aa7e60f3bf3
commit bae148680cf3ed65dc344b53121a2aa7e60f3bf3
Author: felix <felix@z.(none)>
AuthorDate: Thu Mar 24 21:01:13 2011 +0100
Commit: felix <felix@z.(none)>
CommitDate: Thu Mar 24 21:01:13 2011 +0100
added alternative syntax to functor-tests
diff --git a/expand.scm b/expand.scm
index 2aaf4aab..77ac7ca8 100644
--- a/expand.scm
+++ b/expand.scm
@@ -1320,7 +1320,7 @@
(app (cadddr x)))
(cond ((symbol? app)
(cond ((fx> len 4)
- ;; suggested by syn
+ ;; feature suggested by syn:
;;
;; (module NAME = FUNCTORNAME BODY ...)
;; ~>
diff --git a/tests/functor-tests.scm b/tests/functor-tests.scm
index 18d39689..6db7b14a 100644
--- a/tests/functor-tests.scm
+++ b/tests/functor-tests.scm
@@ -4,6 +4,12 @@
(use srfi-1 data-structures extras)
+(include "test.scm")
+(test-begin)
+
+;;
+
+
(include "test-queue")
(include "breadth-first")
@@ -83,3 +89,43 @@
;;XXX shows (""), which looks wrong:
(pp (show 8 (search next-char '()))) ;XXX assert
+
+;; Test for errors
+
+(module m1 ())
+
+(test-error
+ "argument mismatch"
+ (module m2 = (breadth-first m1)))
+
+(test-error
+ "undefined module"
+ (module m2 = (breadth-first hunoz)))
+
+(test-error
+ "undefined interface"
+ (module m2 HUNOZ))
+
+(test-error
+ "undefined interface in functor"
+ (functor (f1 (X HUNOZ)) ()))
+
+(test-error
+ "undefined interface in functor result"
+ (functor (f1 (X ())) HUNOZ))
+
+
+;; Test alternative instantiation syntax:
+
+(functor (frob (X (yibble))) *
+ (import chicken X) yibble)
+
+(test-equal?
+ "alternative functor instantiation syntax"
+ (module yabble = frob (import scheme) (define yibble 99))
+ 99)
+
+
+;;
+
+(test-end)
Trap