~ chicken-core (chicken-5) 70c3e3b60ef07d4a20c66ba77ee0b3b337c4f312
commit 70c3e3b60ef07d4a20c66ba77ee0b3b337c4f312
Author: Evan Hanson <evhan@foldling.org>
AuthorDate: Sun Apr 3 17:12:28 2016 +1200
Commit: Evan Hanson <evhan@foldling.org>
CommitDate: Sun Apr 3 17:29:41 2016 +1200
Add a simple test case for invalid string->number bases
diff --git a/tests/numbers-string-conversion-tests.scm b/tests/numbers-string-conversion-tests.scm
index 3c19c24d..c33b4787 100644
--- a/tests/numbers-string-conversion-tests.scm
+++ b/tests/numbers-string-conversion-tests.scm
@@ -12,6 +12,7 @@
;;; It also doesn't try to support Schemes which support *only* integers or
;;; *only* flonums (which is also allowed by R5RS).
;;;
+
(use srfi-1 ports)
(define the-nan (fp/ 0.0 0.0))
@@ -342,4 +343,11 @@
("#o1#/2" 4.0 6.0 "4.0" "4." "6.0" "6.")
("#b1#/2" #f)
("#b1#/10" 1.0 1.5 "1.0" "1." "1.5")
- )
\ No newline at end of file
+ )
+
+;; #1272 - Bases not in [2,36] throw errors.
+(let ((check-base (lambda (b)
+ (string->number "123" b)
+ (error "No error on invalid base" b))))
+ (condition-case (check-base 1) ((exn type) 'ok))
+ (condition-case (check-base 37) ((exn type) 'ok)))
Trap