tests: Don't rely on `scm_call_2' being visible.
[bpt/guile.git] / test-suite / tests / srcprop.test
index 17d8ae2..4afc318 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; srcprop.test --- test Guile source properties    -*- scheme -*-
 ;;;;
-;;;; Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+;;;; Copyright (C) 2003, 2006, 2009 Free Software Foundation, Inc.
 ;;;;
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
 ;;;
 
 (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!
@@ -44,6 +80,7 @@
 
   (pass-if "setting the breakpoint property works"
     (let ((s (read (open-input-string "(+ 3 4)"))))
+      (throw 'unresolved)
       (set-source-property! s 'breakpoint #t)
       (let ((current-trap-opts (evaluator-traps-interface))
            (current-debug-opts (debug-options-interface))
 
   (pass-if "setting the breakpoint property works"
     (let ((s (read (open-input-string "(+ 3 4)"))))
+      (throw 'unresolved)
       (set-source-properties! s '((breakpoint #t)))
       (let ((current-trap-opts (evaluator-traps-interface))
            (current-debug-opts (debug-options-interface))