# # webTest.tcl -- top-level script to run all tests for websh3 # nca-073-9 # # Copyright (C) 1996-2000 by Netcetera AG. # All rights reserved. # # See the file "license.terms" for information on usage and # redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # @(#) $Id$ # if {[lsearch [namespace children] ::tcltest] == -1} { package require tcltest namespace import ::tcltest::* } set verbose 0 set ::tcltest::testSingleFile false set ::tcltest::testsDirectory [file dir [info script]] # We need to ensure that the testsDirectory is absolute # if {[string equal relative [file pathtype $::tcltest::testsDirectory]]} { set cwd [pwd] cd $::tcltest::testsDirectory set ::tcltest::testsDirectory [pwd] cd $cwd unset cwd } set ::tcltest::testConstraints(unixOnly) \ [string equal $tcl_platform(platform) "unix"] set ::tcltest::testConstraints(pcOnly) \ [string equal $tcl_platform(platform) "windows"] # ----------------------------------------------------------------------------- # load websh if not done yet # ----------------------------------------------------------------------------- if {![string length [info commands web::htmlify]]} { if {[info exists $env(WEB_LIBRARY)] == 0} { load $env(WEB_LIBRARY) } } # ----------------------------------------------------------------------------- # log to local file # ----------------------------------------------------------------------------- ## web::loglevel add *.-debug ## web::logdest add *.-debug channel stdout ## web::logdest add *.-debug file [file join . webtest.log] ## web::log websh3.debug {== tests started ==} # ----------------------------------------------------------------------------- # configuration # ----------------------------------------------------------------------------- puts "Test configuration:" puts "+ Tcl $tcl_patchLevel" puts "+ [info nameofexecutable]" puts "+ logfile: webtest.log" if {$verbose} { puts "+ verbose mode" rename test test.unverbose proc test {name args} { puts "Running test $name" uplevel test.unverbose $name $args } } else { puts "+ quiet mode" } puts "+ working dir: $::tcltest::testsDirectory" if {[llength $::tcltest::skip] > 0} { puts "+ skipping tests that match: $::tcltest::skip" } if {[llength $::tcltest::match] > 0} { puts "+ only running tests that match: $::tcltest::match" } if {[llength $::tcltest::skipFiles] > 0} { puts "+ skipping test files that match: $::tcltest::skipFiles" } puts "" # ----------------------------------------------------------------------------- # actual tests # ----------------------------------------------------------------------------- puts "Tests began at [clock format [clock seconds]]" # source each of the specified tests foreach file [lsort [::tcltest::getMatchingFiles]] { set tail [file tail $file] puts "Running test file $tail" if {[string match $tail "time.test"]} { if {$verbose} { puts "Skipping test file $tail" } } else { if {[catch {source $file} msg]} { puts "Running test file $tail failed: $msg" } } } puts "Tests ended at [clock format [clock seconds]]\n" # cleanup ::tcltest::cleanupTests 1