diff options
-rw-r--r-- | tests/ioUtil.test | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/tests/ioUtil.test b/tests/ioUtil.test new file mode 100644 index 0000000..03b7caf --- /dev/null +++ b/tests/ioUtil.test @@ -0,0 +1,100 @@ +# This file (iOUtil.test) tests the hookable TclStat(), @@@TclAccess(), +# and @@@Tcl_OpenFileChannel, routines in the file generic/tclIOUtils.c. +# Sourcing this file into Tcl runs the tests and generates output for +# errors. No output means no errors were found. +# +# Copyright (c) 1998 by Scriptics Corporation. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +# SCCS: %Z% $Id: ioUtil.test,v 1.1 1998/06/04 12:44:44 suresh Exp $ + +if {[string compare test [info procs test]] == 1} then {source defs} + +set unsetScript { + catch {unset testStat1(size)} + catch {unset testStat2(size)} + catch {unset testStat3(size)} +} + +test stat-1.1 {TclStat: Check that none of the test procs are there.} { + catch {file stat testTclStat1%.fil testStat1} err1 + catch {file stat testTclStat2%.fil testStat2} err2 + catch {file stat testTclStat3%.fil testStat3} err3 + list $err1 $err2 $err3 +} {{couldn't stat "testTclStat1%.fil": no such file or directory} {couldn't stat "testTclStat2%.fil": no such file or directory} {couldn't stat "testTclStat3%.fil": no such file or directory}} + +test stat-1.2 {TclStatInsertProc: Insert the 3 test TclStat_ procedures.} { + catch {testTclStat insert TclpStat} err1 + testTclStat insert TestTclStatProc1 + testTclStat insert TestTclStatProc2 + testTclStat insert TestTclStatProc3 + set err1 +} {bad arg "insert": must be TestTclStatProc1, TestTclStatProc2, or TestTclStatProc3} + +test stat-1.3 {TclStat: Use "file stat ?" to invoke each procedure.} { + file stat testTclStat2%.fil testStat2 + file stat testTclStat1%.fil testStat1 + file stat testTclStat3%.fil testStat3 + + list $testStat2(size) $testStat1(size) $testStat3(size) +} {2345 1234 3456} + +eval $unsetScript + +test stat-1.4 {TclStatDeleteProc: "TclpStat" function should not be deletedable.} { + catch {testTclStat delete TclpStat} err2 + set err2 +} {"TclpStat": could not be deleteed} + +test stat-1.5 {TclStatDeleteProc: Delete the 2nd TclStat procedure.} { + # Delete the 2nd procedure and test that it longer exists but that + # the others do actually return a result. + testTclStat delete TestTclStatProc2 + file stat testTclStat1%.fil testStat1 + catch {file stat testTclStat2%.fil testStat2} err3 + file stat testTclStat3%.fil testStat3 + + list $testStat1(size) $err3 $testStat3(size) +} {1234 {couldn't stat "testTclStat2%.fil": no such file or directory} 3456} + +eval $unsetScript + +test stat-1.6 {TclStatDeleteProc: Delete the 1st TclStat procedure.} { + # Next delete the 1st procedure and test that only the 3rd procedure + # is the only one that exists. + testTclStat delete TestTclStatProc1 + catch {file stat testTclStat1%.fil testStat1} err4 + catch {file stat testTclStat2%.fil testStat2} err5 + file stat testTclStat3%.fil testStat3 + + list $err4 $err5 $testStat3(size) +} {{couldn't stat "testTclStat1%.fil": no such file or directory} {couldn't stat "testTclStat2%.fil": no such file or directory} 3456} + +eval $unsetScript + +test stat-1.7 {TclStatDeleteProc: Delete the 3rd procedure & verify all are gone.} { + # Finally delete the 3rd procedure and check that none of the + # procedures exist. + testTclStat delete TestTclStatProc3 + catch {file stat testTclStat1%.fil testStat1} err6 + catch {file stat testTclStat2%.fil testStat2} err7 + catch {file stat testTclStat3%.fil testStat3} err8 + + list $err6 $err7 $err8 +} {{couldn't stat "testTclStat1%.fil": no such file or directory} {couldn't stat "testTclStat2%.fil": no such file or directory} {couldn't stat "testTclStat3%.fil": no such file or directory}} + +eval $unsetScript + +test stat-1.8 {TclStatDeleteProc: Verify that all procs have been deleted.} { + # Attempt to delete all the Stat procs. again to ensure they no longer + # exist and an error is returned. + catch {testTclStat delete TestTclStatProc1} err9 + catch {testTclStat delete TestTclStatProc2} err10 + catch {testTclStat delete TestTclStatProc3} err11 + + list $err9 $err10 $err11 +} {{"TestTclStatProc1": could not be deleteed} {"TestTclStatProc2": could not be deleteed} {"TestTclStatProc3": could not be deleteed}} + +eval $unsetScript |