aboutsummaryrefslogtreecommitdiff
path: root/tests/expr-base.test
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2012-03-02 16:42:46 +1000
committerSteve Bennett <steveb@workware.net.au>2012-08-07 15:09:45 +1000
commitb225e36dd50337cde65fd1acfb0fe11a69ffcb71 (patch)
treec8401e007982b5864852bca8897394bc23c18991 /tests/expr-base.test
parent72a577998daa5edb99f6af1fc4820372e5563141 (diff)
downloadjimtcl-b225e36dd50337cde65fd1acfb0fe11a69ffcb71.zip
jimtcl-b225e36dd50337cde65fd1acfb0fe11a69ffcb71.tar.gz
jimtcl-b225e36dd50337cde65fd1acfb0fe11a69ffcb71.tar.bz2
Remove octal literals with a leading 0 (TIP #114)
Now an octal literal needs to be explicitly indicated with a leading 0o or 0O, otherwise the number is treated as decimal. This patch also adds support for binary literals. e.g. 0b101 0B1101 Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'tests/expr-base.test')
-rw-r--r--tests/expr-base.test39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/expr-base.test b/tests/expr-base.test
new file mode 100644
index 0000000..5c9e1da
--- /dev/null
+++ b/tests/expr-base.test
@@ -0,0 +1,39 @@
+source [file dirname [info script]]/testing.tcl
+
+# Test number detection
+set good_testcases {
+ 0 0
+ 1 1
+ 8 8
+ 00 0
+ 07 7
+ 08 8
+ 0x5 5
+ 0x0 0
+ 0x00 0
+ -0x5 -5
+ 0b111 7
+ -0b111 -7
+ -0B101 -5
+ 0o7 7
+}
+
+set i 0
+foreach {str exp} $good_testcases {
+ test expr-base-1.[incr i] "expr conversion" [list expr [list $str]] $exp
+}
+
+set bad_testcases {
+ {0x + 1}
+ x
+ 0xx5
+ 0x-5
+ {0x 5}
+ {0o8 + 1}
+}
+
+set i 0
+foreach str $bad_testcases {
+ test expr-base-2.[incr i] "expr conversion failure" -returnCodes error -body [list expr $str] -match glob -result "*"
+}
+testreport