# This file contains a top-level script to run all of the Tcl # tests. Execute it by invoking "source all" when running tclTest # in this directory. # # RCS: @(#) $Id: all,v 1.4 1998/12/04 04:18:20 hershey Exp $ set TESTS_DIR [file join [pwd] [file dirname [info script]]] source [file join $TESTS_DIR defs] set currentDir [pwd] catch {array set flag $argv} set requiredSourceFiles [list autoMkindex.tcl remote.tcl defs] # # Set the TMP_DIR to pwd or the arg of -tmpdir, if given. # if {[info exists flag(-tmpdir)]} { set TMP_DIR $flag(-tmpdir) if {![file exists $TMP_DIR]} { if {[catch {file mkdir $TMP_DIR} msg]} { error "bad argument \"$flag(-tmpdir)\" to -tmpdir:\n$msg" } file mkdir $TMP_DIR } elseif {![file isdir $TMP_DIR]} { error "bad argument \"$flag(-tmpdir)\" to -tmpdir:\n$TMP_DIR is not a directory" } if {[string compare [file pathtype $TMP_DIR] absolute] != 0} { set TMP_DIR [file join [pwd] $TMP_DIR] } cd $TMP_DIR } # # copy each required source file to the current dir (if it's not already there). # if {[string compare $TESTS_DIR [pwd]] != 0} { foreach file $requiredSourceFiles { if {![file exists $file]} { catch {file copy [file join $TESTS_DIR $file] .} } } } if {$tcl_platform(os) == "Win32s"} { set globPattern [file join $TESTS_DIR *.tes] } else { set globPattern [file join $TESTS_DIR *.test] } foreach file [lsort [glob $globPattern]] { set tail [file tail $file] if {[string match l.*.test $tail]} { # This is an SCCS lockfile; ignore it continue } puts stdout $tail if {[catch {source $file} msg]} { puts stdout $msg } } # remove the required source files from the current dir. if {[info exists TMP_DIR]} { foreach file $requiredSourceFiles { catch {file delete -force $file} } cd $currentDir }