diff options
author | stanton <stanton> | 1999-05-04 01:33:10 (GMT) |
---|---|---|
committer | stanton <stanton> | 1999-05-04 01:33:10 (GMT) |
commit | cbfd4003a1395d9f6ec97acf62eb239f7c3fafca (patch) | |
tree | eaaa5805340e4ca7c3da51d93e2076081ec153e5 /tests | |
parent | 1b188bce8407ab0d9d83e72177b9fada135782d2 (diff) | |
download | tcl-cbfd4003a1395d9f6ec97acf62eb239f7c3fafca.zip tcl-cbfd4003a1395d9f6ec97acf62eb239f7c3fafca.tar.gz tcl-cbfd4003a1395d9f6ec97acf62eb239f7c3fafca.tar.bz2 |
* tests/cmdIL.test:
* tests/cmdMZ.test:
* tests/error.test:
* tests/lindex.test:
* tests/linsert.test:
* tests/lrange.test:
* tests/lreplace.test:
* tests/string.test:
* generic/tclCmdMZ.c (Tcl_StringObjCmd):
* generic/tclUtil.c (TclGetIntForIndex): Applied Jeff Hobbs's
string patch which includes the following changes [Bug: 1845]:
Diffstat (limited to 'tests')
-rw-r--r-- | tests/cmdIL.test | 4 | ||||
-rw-r--r-- | tests/cmdMZ.test | 38 | ||||
-rw-r--r-- | tests/error.test | 6 | ||||
-rw-r--r-- | tests/lindex.test | 4 | ||||
-rw-r--r-- | tests/linsert.test | 4 | ||||
-rw-r--r-- | tests/lrange.test | 6 | ||||
-rw-r--r-- | tests/lreplace.test | 8 | ||||
-rw-r--r-- | tests/string.test | 318 |
8 files changed, 295 insertions, 93 deletions
diff --git a/tests/cmdIL.test b/tests/cmdIL.test index ac39ec0..2f5d62e 100644 --- a/tests/cmdIL.test +++ b/tests/cmdIL.test @@ -8,7 +8,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: cmdIL.test,v 1.6 1999/04/16 00:47:24 stanton Exp $ +# RCS: @(#) $Id: cmdIL.test,v 1.7 1999/05/04 01:33:11 stanton Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { source [file join [pwd] [file dirname [info script]] defs.tcl] @@ -52,7 +52,7 @@ test cmdIL-1.11 {Tcl_LsortObjCmd procedure, -index option} { } {1 {"-index" option must be followed by list index}} test cmdIL-1.12 {Tcl_LsortObjCmd procedure, -index option} { list [catch {lsort -index foo {1 3 2 5}} msg] $msg -} {1 {bad index "foo": must be integer or "end"}} +} {1 {syntax error in expression "foo"}} test cmdIL-1.13 {Tcl_LsortObjCmd procedure, -index option} { lsort -index end -integer {{2 25} {10 20 50 100} {3 16 42} 1} } {1 {2 25} {3 16 42} {10 20 50 100}} diff --git a/tests/cmdMZ.test b/tests/cmdMZ.test index 4cd72d2..c9ead57 100644 --- a/tests/cmdMZ.test +++ b/tests/cmdMZ.test @@ -11,7 +11,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: cmdMZ.test,v 1.2 1999/04/16 00:47:24 stanton Exp $ +# RCS: @(#) $Id: cmdMZ.test,v 1.3 1999/05/04 01:33:11 stanton Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { source [file join [pwd] [file dirname [info script]] defs.tcl] @@ -159,14 +159,14 @@ test cmdMZ-5.1 {Tcl_StringObjCmd: error conditions} { } {1 {wrong # args: should be "string option arg ?arg ...?"}} test cmdMZ-5.2 {Tcl_StringObjCmd: error conditions} { list [catch {string gorp a b} msg] $msg -} {1 {bad option "gorp": must be compare, first, index, last, length, match, range, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart}} +} {1 {bad option "gorp": must be bytes, compare, equal, first, icompare, iequal, index, last, length, map, match, range, repeat, replace, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart}} test cmdMZ-6.1 {Tcl_StringObjCmd: string compare} { list [catch {string compare a} msg] $msg -} {1 {wrong # args: should be "string compare string1 string2"}} +} {1 {wrong # args: should be "string compare string1 string2 ?length?"}} test cmdMZ-6.2 {Tcl_StringObjCmd: string compare} { list [catch {string compare a b c} msg] $msg -} {1 {wrong # args: should be "string compare string1 string2"}} +} {1 {expected integer but got "c"}} test cmdMZ-6.3 {Tcl_StringObjCmd: string compare} { string compare abcde abdef } -1 @@ -237,12 +237,12 @@ test cmdMZ-8.2 {Tcl_StringObjCmd: string index} { } {1 {wrong # args: should be "string index string charIndex"}} test cmdMZ-8.3 {Tcl_StringObjCmd: string index} { list [catch {string index a xyz} msg] $msg -} {1 {expected integer but got "xyz"}} +} {1 {syntax error in expression "xyz"}} test cmdMZ-8.4 {Tcl_StringObjCmd: string index} { string index abcde 0 } a test cmdMZ-8.5 {Tcl_StringObjCmd: string index} { - string i abcde 4 + string in abcde 4 } e test cmdMZ-8.6 {Tcl_StringObjCmd: string index} { string index abcde 5 @@ -305,7 +305,7 @@ test cmdMZ-11.3 {Tcl_StringObjCmd: string match} { string match abc abc } 1 test cmdMZ-11.4 {Tcl_StringObjCmd: string match} { - string m abc abd + string mat abc abd } 0 test cmdMZ-12.1 {Tcl_StringObjCmd: string range} { @@ -319,10 +319,10 @@ test cmdMZ-12.3 {Tcl_StringObjCmd: string range} { } {1 {wrong # args: should be "string range string first last"}} test cmdMZ-12.4 {Tcl_StringObjCmd: string range} { list [catch {string range abc abc 1} msg] $msg -} {1 {bad index "abc": must be integer or "end"}} +} {1 {syntax error in expression "abc"}} test cmdMZ-12.5 {Tcl_StringObjCmd: string range} { list [catch {string range abc 1 eof} msg] $msg -} {1 {bad index "eof": must be integer or "end"}} +} {1 {syntax error in expression "eof"}} test cmdMZ-12.6 {Tcl_StringObjCmd: string range, first < 0} { string range abcdefghijklmnop -3 2 } {abc} @@ -362,10 +362,10 @@ test cmdMZ-12.17 {Tcl_StringObjCmd: string range, unicode} { test cmdMZ-13.1 {Tcl_StringObjCmd: string tolower} { list [catch {string tolower} msg] $msg -} {1 {wrong # args: should be "string tolower string"}} +} {1 {wrong # args: should be "string tolower string ?first? ?last?"}} test cmdMZ-13.2 {Tcl_StringObjCmd: string tolower} { list [catch {string tolower a b} msg] $msg -} {1 {wrong # args: should be "string tolower string"}} +} {1 {syntax error in expression "b"}} test cmdMZ-13.3 {Tcl_StringObjCmd: string tolower} { string tolower ABCDeF } {abcdef} @@ -381,10 +381,10 @@ test cmdMZ-13.6 {Tcl_StringObjCmd: string tolower, unicode} { test cmdMZ-14.1 {Tcl_StringObjCmd: string toupper} { list [catch {string toupper} msg] $msg -} {1 {wrong # args: should be "string toupper string"}} +} {1 {wrong # args: should be "string toupper string ?first? ?last?"}} test cmdMZ-14.2 {Tcl_StringObjCmd: string toupper} { list [catch {string toupper a b} msg] $msg -} {1 {wrong # args: should be "string toupper string"}} +} {1 {syntax error in expression "b"}} test cmdMZ-14.3 {Tcl_StringObjCmd: string toupper} { string toupper abCDEf } {ABCDEF} @@ -400,10 +400,10 @@ test cmdMZ-14.6 {Tcl_StringObjCmd: string toupper, unicode} { test cmdMZ-15.1 {Tcl_StringObjCmd: string totitle} { list [catch {string totitle} msg] $msg -} {1 {wrong # args: should be "string totitle string"}} +} {1 {wrong # args: should be "string totitle string ?first? ?last?"}} test cmdMZ-15.2 {Tcl_StringObjCmd: string totitle} { list [catch {string totitle a b} msg] $msg -} {1 {wrong # args: should be "string totitle string"}} +} {1 {syntax error in expression "b"}} test cmdMZ-15.3 {Tcl_StringObjCmd: string totitle} { string totitle abCDEf } {Abcdef} @@ -478,7 +478,7 @@ test cmdMZ-18.4 {Tcl_StringObjCmd: string trimright errors} { } {1 {wrong # args: should be "string trimright string ?chars?"}} test cmdMZ-18.5 {Tcl_StringObjCmd: string trimright errors} { list [catch {string trimg a} msg] $msg -} {1 {bad option "trimg": must be compare, first, index, last, length, match, range, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart}} +} {1 {bad option "trimg": must be bytes, compare, equal, first, icompare, iequal, index, last, length, map, match, range, repeat, replace, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart}} test cmdMZ-19.1 {Tcl_StringObjCmd: string wordend} { list [catch {string wordend a} msg] $msg @@ -488,7 +488,7 @@ test cmdMZ-19.2 {Tcl_StringObjCmd: string wordend} { } {1 {wrong # args: should be "string wordend string index"}} test cmdMZ-19.3 {Tcl_StringObjCmd: string wordend} { list [catch {string wordend a gorp} msg] $msg -} {1 {expected integer but got "gorp"}} +} {1 {syntax error in expression "gorp"}} test cmdMZ-19.4 {Tcl_StringObjCmd: string wordend} { string wordend abc. -1 } 3 @@ -522,7 +522,7 @@ test cmdMZ-19.13 {Tcl_StringObjCmd: string wordend, unicode} { test cmdMZ-20.1 {Tcl_StringObjCmd: string wordstart} { list [catch {string word a} msg] $msg -} {1 {ambiguous option "word": must be compare, first, index, last, length, match, range, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart}} +} {1 {ambiguous option "word": must be bytes, compare, equal, first, icompare, iequal, index, last, length, map, match, range, repeat, replace, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart}} test cmdMZ-20.2 {Tcl_StringObjCmd: string wordstart} { list [catch {string wordstart a} msg] $msg } {1 {wrong # args: should be "string wordstart string index"}} @@ -531,7 +531,7 @@ test cmdMZ-20.3 {Tcl_StringObjCmd: string wordstart} { } {1 {wrong # args: should be "string wordstart string index"}} test cmdMZ-20.4 {Tcl_StringObjCmd: string wordstart} { list [catch {string wordstart a gorp} msg] $msg -} {1 {expected integer but got "gorp"}} +} {1 {syntax error in expression "gorp"}} test cmdMZ-20.5 {Tcl_StringObjCmd: string wordstart} { string wordstart "one two three_words" 400 } 8 diff --git a/tests/error.test b/tests/error.test index 45e8f1d..a4d311f 100644 --- a/tests/error.test +++ b/tests/error.test @@ -11,7 +11,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: error.test,v 1.3 1999/04/16 00:47:26 stanton Exp $ +# RCS: @(#) $Id: error.test,v 1.4 1999/05/04 01:33:12 stanton Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { source [file join [pwd] [file dirname [info script]] defs.tcl] @@ -38,12 +38,12 @@ test error-1.1 {simple errors from commands} { test error-1.2 {simple errors from commands} { catch {format [string compare]} b set b -} {wrong # args: should be "string compare string1 string2"} +} {wrong # args: should be "string compare string1 string2 ?length?"} test error-1.3 {simple errors from commands} { catch {format [string compare]} b set errorInfo -} {wrong # args: should be "string compare string1 string2" +} {wrong # args: should be "string compare string1 string2 ?length?" while executing "string compare"} diff --git a/tests/lindex.test b/tests/lindex.test index c7e5fb8..ed79c31 100644 --- a/tests/lindex.test +++ b/tests/lindex.test @@ -11,7 +11,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: lindex.test,v 1.3 1999/04/16 00:47:30 stanton Exp $ +# RCS: @(#) $Id: lindex.test,v 1.4 1999/05/04 01:33:12 stanton Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { source [file join [pwd] [file dirname [info script]] defs.tcl] @@ -52,7 +52,7 @@ test lindex-2.2 {error conditions} { } {1 {wrong # args: should be "lindex list index"}} test lindex-2.3 {error conditions} { list [catch {lindex 1 2a2} msg] $msg -} {1 {bad index "2a2": must be integer or "end"}} +} {1 {syntax error in expression "2a2"}} test lindex-2.4 {error conditions} { list [catch {lindex "a \{" 2} msg] $msg } {1 {unmatched open brace in list}} diff --git a/tests/linsert.test b/tests/linsert.test index 5c54d92..456ea3e 100644 --- a/tests/linsert.test +++ b/tests/linsert.test @@ -11,7 +11,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: linsert.test,v 1.3 1999/04/16 00:47:30 stanton Exp $ +# RCS: @(#) $Id: linsert.test,v 1.4 1999/05/04 01:33:12 stanton Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { source [file join [pwd] [file dirname [info script]] defs.tcl] @@ -86,7 +86,7 @@ test linsert-2.2 {linsert errors} { } {1 {wrong # args: should be "linsert list index element ?element ...?"}} test linsert-2.3 {linsert errors} { list [catch {linsert a 12x 2} msg] $msg -} {1 {bad index "12x": must be integer or "end"}} +} {1 {syntax error in expression "12x"}} test linsert-2.4 {linsert errors} { list [catch {linsert \{ 12 2} msg] $msg } {1 {unmatched open brace in list}} diff --git a/tests/lrange.test b/tests/lrange.test index 4132969..4dc70f8 100644 --- a/tests/lrange.test +++ b/tests/lrange.test @@ -11,7 +11,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: lrange.test,v 1.3 1999/04/16 00:47:30 stanton Exp $ +# RCS: @(#) $Id: lrange.test,v 1.4 1999/05/04 01:33:12 stanton Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { source [file join [pwd] [file dirname [info script]] defs.tcl] @@ -74,10 +74,10 @@ test lrange-2.2 {error conditions} { } {1 {wrong # args: should be "lrange list first last"}} test lrange-2.3 {error conditions} { list [catch {lrange a b 6} msg] $msg -} {1 {bad index "b": must be integer or "end"}} +} {1 {syntax error in expression "b"}} test lrange-2.4 {error conditions} { list [catch {lrange a 0 enigma} msg] $msg -} {1 {bad index "enigma": must be integer or "end"}} +} {1 {syntax error in expression "enigma"}} test lrange-2.5 {error conditions} { list [catch {lrange "a \{b c" 3 4} msg] $msg } {1 {unmatched open brace in list}} diff --git a/tests/lreplace.test b/tests/lreplace.test index d0743eb..b1f0657 100644 --- a/tests/lreplace.test +++ b/tests/lreplace.test @@ -11,7 +11,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: lreplace.test,v 1.3 1999/04/16 00:47:30 stanton Exp $ +# RCS: @(#) $Id: lreplace.test,v 1.4 1999/05/04 01:33:12 stanton Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { source [file join [pwd] [file dirname [info script]] defs.tcl] @@ -109,13 +109,13 @@ test lreplace-2.2 {lreplace errors} { } {1 {wrong # args: should be "lreplace list first last ?element element ...?"}} test lreplace-2.3 {lreplace errors} { list [catch {lreplace x a 10} msg] $msg -} {1 {bad index "a": must be integer or "end"}} +} {1 {syntax error in expression "a"}} test lreplace-2.4 {lreplace errors} { list [catch {lreplace x 10 x} msg] $msg -} {1 {bad index "x": must be integer or "end"}} +} {1 {syntax error in expression "x"}} test lreplace-2.5 {lreplace errors} { list [catch {lreplace x 10 1x} msg] $msg -} {1 {bad index "1x": must be integer or "end"}} +} {1 {syntax error in expression "1x"}} test lreplace-2.6 {lreplace errors} { list [catch {lreplace x 3 2} msg] $msg } {1 {list doesn't contain element 3}} diff --git a/tests/string.test b/tests/string.test index 1648dc4..013cde4 100644 --- a/tests/string.test +++ b/tests/string.test @@ -11,7 +11,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: string.test,v 1.5 1999/04/30 16:22:25 hershey Exp $ +# RCS: @(#) $Id: string.test,v 1.6 1999/05/04 01:33:12 stanton Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { source [file join [pwd] [file dirname [info script]] defs.tcl] @@ -20,18 +20,27 @@ if {[lsearch [namespace children] ::tcltest] == -1} { test string-1.1 {string compare} { string compare abcde abdef } -1 -test string-1.2 {string compare} { +test string-1.2 {string compare, shortest method name} { string c abcde ABCDE } 1 test string-1.3 {string compare} { string compare abcde abcde } 0 -test string-1.4 {string compare} { +test string-1.4 {string compare too few args} { list [catch {string compare a} msg] $msg -} {1 {wrong # args: should be "string compare string1 string2"}} -test string-1.5 {string compare} { +} {1 {wrong # args: should be "string compare string1 string2 ?length?"}} +test string-1.5 {string compare bad args} { list [catch {string compare a b c} msg] $msg -} {1 {wrong # args: should be "string compare string1 string2"}} +} {1 {expected integer but got "c"}} +test string-1.6 {string compare too many args} { + list [catch {string compare a b 1 c} msg] $msg +} {1 {wrong # args: should be "string compare string1 string2 ?length?"}} +test string-1.7 {string compare with length} { + string compare abcde abxyz 2 +} 0 +test string-1.8 {string compare with special index} { + list [catch {string compare abcde abxyz end-3} msg] $msg +} {1 {expected integer but got "end-3"}} test string-2.1 {string first} { string first bq abcdefgbcefgbqrs @@ -59,7 +68,7 @@ test string-3.1 {string index} { string index abcde 0 } a test string-3.2 {string index} { - string i abcde 4 + string in abcde 4 } e test string-3.3 {string index} { string index abcde 5 @@ -75,7 +84,13 @@ test string-3.6 {string index} { } {1 {wrong # args: should be "string index string charIndex"}} test string-3.7 {string index} { list [catch {string index a xyz} msg] $msg -} {1 {expected integer but got "xyz"}} +} {1 {syntax error in expression "xyz"}} +test string-3.8 {string index} { + string index abc end +} c +test string-3.9 {string index} { + string index abc end-1 +} b test string-4.1 {string last} { string la xxx xxxx123xx345x678 @@ -110,7 +125,7 @@ test string-6.1 {string match} { string match abc abc } 1 test string-6.2 {string match} { - string m abc abd + string mat abc abd } 0 test string-6.3 {string match} { string match ab*c abc @@ -229,16 +244,19 @@ test string-7.11 {string range} { } {1 {wrong # args: should be "string range string first last"}} test string-7.12 {string range} { list [catch {string range abc abc 1} msg] $msg -} {1 {bad index "abc": must be integer or "end"}} +} {1 {syntax error in expression "abc"}} test string-7.13 {string range} { list [catch {string range abc 1 eof} msg] $msg -} {1 {bad index "eof": must be integer or "end"}} +} {1 {syntax error in expression "eof"}} test string-7.14 {string range} { - string range abcdefghijklmnop end end -} {p} + string range abcdefghijklmnop end-1 end +} {op} test string-7.15 {string range} { string range abcdefghijklmnop e 1000 } {p} +test string-7.16 {string range} { + string range abcdefghijklmnop end end-1 +} {} test string-8.1 {string trim} { string trim " XYZ " @@ -292,7 +310,7 @@ test string-10.4 {string trimright errors} { } {1 {wrong # args: should be "string trimright string ?chars?"}} test string-10.5 {string trimright errors} { list [catch {string trimg a} msg] $msg -} {1 {bad option "trimg": must be compare, first, index, last, length, match, range, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart}} +} {1 {bad option "trimg": must be bytes, compare, equal, first, icompare, iequal, index, last, length, map, match, range, repeat, replace, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart}} test string-11.1 {string tolower} { string tolower ABCDeF @@ -303,114 +321,295 @@ test string-11.2 {string tolower} { test string-11.3 {string tolower} { string tolower {123#$&*()} } {123#$&*()} -test string-11.4 {string tolower} { +test string-11.4 {string tolower too few args} { list [catch {string tolower} msg] $msg -} {1 {wrong # args: should be "string tolower string"}} -test string-11.5 {string tolower} { +} {1 {wrong # args: should be "string tolower string ?first? ?last?"}} +test string-11.5 {string tolower bad args} { list [catch {string tolower a b} msg] $msg -} {1 {wrong # args: should be "string tolower string"}} -test string-11.6 {string tolower called with badly formed Utf string} { +} {1 {syntax error in expression "b"}} +test string-11.6 {string tolower too many args} { + list [catch {string tolower ABC 1 end oops} msg] $msg +} {1 {wrong # args: should be "string tolower string ?first? ?last?"}} +test string-11.7 {string tolower} { + string tolower ABC 1 +} AbC +test string-11.8 {string tolower} { + string tolower ABC 1 end +} Abc +test string-11.9 {string tolower} { + string tolower ABC 0 end-1 +} abC +test string-11.10 {string tolower called with badly formed Utf string} { string tolower [bytestring "\u00fcBER"] } [bytestring "\u00fcber"] -test string-11.7 {string totitle} { +test string-12.1 {string totitle} { string totitle ABCDeF } {Abcdef} -test string-11.8 {string totitle} { +test string-12.2 {string totitle} { string totitle "aBC d Hij xyZ" } {Abc d hij xyz} -test string-11.9 {string totitle} { +test string-12.3 {string totitle} { string totitle {123#$&*()} } {123#$&*()} -test string-11.10 {string totitle} { +test string-12.4 {string totitle} { list [catch {string totitle} msg] $msg -} {1 {wrong # args: should be "string totitle string"}} -test string-11.11 {string totitle} { +} {1 {wrong # args: should be "string totitle string ?first? ?last?"}} +test string-12.5 {string totitle} { list [catch {string totitle a b} msg] $msg -} {1 {wrong # args: should be "string totitle string"}} -test string-11.12 {string totitle called with badly formed Utf string} { +} {1 {syntax error in expression "b"}} +test string-12.6 {string totitle too many args} { + list [catch {string totitle ABC 1 end oops} msg] $msg +} {1 {wrong # args: should be "string totitle string ?first? ?last?"}} +test string-12.7 {string totitle} { + string totitle abC 1 +} aBC +test string-12.8 {string totitle} { + string totitle ABC 1 end +} ABc +test string-12.9 {string totitle} { + string totitle ABC 0 end-1 +} AbC +test string-12.10 {string totitle called with badly formed Utf string} { string totitle [bytestring "\u00fcBER"] } [bytestring "\u00fcber"] -test string-12.1 {string toupper} { +test string-13.1 {string toupper} { string toupper abCDEf } {ABCDEF} -test string-12.2 {string toupper} { +test string-13.2 {string toupper} { string toupper "abc xYz" } {ABC XYZ} -test string-12.3 {string toupper} { +test string-13.3 {string toupper} { string toupper {123#$&*()} } {123#$&*()} -test string-12.4 {string toupper} { +test string-13.4 {string toupper} { list [catch {string toupper} msg] $msg -} {1 {wrong # args: should be "string toupper string"}} -test string-12.5 {string toupper} { +} {1 {wrong # args: should be "string toupper string ?first? ?last?"}} +test string-13.5 {string toupper} { list [catch {string toupper a b} msg] $msg -} {1 {wrong # args: should be "string toupper string"}} -test string-12.6 {string toupper called with badly formed Utf string} { +} {1 {syntax error in expression "b"}} +test string-13.6 {string toupper} { + list [catch {string toupper a 1 end oops} msg] $msg +} {1 {wrong # args: should be "string toupper string ?first? ?last?"}} +test string-13.7 {string toupper} { + string toupper abc 1 +} aBc +test string-13.8 {string toupper} { + string toupper abc 1 end +} aBC +test string-13.9 {string toupper} { + string toupper abc 0 end-1 +} ABc +test string-13.10 {string toupper called with badly formed Utf string} { string toupper [bytestring "\u00fcber"] } [bytestring "\u00fcBER"] -test string-13.1 {string wordend} { +test string-14.1 {string wordend} { list [catch {string wordend a} msg] $msg } {1 {wrong # args: should be "string wordend string index"}} -test string-13.2 {string wordend} { +test string-14.2 {string wordend} { list [catch {string wordend a b c} msg] $msg } {1 {wrong # args: should be "string wordend string index"}} -test string-13.3 {string wordend} { +test string-14.3 {string wordend} { list [catch {string wordend a gorp} msg] $msg -} {1 {expected integer but got "gorp"}} -test string-13.4 {string wordend} { +} {1 {syntax error in expression "gorp"}} +test string-14.4 {string wordend} { string wordend abc. -1 } 3 -test string-13.5 {string wordend} { +test string-14.5 {string wordend} { string wordend abc. 100 } 4 -test string-13.6 {string wordend} { +test string-14.6 {string wordend} { string wordend "word_one two three" 2 } 8 -test string-13.7 {string wordend} { +test string-14.7 {string wordend} { string wordend "one .&# three" 5 } 6 -test string-13.8 {string wordend} { +test string-14.8 {string wordend} { string worde "x.y" 0 } 1 +test string-14.9 {string wordend} { + string worde "x.y" end-1 +} 2 -test string-14.1 {string wordstart} { +test string-15.1 {string wordstart} { list [catch {string word a} msg] $msg -} {1 {ambiguous option "word": must be compare, first, index, last, length, match, range, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart}} -test string-14.2 {string wordstart} { +} {1 {ambiguous option "word": must be bytes, compare, equal, first, icompare, iequal, index, last, length, map, match, range, repeat, replace, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart}} +test string-15.2 {string wordstart} { list [catch {string wordstart a} msg] $msg } {1 {wrong # args: should be "string wordstart string index"}} -test string-14.3 {string wordstart} { +test string-15.3 {string wordstart} { list [catch {string wordstart a b c} msg] $msg } {1 {wrong # args: should be "string wordstart string index"}} -test string-14.4 {string wordstart} { +test string-15.4 {string wordstart} { list [catch {string wordstart a gorp} msg] $msg -} {1 {expected integer but got "gorp"}} -test string-14.5 {string wordstart} { +} {1 {syntax error in expression "gorp"}} +test string-15.5 {string wordstart} { string wordstart "one two three_words" 400 } 8 -test string-14.6 {string wordstart} { +test string-15.6 {string wordstart} { string wordstart "one two three_words" 2 } 0 -test string-14.7 {string wordend} { +test string-15.7 {string wordstart} { string wordstart "one two three_words" -2 } 0 -test string-14.8 {string wordend} { +test string-15.8 {string wordstart} { string wordstart "one .*&^ three" 6 } 6 -test string-14.9 {string wordend} { +test string-15.9 {string wordstart} { string wordstart "one two three" 4 } 4 +test string-15.10 {string wordstart} { + string wordstart "one two three" end-5 +} 7 -test string-15.1 {error conditions} { +test string-16.1 {error conditions} { list [catch {string gorp a b} msg] $msg -} {1 {bad option "gorp": must be compare, first, index, last, length, match, range, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart}} -test string-15.2 {error conditions} { +} {1 {bad option "gorp": must be bytes, compare, equal, first, icompare, iequal, index, last, length, map, match, range, repeat, replace, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart}} +test string-16.2 {error conditions} { list [catch {string} msg] $msg } {1 {wrong # args: should be "string option arg ?arg ...?"}} +# only need a few tests on equal, since it uses the same code as +# string compare, but just modifies the return output +test string-17.1 {string equal} { + string equal abcde abdef +} 0 +test string-17.2 {string equal} { + string eq abcde ABCDE +} 0 +test string-17.3 {string equal} { + string equal abcde abcde +} 1 + +test string-18.1 {string icompare} { + string icompare abcde abdef +} -1 +test string-18.2 {string icompare} { + string ic abcde ABCDE +} 0 +test string-18.3 {string icompare} { + string icompare abcde abcde +} 0 +test string-18.4 {string icompare too few args} { + list [catch {string icompare a} msg] $msg +} {1 {wrong # args: should be "string icompare string1 string2 ?length?"}} +test string-18.5 {string icompare bad args} { + list [catch {string icompare a b c} msg] $msg +} {1 {expected integer but got "c"}} +test string-18.6 {string icompare too many args} { + list [catch {string icompare a b 1 c} msg] $msg +} {1 {wrong # args: should be "string icompare string1 string2 ?length?"}} +test string-18.7 {string icompare with length} { + string icompare abcde Abxyz 2 +} 0 +test string-18.8 {string icompare with special index} { + list [catch {string icompare Abcde abxyz end-3} msg] $msg +} {1 {expected integer but got "end-3"}} + +test string-19.1 {string iequal} { + string iequal abcde abdef +} 0 +test string-19.2 {string iequal} { + string ieq abcde ABCDE +} 1 +test string-19.3 {string iequal} { + string iequal abcde abcde +} 1 + +test string-20.1 {string map} { + list [catch {string map} msg] $msg +} {1 {wrong # args: should be "string map charMap string"}} +test string-20.2 {string map} { + list [catch {string map {a b} abba oops} msg] $msg +} {1 {wrong # args: should be "string map charMap string"}} +test string-20.3 {string map} { + string map {a b} abba +} {bbbb} +test string-20.4 {string map} { + string map {abc 321 ab * a A} aabcabaababcab +} {A321*A*321*} +test string-20.5 {string map} { + list [catch {string map {a b c} abba} msg] $msg +} {1 {char map list unbalanced}} +test string-20.6 {string map} { + string map {\x00 NULL blah \x00nix} {qwerty} +} {qwerty} + +test string-21.1 {string repeat} { + list [catch {string repeat} msg] $msg +} {1 {wrong # args: should be "string repeat string count"}} +test string-21.2 {string repeat} { + list [catch {string repeat abc 10 oops} msg] $msg +} {1 {wrong # args: should be "string repeat string count"}} +test string-21.3 {string repeat} { + string repeat {} 100 +} {} +test string-21.4 {string repeat} { + string repeat { } 5 +} { } +test string-21.5 {string repeat} { + string repeat abc 3 +} {abcabcabc} +test string-21.6 {string repeat} { + string repeat abc -1 +} {} +test string-21.7 {string repeat} { + list [catch {string repeat abc end} msg] $msg +} {1 {expected integer but got "end"}} + +test string-22.1 {string replace} { +} {} +test string-22.2 {string replace} { + string replace abcdefghijklmnop 2 14 +} {abp} +test string-22.3 {string replace} { + string replace abcdefghijklmnop 7 1000 +} {abcdefg} +test string-22.4 {string replace} { + string replace abcdefghijklmnop 10 e +} {abcdefghij} +test string-22.5 {string replace} { + string replace abcdefghijklmnop 10 9 +} {abcdefghijklmnop} +test string-22.6 {string replace} { + string replace abcdefghijklmnop -3 2 +} {defghijklmnop} +test string-22.7 {string replace} { + string replace abcdefghijklmnop -3 -2 +} {abcdefghijklmnop} +test string-22.8 {string replace} { + string replace abcdefghijklmnop 1000 1010 +} {abcdefghijklmnop} +test string-22.9 {string replace} { + string replace abcdefghijklmnop -100 end +} {} +test string-22.10 {string replace} { + list [catch {string replace} msg] $msg +} {1 {wrong # args: should be "string replace string first last ?string?"}} +test string-22.11 {string replace} { + list [catch {string replace a 1} msg] $msg +} {1 {wrong # args: should be "string replace string first last ?string?"}} +test string-22.12 {string replace} { + list [catch {string replace a 1 2 3 4} msg] $msg +} {1 {wrong # args: should be "string replace string first last ?string?"}} +test string-22.13 {string replace} { + list [catch {string replace abc abc 1} msg] $msg +} {1 {syntax error in expression "abc"}} +test string-22.14 {string replace} { + list [catch {string replace abc 1 eof} msg] $msg +} {1 {syntax error in expression "eof"}} +test string-22.15 {string replace} { + string replace abcdefghijklmnop end-10 end-2 NEW +} {abcdeNEWop} +test string-22.16 {string replace} { + string replace abcdefghijklmnop 0 e foo +} {foo} +test string-22.17 {string replace} { + string replace abcdefghijklmnop end end-1 +} {abcdefghijklmnop} + # cleanup ::tcltest::cleanupTests return @@ -426,3 +625,6 @@ return + + + |