summaryrefslogtreecommitdiffstats
path: root/tests/format.test
diff options
context:
space:
mode:
authorsebres <sebres@users.sourceforge.net>2018-07-26 18:51:03 (GMT)
committersebres <sebres@users.sourceforge.net>2018-07-26 18:51:03 (GMT)
commit04c687936c9fd7bd62090edf66def7ad55563818 (patch)
tree3e8be17536779d0fc29a623547745b80d7be1778 /tests/format.test
parent2133e40e589348c5df1b721c1d0e0ac2f2385505 (diff)
parentc7cdc550c4e27c7ab0e3d4537cff99167b4509fd (diff)
downloadtcl-04c687936c9fd7bd62090edf66def7ad55563818.zip
tcl-04c687936c9fd7bd62090edf66def7ad55563818.tar.gz
tcl-04c687936c9fd7bd62090edf66def7ad55563818.tar.bz2
merge 8.5 - bug [d051b77fc1] fixed
Diffstat (limited to 'tests/format.test')
-rw-r--r--tests/format.test14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/format.test b/tests/format.test
index 2795ac2..88013cf 100644
--- a/tests/format.test
+++ b/tests/format.test
@@ -585,6 +585,20 @@ test format-19.3 {Bug 2830354} {
string length [format %340f 0]
} 340
+test format-19.4.1 {Bug d498578df4: width overflow should cause limit exceeded} \
+-constraints {longIs32bit} -body {
+ # in case of overflow into negative, it produces width -2 (and limit exceeded),
+ # in case of width will be unsigned, it will be outside limit (2GB for 32bit)...
+ # and it don't throw an error in case the bug is not fixed (and probably no segfault).
+ format %[expr {0xffffffff - 1}]g 0
+} -returnCodes error -result "max size for a Tcl value exceeded"
+
+test format-19.4.2 {Bug d498578df4: width overflow should cause limit exceeded} -body {
+ # limit should exceeds in any case,
+ # and it don't throw an error in case the bug is not fixed (and probably no segfault).
+ format %[expr {0xffffffffffffffff - 1}]g 0
+} -returnCodes error -result "max size for a Tcl value exceeded"
+
# Note that this test may fail in future versions
test format-20.1 {Bug 2932421: plain %s caused intrep change of args} -body {
set x [dict create a b c d]