summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test-suite/tests/srcprop.test48
1 files changed, 42 insertions, 6 deletions
diff --git a/test-suite/tests/srcprop.test b/test-suite/tests/srcprop.test
index 0ca11b33a..4afc31802 100644
--- a/test-suite/tests/srcprop.test
+++ b/test-suite/tests/srcprop.test
@@ -25,15 +25,51 @@
;;;
(with-test-prefix "source-properties"
-
+
(pass-if "no props"
(null? (source-properties (list 1 2 3))))
-
+
(read-enable 'positions)
- (let ((s (read (open-input-string "(1 . 2)"))))
-
- (pass-if "read properties"
- (not (null? (source-properties s))))))
+ (with-test-prefix "read properties"
+ (define (reads-with-srcprops? str)
+ (let ((x (read (open-input-string str))))
+ (not (null? (source-properties x)))))
+
+ (pass-if "pairs" (reads-with-srcprops? "(1 . 2)"))
+ (pass-if "vectors" (reads-with-srcprops? "#(1 2 3)"))
+ (pass-if "bytevectors" (reads-with-srcprops? "#vu8(1 2 3)"))
+ (pass-if "bitvectors" (reads-with-srcprops? "#*101011"))
+ (pass-if "srfi4 vectors" (reads-with-srcprops? "#f64(3.1415 2.71)"))
+ (pass-if "arrays" (reads-with-srcprops? "#2u32@2@3((1 2) (2 3))"))
+ (pass-if "strings" (reads-with-srcprops? "\"hello\""))
+ (pass-if "null string" (reads-with-srcprops? "\"\""))
+
+ (pass-if "floats" (reads-with-srcprops? "3.1415"))
+ (pass-if "fractions" (reads-with-srcprops? "1/2"))
+ (pass-if "complex numbers" (reads-with-srcprops? "1+1i"))
+ (pass-if "bignums"
+ (and (reads-with-srcprops? (number->string (1+ most-positive-fixnum)))
+ (reads-with-srcprops? (number->string (1- most-negative-fixnum)))))
+
+ (pass-if "fixnums (should have none)"
+ (not (or (reads-with-srcprops? "0")
+ (reads-with-srcprops? "1")
+ (reads-with-srcprops? "-1")
+ (reads-with-srcprops? (number->string most-positive-fixnum))
+ (reads-with-srcprops? (number->string most-negative-fixnum)))))
+
+ (pass-if "symbols (should have none)"
+ (not (reads-with-srcprops? "foo")))
+
+ (pass-if "keywords (should have none)"
+ (not (reads-with-srcprops? "#:foo")))
+
+ (pass-if "characters (should have none)"
+ (not (reads-with-srcprops? "#\\c")))
+
+ (pass-if "booleans (should have none)"
+ (not (or (reads-with-srcprops? "#t")
+ (reads-with-srcprops? "#f"))))))
;;;
;;; set-source-property!