sl@0: # Commands covered: split sl@0: # sl@0: # This file contains a collection of tests for one or more of the Tcl sl@0: # built-in commands. Sourcing this file into Tcl runs the tests and sl@0: # generates output for errors. No output means no errors were found. sl@0: # sl@0: # Copyright (c) 1991-1993 The Regents of the University of California. sl@0: # Copyright (c) 1994-1996 Sun Microsystems, Inc. sl@0: # Copyright (c) 1998-1999 by Scriptics Corporation. sl@0: # sl@0: # See the file "license.terms" for information on usage and redistribution sl@0: # of this file, and for a DISCLAIMER OF ALL WARRANTIES. sl@0: # sl@0: # RCS: @(#) $Id: split.test,v 1.8 2002/11/12 02:25:24 hobbs Exp $ sl@0: sl@0: if {[lsearch [namespace children] ::tcltest] == -1} { sl@0: package require tcltest sl@0: namespace import -force ::tcltest::* sl@0: } sl@0: sl@0: test split-1.1 {basic split commands} { sl@0: split "a\n b\t\r c\n " sl@0: } {a {} b {} {} c {} {}} sl@0: test split-1.2 {basic split commands} { sl@0: split "word 1xyzword 2zword 3" xyz sl@0: } {{word 1} {} {} {word 2} {word 3}} sl@0: test split-1.3 {basic split commands} { sl@0: split "12345" {} sl@0: } {1 2 3 4 5} sl@0: test split-1.4 {basic split commands} { sl@0: split "a\}b\[c\{\]\$" sl@0: } "a\\}b\\\[c\\{\\\]\\\$" sl@0: test split-1.5 {basic split commands} { sl@0: split {} {} sl@0: } {} sl@0: test split-1.6 {basic split commands} { sl@0: split {} sl@0: } {} sl@0: test split-1.7 {basic split commands} { sl@0: split { } sl@0: } {{} {} {} {}} sl@0: test split-1.8 {basic split commands} { sl@0: proc foo {} { sl@0: set x {} sl@0: foreach f [split {]\n} {}] { sl@0: append x $f sl@0: } sl@0: return $x sl@0: } sl@0: foo sl@0: } {]\n} sl@0: test split-1.9 {basic split commands} { sl@0: proc foo {} { sl@0: set x ab\000c sl@0: set y [split $x {}] sl@0: return $y sl@0: } sl@0: foo sl@0: } "a b \000 c" sl@0: test split-1.10 {basic split commands} { sl@0: split "a0ab1b2bbb3\000c4" ab\000c sl@0: } {{} 0 {} 1 2 {} {} 3 {} 4} sl@0: test split-1.11 {basic split commands} { sl@0: split "12,3,45" {,} sl@0: } {12 3 45} sl@0: test split-1.12 {basic split commands} { sl@0: split "\u0001ab\u0001cd\u0001\u0001ef\u0001" \1 sl@0: } {{} ab cd {} ef {}} sl@0: test split-1.13 {basic split commands} { sl@0: split "12,34,56," {,} sl@0: } {12 34 56 {}} sl@0: test split-1.14 {basic split commands} { sl@0: split ",12,,,34,56," {,} sl@0: } {{} 12 {} {} 34 56 {}} sl@0: sl@0: test split-2.1 {split errors} { sl@0: list [catch split msg] $msg $errorCode sl@0: } {1 {wrong # args: should be "split string ?splitChars?"} NONE} sl@0: test split-2.2 {split errors} { sl@0: list [catch {split a b c} msg] $msg $errorCode sl@0: } {1 {wrong # args: should be "split string ?splitChars?"} NONE} sl@0: sl@0: # cleanup sl@0: catch {rename foo {}} sl@0: ::tcltest::cleanupTests sl@0: return sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: