summaryrefslogtreecommitdiffstats
path: root/tests/format.test
diff options
context:
space:
mode:
authorsebres <sebres@users.sourceforge.net>2018-07-26 16:46:47 (GMT)
committersebres <sebres@users.sourceforge.net>2018-07-26 16:46:47 (GMT)
commit6b1c70bdd2299bba260caf60cb588193f30c52bf (patch)
tree0c28a948c45840dbffb61f6a4cfad696c97dd367 /tests/format.test
parent3d70a8e7c0507bf3b8d5edde7b8e41aececdaec1 (diff)
downloadtcl-6b1c70bdd2299bba260caf60cb588193f30c52bf.zip
tcl-6b1c70bdd2299bba260caf60cb588193f30c52bf.tar.gz
tcl-6b1c70bdd2299bba260caf60cb588193f30c52bf.tar.bz2
test cases added to cover width overflow by format (should cause limit exceeded)
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 d43b7eb..5797f2b 100644
--- a/tests/format.test
+++ b/tests/format.test
@@ -565,6 +565,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"
+
# cleanup
catch {unset a}
catch {unset b}