summaryrefslogtreecommitdiffstats
path: root/tests/lseq.test
diff options
context:
space:
mode:
authorgriffin <briang42@easystreet.net>2022-11-01 02:05:11 (GMT)
committergriffin <briang42@easystreet.net>2022-11-01 02:05:11 (GMT)
commit026e32d86a8119bac99953394dffdfd5a80665e9 (patch)
tree21c3e4513d7c91bc847d8f6d9b38283df63fce43 /tests/lseq.test
parent3516771eb648f78594c2874fb6a681d0afc4ba25 (diff)
downloadtcl-026e32d86a8119bac99953394dffdfd5a80665e9.zip
tcl-026e32d86a8119bac99953394dffdfd5a80665e9.tar.gz
tcl-026e32d86a8119bac99953394dffdfd5a80665e9.tar.bz2
Fix refCount crash. Improve ArithSeries regression coverage.
Diffstat (limited to 'tests/lseq.test')
-rw-r--r--tests/lseq.test35
1 files changed, 33 insertions, 2 deletions
diff --git a/tests/lseq.test b/tests/lseq.test
index 2e5d7e1..b8ae2e9 100644
--- a/tests/lseq.test
+++ b/tests/lseq.test
@@ -255,8 +255,9 @@ test lseq-3.7 {lmap lseq} {
test lseq-3.8 {lrange lseq} {
set r [lrange [lseq 1 100] 10 20]
- lindex [tcl::unsupported::representation $r] 3
-} {arithseries}
+ set empty [lrange [lseq 1 100] 20 10]
+ list $r $empty [lindex [tcl::unsupported::representation $r] 3]
+} {{11 12 13 14 15 16 17 18 19 20 21} {} arithseries}
test lseq-3.9 {lassign lseq} arithSeriesShimmer {
set r [lseq 15]
@@ -510,6 +511,36 @@ test lseq-4.5 {lindex off by one} -body {
unset res
} -result {4 3}
+# Bad refcount on ResultObj
+test lseq-4.6 {lindex flat} -body {
+ set l [lseq 2 10]
+ set cmd lindex
+ set i 4
+ set c [lindex $l $i]
+ set d [$cmd $l $i]
+ set e [lindex [lseq 2 10] $i]
+ set f [$cmd [lseq 2 10] $i]
+ list $c $d $e $f
+} -cleanup {
+ unset l
+ unset e
+} -result [lrepeat 4 6]
+
+test lseq-4.7 {empty list} {
+ list [lseq 0] [join [lseq 0] {}] [join [lseq 1] {}]
+} {{} {} 0}
+
+test lseq-4.8 {error case lrange} -body {
+ lrange [lseq 1 5] fred ginger
+} -returnCodes 1 \
+ -result {bad index "fred": must be integer?[+-]integer? or end?[+-]integer?}
+
+test lseq-4.9 {error case lrange} -body {
+ set fred 7
+ set ginger 8
+ lrange [lseq 1 5] $fred $ginger
+} -returnCodes 1 \
+ -result {index 7 is out of bounds 0 to 4}
# cleanup
::tcltest::cleanupTests