#suite_smoke.tcl (G-102): smoke assertions run under a suite-built shell itself #(the shell being smoked executes this script). Formerly suite.tcl inline smokes. # #args: -mode static|zip -expect # static: interpreter reports the expected patchlevel # zip: additionally proves the ATTACHED library works - tzdata reachable # (clock format with a named zone) and auto_load present proc fail {msg} {puts stderr "suite_smoke FAIL: $msg"; flush stderr; exit 1} array set opt {-mode static -expect {}} foreach {k v} $argv { if {![info exists opt($k)]} {fail "unknown option '$k'"} set opt($k) $v } if {$opt(-expect) eq ""} {fail "missing -expect "} set pl [info patchlevel] if {$pl ne $opt(-expect)} {fail "patchlevel mismatch: got '$pl' want '$opt(-expect)' ([info nameofexecutable])"} if {$opt(-mode) eq "zip"} { if {[catch {clock format 0 -gmt 0 -format %Z} tz]} {fail "tzdata not reachable from attached library: $tz"} if {[llength [info procs auto_load]] != 1} {fail "auto_load missing - attached library init incomplete"} puts "suite_smoke OK: $pl (zip: tz=$tz auto=1) [info nameofexecutable]" } else { puts "suite_smoke OK: $pl [info nameofexecutable]" } exit 0