* Extracted tests from exceptions.test into strings.test and symbols.test.
authorDirk Herrmann <dirk@dirk-herrmanns-seiten.de>
Thu, 1 Mar 2001 17:57:50 +0000 (17:57 +0000)
committerDirk Herrmann <dirk@dirk-herrmanns-seiten.de>
Thu, 1 Mar 2001 17:57:50 +0000 (17:57 +0000)
* Added some tests to strings.test.

test-suite/ChangeLog
test-suite/tests/exceptions.test
test-suite/tests/strings.test
test-suite/tests/symbols.test [new file with mode: 0644]

index 7388f1f..d53b8fa 100644 (file)
@@ -1,3 +1,20 @@
+2001-03-01  Dirk Herrmann  <D.Herrmann@tu-bs.de>
+
+       * symbols.test:  New file.
+
+       (exception:immutable-string):  New constant.  Currently, this is a
+       dummy since guile does not have immutable strings.
+
+       * exceptions.test, strings.test, symbols.test:  Moved the string
+       related test cases from exceptions.test to strings.test and the
+       symbol related test cases to symbols.test.
+
+       * strings.test:  Copyright notice updated.  Added a couple of test
+       cases.
+
+       (exception:immutable-string):  New constant.  Currently, this is a
+       dummy since guile does not have immutable strings.
+
 2001-02-28  Dirk Herrmann  <D.Herrmann@tu-bs.de>
 
        * exceptions.test:  Use expect-fail-exception to indicate test
index 8528d4a..7236ceb 100644 (file)
     (goad x:wrong-type-arg (set! '#t 1))
     (goad x:wrong-type-arg (set! '#f 1))
 
-    (expect-fail-exception "mutating string derived from symbol"
-      exception:bad-var
-      (string-set! (symbol->string 'abc) 1 #\space))
-
-    (expect-fail-exception "mutating string constant"
-      exception:bad-var
-      (string-set! "abc" 1 #\space))
-
     ;; Add more (bindings immutable-modification) exceptions here.
     )
   (with-test-prefix "let"
index 5645f1f..432100f 100644 (file)
@@ -1,7 +1,7 @@
 ;;;; strings.test --- test suite for Guile's string functions    -*- scheme -*-
 ;;;; Jim Blandy <jimb@red-bean.com> --- August 1999
 ;;;;
-;;;;   Copyright (C) 1999 Free Software Foundation, Inc.
+;;;; Copyright (C) 1999, 2001 Free Software Foundation, Inc.
 ;;;; 
 ;;;; This program is free software; you can redistribute it and/or modify
 ;;;; it under the terms of the GNU General Public License as published by
 ;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 ;;;; Boston, MA 02111-1307 USA
 
-(use-modules (test-suite lib))
 
+;; FIXME:  As soon as guile supports immutable strings, this has to be
+;; replaced with the appropriate error type and message.
+(define exception:immutable-string
+  (cons 'some-error-type "^trying to modify an immutable string"))
 
-(pass-if-exception "string=? does not accept symbols"
-  exception:wrong-type-arg
-  (string=? 'a 'b))
 
-(pass-if "string<? respects string length"
-        (not (string<? "foo\0" "foo")))
-(pass-if "string-ci<? respects string length"
-        (not (string-ci<? "foo\0" "foo")))
-(pass-if-exception "substring-move! checks start and end correctly"
-  exception:out-of-range
-  (substring-move! "sample" 3 0 "test" 3))
+(with-test-prefix "string=?"
+
+  (pass-if "respects 1st parameter's string length"
+    (not (string=? "foo\0" "foo")))
+
+  (pass-if "respects 2nd paramter's string length"
+    (not (string=? "foo" "foo\0")))
+
+  (with-test-prefix "wrong argument type"
+
+    (pass-if-exception "1st argument symbol"
+      exception:wrong-type-arg
+      (string=? 'a "a"))
+
+    (pass-if-exception "2nd argument symbol"
+      exception:wrong-type-arg
+      (string=? "a" 'b))))
+
+(with-test-prefix "string<?"
+
+  (pass-if "respects string length"
+    (and (not (string<? "foo\0a" "foo\0a"))
+        (string<? "foo\0a" "foo\0b")))
+
+  (with-test-prefix "wrong argument type"
+
+    (pass-if-exception "1st argument symbol"
+      exception:wrong-type-arg
+      (string<? 'a "a"))
+
+    (pass-if-exception "2nd argument symbol"
+      exception:wrong-type-arg
+      (string<? "a" 'b))))
+
+(with-test-prefix "string-ci<?"
+
+  (pass-if "respects string length"
+    (and (not (string-ci<? "foo\0a" "foo\0a"))
+        (string-ci<? "foo\0a" "foo\0b")))
+
+  (with-test-prefix "wrong argument type"
+
+    (pass-if-exception "1st argument symbol"
+      exception:wrong-type-arg
+      (string-ci<? 'a "a"))
+
+    (pass-if-exception "2nd argument symbol"
+      exception:wrong-type-arg
+      (string-ci<? "a" 'b))))
+
+(with-test-prefix "string-set!"
+
+  (expect-fail-exception "string constant"
+    exception:immutable-string
+    (string-set! "abc" 1 #\space)))
+
+(with-test-prefix "substring-move!"
+
+  (pass-if-exception "substring-move! checks start and end correctly"
+    exception:out-of-range
+    (substring-move! "sample" 3 0 "test" 3)))
diff --git a/test-suite/tests/symbols.test b/test-suite/tests/symbols.test
new file mode 100644 (file)
index 0000000..8483aa6
--- /dev/null
@@ -0,0 +1,31 @@
+;;;; symbols.test --- test suite for Guile's symbols    -*- scheme -*-
+;;;;
+;;;; Copyright (C) 2001 Free Software Foundation, Inc.
+;;;; 
+;;;; This program is free software; you can redistribute it and/or modify
+;;;; it under the terms of the GNU General Public License as published by
+;;;; the Free Software Foundation; either version 2, or (at your option)
+;;;; any later version.
+;;;; 
+;;;; This program is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;;; GNU General Public License for more details.
+;;;; 
+;;;; You should have received a copy of the GNU General Public License
+;;;; along with this software; see the file COPYING.  If not, write to
+;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+;;;; Boston, MA 02111-1307 USA
+
+
+;; FIXME:  As soon as guile supports immutable strings, this has to be
+;; replaced with the appropriate error type and message.
+(define exception:immutable-string
+  (cons 'some-error-type "^trying to modify an immutable string"))
+
+
+(with-test-prefix "symbol->string"
+
+  (expect-fail-exception "result is an immutable string"
+    exception:immutable-string
+    (string-set! (symbol->string 'abc) 1 #\space)))