diff options
Diffstat (limited to 'tests/concat.test')
-rw-r--r-- | tests/concat.test | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/concat.test b/tests/concat.test new file mode 100644 index 0000000..79aec87 --- /dev/null +++ b/tests/concat.test @@ -0,0 +1,66 @@ +source [file dirname [info script]]/testing.tcl + +test concat-1.1 {simple concatenation} { + concat a b c d e f g +} {a b c d e f g} +test concat-1.2 {merging lists together} { + concat a {b c d} {e f g h} +} {a b c d e f g h} +test concat-1.3 {merge lists, retain sub-lists} { + concat a {b {c d}} {{e f}} g h +} {a b {c d} {e f} g h} +test concat-1.4 {special characters} { + concat a\{ {b \{c d} \{d +} "a{ b \\{c d {d" + +test concat-2.1 {error check: one empty argument} { + concat {} +} {} + +test concat-3.1 {error check: no arguments} { + list [catch concat msg] $msg +} {0 {}} + +test concat-4.1 {pruning off extra white space} { + concat {} {a b c} +} {a b c} +test concat-4.2 {pruning off extra white space} { + concat x y " a b c \n\t " " " " def " +} {x y a b c def} +test concat-4.3 {pruning off extra white space sets length correctly} { + llength [concat { {{a}} }] +} 1 + +test concat-5.1 {Tcl_ScanCountedElement procedure - don't leave unmatched braces} { + # This test checks for a very tricky feature. Any list element + # generated with Tcl_ScanCountedElement and Tcl_ConvertElement must + # have the property that it can be enclosing in curly braces to make + # an embedded sub-list. If this property doesn't hold, then + # Tcl_DStringStartSublist doesn't work. + + set x {} + lappend x " \\\{ \\" + concat $x [llength "{$x}"] +} {\ \\\{\ \\ 1} + +test concat-6.1 {Tcl_ConcatObj - backslash-space at end of argument} { + concat a {b\ } c +} {a b\ c} +test concat-6.2 {Tcl_ConcatObj - backslash-space at end of argument} { + concat a {b\ } c +} {a b\ c} +test concat-6.3 {Tcl_ConcatObj - backslash-space at end of argument} { + concat a {b\\ } c +} {a b\\ c} +test concat-6.4 {Tcl_ConcatObj - backslash-space at end of argument} { + concat a {b } c +} {a b c} +test concat-6.5 {Tcl_ConcatObj - backslash-space at end of argument} { + concat a { } c +} {a c} +test concat-6.6 {Tcl_ConcatObj - utf-8 sequence with "whitespace" char} { + # Check for Bug #227512. If this violates C isspace, then it returns \xc3. + concat \xe0 +} \xe0 + +testreport |