diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2016-12-21 22:47:21 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2016-12-21 22:47:21 (GMT) |
commit | 5514e37335c012cc70f5b9aee3cedfe3d57f583f (patch) | |
tree | 4ba7d8aad13735e52f59bdce7ca5ba3151ebd7e3 /tcl8.6/tests/source.test | |
parent | 768f87f613cc9789fcf8073018fa02178c8c91df (diff) | |
download | blt-5514e37335c012cc70f5b9aee3cedfe3d57f583f.zip blt-5514e37335c012cc70f5b9aee3cedfe3d57f583f.tar.gz blt-5514e37335c012cc70f5b9aee3cedfe3d57f583f.tar.bz2 |
undo subtree
Diffstat (limited to 'tcl8.6/tests/source.test')
-rw-r--r-- | tcl8.6/tests/source.test | 312 |
1 files changed, 0 insertions, 312 deletions
diff --git a/tcl8.6/tests/source.test b/tcl8.6/tests/source.test deleted file mode 100644 index 0235bd1..0000000 --- a/tcl8.6/tests/source.test +++ /dev/null @@ -1,312 +0,0 @@ -# Commands covered: source -# -# This file contains a collection of tests for one or more of the Tcl -# built-in commands. Sourcing this file into Tcl runs the tests and -# generates output for errors. No output means no errors were found. -# -# Copyright (c) 1991-1993 The Regents of the University of California. -# Copyright (c) 1994-1996 Sun Microsystems, Inc. -# Copyright (c) 1998-2000 by Scriptics Corporation. -# Contributions from Don Porter, NIST, 2003. (not subject to US copyright) -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. - -if {[catch {package require tcltest 2.1}]} { - puts stderr "Skipping tests in [info script]. tcltest 2.1 required." - return -} - -namespace eval ::tcl::test::source { - namespace import ::tcltest::* - -test source-1.1 {source command} -setup { - set x "old x value" - set y "old y value" - set z "old z value" - set sourcefile [makeFile { - set x 22 - set y 33 - set z 44 - } source.file] -} -body { - source $sourcefile - list $x $y $z -} -cleanup { - removeFile source.file -} -result {22 33 44} -test source-1.2 {source command} -setup { - set sourcefile [makeFile {list result} source.file] -} -body { - source $sourcefile -} -cleanup { - removeFile source.file -} -result result -test source-1.3 {source command} -setup { - set sourcefile [makeFile {} source.file] - set fd [open $sourcefile w] - fconfigure $fd -translation lf - puts $fd "list a b c \\" - puts $fd "d e f" - close $fd -} -body { - source $sourcefile -} -cleanup { - removeFile source.file -} -result {a b c d e f} - -proc ListGlobMatch {expected actual} { - if {[llength $expected] != [llength $actual]} { - return 0 - } - foreach e $expected a $actual { - if {![string match $e $a]} { - return 0 - } - } - return 1 -} -customMatch listGlob [namespace which ListGlobMatch] - -test source-2.3 {source error conditions} -setup { - set sourcefile [makeFile { - set x 146 - error "error in sourced file" - set y $x - } source.file] -} -body { - list [catch {source $sourcefile} msg] $msg $::errorInfo -} -cleanup { - removeFile source.file -} -match listGlob -result [list 1 {error in sourced file} \ - {error in sourced file - while executing -"error "error in sourced file"" - (file "*source.file" line 3) - invoked from within -"source $sourcefile"}] -test source-2.4 {source error conditions} -setup { - set sourcefile [makeFile {break} source.file] -} -body { - source $sourcefile -} -cleanup { - removeFile source.file -} -returnCodes break -test source-2.5 {source error conditions} -setup { - set sourcefile [makeFile {continue} source.file] -} -body { - source $sourcefile -} -cleanup { - removeFile source.file -} -returnCodes continue -test source-2.6 {source error conditions} -setup { - set sourcefile [makeFile {} _non_existent_] - removeFile _non_existent_ -} -body { - list [catch {source $sourcefile} msg] $msg $::errorCode -} -match listGlob -result [list 1 \ - {couldn't read file "*_non_existent_": no such file or directory} \ - {POSIX ENOENT {no such file or directory}}] -test source-2.7 {utf-8 with BOM} -setup { - set sourcefile [makeFile {} source.file] -} -body { - set out [open $sourcefile w] - fconfigure $out -encoding utf-8 - puts $out "\ufeffset y new-y" - close $out - set y old-y - source -encoding utf-8 $sourcefile - return $y -} -cleanup { - removeFile $sourcefile -} -result {new-y} - -test source-3.1 {return in middle of source file} -setup { - set sourcefile [makeFile { - set x new-x - return allDone - set y new-y - } source.file] -} -body { - set x old-x - set y old-y - set z [source $sourcefile] - list $x $y $z -} -cleanup { - removeFile source.file -} -result {new-x old-y allDone} -test source-3.2 {return with special code etc.} -setup { - set sourcefile [makeFile { - set x new-x - return -code break "Silly result" - set y new-y - } source.file] -} -body { - source $sourcefile -} -cleanup { - removeFile source.file -} -returnCodes break -result {Silly result} -test source-3.3 {return with special code etc.} -setup { - set sourcefile [makeFile { - set x new-x - return -code error "Simulated error" - set y new-y - } source.file] -} -body { - list [catch {source $sourcefile} msg] $msg $::errorInfo $::errorCode -} -cleanup { - removeFile source.file -} -result {1 {Simulated error} {Simulated error - while executing -"source $sourcefile"} NONE} -test source-3.4 {return with special code etc.} -setup { - set sourcefile [makeFile { - set x new-x - return -code error -errorinfo "Simulated errorInfo stuff" - set y new-y - } source.file] -} -body { - list [catch {source $sourcefile} msg] $msg $::errorInfo $::errorCode -} -cleanup { - removeFile source.file -} -result {1 {} {Simulated errorInfo stuff - invoked from within -"source $sourcefile"} NONE} -test source-3.5 {return with special code etc.} -setup { - set sourcefile [makeFile { - set x new-x - return -code error -errorinfo "Simulated errorInfo stuff" \ - -errorcode {a b c} - set y new-y - } source.file] -} -body { - list [catch {source $sourcefile} msg] $msg $::errorInfo $::errorCode -} -cleanup { - removeFile source.file -} -result {1 {} {Simulated errorInfo stuff - invoked from within -"source $sourcefile"} {a b c}} - -test source-4.1 {continuation line parsing} -setup { - set sourcefile [makeFile [string map {CL \\\n} { - format %s "[dict get [info frame 0] type]:CL[dict get [info frame 0] line]CL[dict get [info frame 0] line]CL[dict get [info frame 0] line]" - }] source.file] -} -body { - source $sourcefile -} -cleanup { - removeFile source.file -} -result {source: 3 4 5} - -test source-6.1 {source is binary ok} -setup { - # Note [makeFile] writes in the system encoding. - # [source] defaults to reading in the system encoding. - set sourcefile [makeFile [list set x "a b\0c"] source.file] -} -body { - set x {} - source $sourcefile - string length $x -} -cleanup { - removeFile source.file -} -result 5 -test source-6.2 {source skips everything after Ctrl-Z: Bug 2040} -setup { - set sourcefile [makeFile "set x ab\32c" source.file] -} -body { - set x {} - source $sourcefile - string length $x -} -cleanup { - removeFile source.file -} -result 2 - -test source-7.1 {source -encoding test} -setup { - set sourcefile [makeFile {} source.file] - file delete $sourcefile - set f [open $sourcefile w] - fconfigure $f -encoding utf-8 - puts $f "set symbol(square-root) \u221A; set x correct" - close $f -} -body { - set x unset - source -encoding utf-8 $sourcefile - set x -} -cleanup { - removeFile source.file -} -result correct -test source-7.2 {source -encoding test} -setup { - # This tests for bad interactions between [source -encoding] - # and use of the Control-Z character (\u001A) as a cross-platform - # EOF character by [source]. Here we write out and the [source] a - # file that contains the byte \x1A, although not the character \u001A in - # the indicated encoding. - set sourcefile [makeFile {} source.file] - file delete $sourcefile - set f [open $sourcefile w] - fconfigure $f -encoding unicode - puts $f "set symbol(square-root) \u221A; set x correct" - close $f -} -body { - set x unset - source -encoding unicode $sourcefile - set x -} -cleanup { - removeFile source.file -} -result correct -test source-7.3 {source -encoding: syntax} -body { - # Have to spell out the -encoding option - source -e utf-8 no_file -} -returnCodes 1 -match glob -result {bad option*} -test source-7.4 {source -encoding: syntax} -setup { - set sourcefile [makeFile {} source.file] -} -body { - source -encoding no-such-encoding $sourcefile -} -cleanup { - removeFile source.file -} -returnCodes 1 -match glob -result {unknown encoding*} -test source-7.5 {source -encoding: correct operation} -setup { - set sourcefile [makeFile {} source.file] - file delete $sourcefile - set f [open $sourcefile w] - fconfigure $f -encoding utf-8 - puts $f "proc \u20ac {} {return foo}" - close $f -} -body { - source -encoding utf-8 $sourcefile - \u20ac -} -cleanup { - removeFile source.file - rename \u20ac {} -} -result foo -test source-7.6 {source -encoding: mismatch encoding error} -setup { - set sourcefile [makeFile {} source.file] - file delete $sourcefile - set f [open $sourcefile w] - fconfigure $f -encoding utf-8 - puts $f "proc \u20ac {} {return foo}" - close $f -} -body { - source -encoding ascii $sourcefile - \u20ac -} -cleanup { - removeFile source.file -} -returnCodes error -match glob -result {invalid command name*} - -test source-8.1 {source and coroutine/yield} -setup { - set sourcefile [makeFile {} source.file] - file delete $sourcefile -} -body { - makeFile {yield 1; yield 2; return 3;} $sourcefile - coroutine coro apply {f {yield;source $f}} $sourcefile - list [coro] [coro] [coro] [info exist coro] -} -cleanup { - catch {rename coro {}} - removeFile source.file -} -result {1 2 3 0} - -cleanupTests -} -namespace delete ::tcl::test::source -return - -# Local Variables: -# mode: tcl -# End: |