#!/usr/bin/expect -f set testfile [lindex $argv 0] switch -glob -- $testfile { tests/*.at { regsub {^tests/} $testfile {tests/tmp/} tt regsub {\.at$} $tt {} tt } * { set tt tests/tmp/[info pid] } } exec rm -rf $tt file mkdir tests/tmp $tt set pwd [pwd] set env(HOME) $tt set env(CAFTEST_CAF) $pwd set env(CAFTEST_TMP) $pwd/$tt set env(TERM) vt100 set env(CAFTEST_NOSRCDUMP) 1 set env(LC_ALL) en_GB.utf-8 log_user 0 log_file -a $tt/expect.log proc timeout-abort {} { send_log "\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" error "aborting due to timeout" } set timeout 10 proc elog {args} { set m "[list expect [lindex $args end]]" puts stderr $m # send_log "\n$m\n" eval expect $args } proc etxt {str} { regsub -all { } $str {\W{0,3}\w?} str elog -re $str } proc epage {str} { etxt $str } proc dospawn {} { global pwd spawn_id spawn -nottycopy \ w3m -config /dev/null -o cgi_bin=$pwd/tests file:///cgi-bin/wrap/Tsuffix expect_after timeout timeout-abort epage {You need to log in} } proc fillformfield {value} { send "\t\r$value\r" } proc submitform-expect {wanttxt} { send "\r" etxt "loading file" epage $wanttxt } proc loginas {user {password sesame} {wanttxt ACCESSGRANTED}} { fillformfield $user fillformfield $password send "\t" submitform-expect $wanttxt } source $testfile puts ok