home *** CD-ROM | disk | FTP | other *** search
- # Commands covered: none
- #
- # This file contains a collection of tests for Tcl's dynamic string
- # library procedures. Sourcing this file into Tcl runs the tests and
- # generates output for errors. No output means no errors were found.
- #
- # Copyright (c) 1993 The Regents of the University of California.
- # All rights reserved.
- #
- # Permission is hereby granted, without written agreement and without
- # license or royalty fees, to use, copy, modify, and distribute this
- # software and its documentation for any purpose, provided that the
- # above copyright notice and the following two paragraphs appear in
- # all copies of this software.
- #
- # IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
- # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
- # OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
- # CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- #
- # THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- # AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- # ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
- # PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
- #
- # $Header: /user6/ouster/tcl/tests/RCS/dstring.test,v 1.3 93/10/11 09:06:01 ouster Exp $ (Berkeley)
-
- if {[info commands testdstring] == {}} {
- puts "This application hasn't been compiled with the \"testdstring\""
- puts "command, so I can't test Tcl_DStringAppend et al."
- return
- }
-
- if {[string compare test [info procs test]] == 1} then {source defs}
-
- test dstring-1.1 {appending and retrieving} {
- testdstring free
- testdstring append "abc" -1
- list [testdstring get] [testdstring length]
- } {abc 3}
- test dstring-1.2 {appending and retrieving} {
- testdstring free
- testdstring append "abc" -1
- testdstring append " xyzzy" 3
- testdstring append " 12345" -1
- list [testdstring get] [testdstring length]
- } {{abc xy 12345} 12}
- test dstring-1.3 {appending and retrieving} {
- testdstring free
- foreach l {a b c d e f g h i j k l m n o p} {
- testdstring append $l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l\n -1
- }
- list [testdstring get] [testdstring length]
- } {{aaaaaaaaaaaaaaaaaaaaa
- bbbbbbbbbbbbbbbbbbbbb
- ccccccccccccccccccccc
- ddddddddddddddddddddd
- eeeeeeeeeeeeeeeeeeeee
- fffffffffffffffffffff
- ggggggggggggggggggggg
- hhhhhhhhhhhhhhhhhhhhh
- iiiiiiiiiiiiiiiiiiiii
- jjjjjjjjjjjjjjjjjjjjj
- kkkkkkkkkkkkkkkkkkkkk
- lllllllllllllllllllll
- mmmmmmmmmmmmmmmmmmmmm
- nnnnnnnnnnnnnnnnnnnnn
- ooooooooooooooooooooo
- ppppppppppppppppppppp
- } 352}
-
- test dstring-2.1 {appending list elements} {
- testdstring free
- testdstring element "abc"
- testdstring element "d e f"
- list [testdstring get] [testdstring length]
- } {{abc {d e f}} 11}
- test dstring-2.2 {appending list elements} {
- testdstring free
- testdstring element "x"
- testdstring element "\{"
- testdstring element "ab\}"
- testdstring get
- } {x \{ ab\}}
- test dstring-2.3 {appending list elements} {
- testdstring free
- foreach l {a b c d e f g h i j k l m n o p} {
- testdstring element $l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l
- }
- testdstring get
- } {aaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbb ccccccccccccccccccccc ddddddddddddddddddddd eeeeeeeeeeeeeeeeeeeee fffffffffffffffffffff ggggggggggggggggggggg hhhhhhhhhhhhhhhhhhhhh iiiiiiiiiiiiiiiiiiiii jjjjjjjjjjjjjjjjjjjjj kkkkkkkkkkkkkkkkkkkkk lllllllllllllllllllll mmmmmmmmmmmmmmmmmmmmm nnnnnnnnnnnnnnnnnnnnn ooooooooooooooooooooo ppppppppppppppppppppp}
-
- test dstring-3.1 {nested sublists} {
- testdstring free
- testdstring start
- testdstring element foo
- testdstring element bar
- testdstring end
- testdstring element another
- testdstring get
- } {{foo bar} another}
- test dstring-3.2 {nested sublists} {
- testdstring free
- testdstring start
- testdstring start
- testdstring element abc
- testdstring element def
- testdstring end
- testdstring end
- testdstring element ghi
- testdstring get
- } {{{abc def}} ghi}
- test dstring-3.3 {nested sublists} {
- testdstring free
- testdstring start
- testdstring start
- testdstring start
- testdstring element foo
- testdstring element foo2
- testdstring end
- testdstring end
- testdstring element foo3
- testdstring end
- testdstring element foo4
- testdstring get
- } {{{{foo foo2}} foo3} foo4}
- test dstring-3.4 {nested sublists} {
- testdstring free
- testdstring element before
- testdstring start
- testdstring element during
- testdstring element more
- testdstring end
- testdstring element last
- testdstring get
- } {before {during more} last}
- test dstring-3.4 {nested sublists} {
- testdstring free
- testdstring element "\{"
- testdstring start
- testdstring element first
- testdstring element second
- testdstring end
- testdstring get
- } {\{ {first second}}
-
- test dstring-4.1 {truncation} {
- testdstring free
- testdstring append "abcdefg" -1
- testdstring trunc 3
- list [testdstring get] [testdstring length]
- } {abc 3}
- test dstring-4.2 {truncation} {
- testdstring free
- testdstring append "xyzzy" -1
- testdstring trunc 0
- list [testdstring get] [testdstring length]
- } {{} 0}
-
- test dstring-5.1 {copying to result} {
- testdstring free
- testdstring append xyz -1
- testdstring result
- } xyz
- test dstring-5.2 {copying to result} {
- testdstring free
- foreach l {a b c d e f g h i j k l m n o p} {
- testdstring append $l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l\n -1
- }
- set a [testdstring result]
- testdstring append abc -1
- list $a [testdstring get]
- } {{aaaaaaaaaaaaaaaaaaaaa
- bbbbbbbbbbbbbbbbbbbbb
- ccccccccccccccccccccc
- ddddddddddddddddddddd
- eeeeeeeeeeeeeeeeeeeee
- fffffffffffffffffffff
- ggggggggggggggggggggg
- hhhhhhhhhhhhhhhhhhhhh
- iiiiiiiiiiiiiiiiiiiii
- jjjjjjjjjjjjjjjjjjjjj
- kkkkkkkkkkkkkkkkkkkkk
- lllllllllllllllllllll
- mmmmmmmmmmmmmmmmmmmmm
- nnnnnnnnnnnnnnnnnnnnn
- ooooooooooooooooooooo
- ppppppppppppppppppppp
- } abc}
-
- testdstring free
-