# stap_run_exact.exp # # Simple script for testing multiple lines of exact output. # stap_run_exact TEST_NAME filename args # TEST_NAME is the name printed # filename is path to the current test # Additional arguments are passed to stap as-is. # # global result_string must be set to the expected output proc stap_run_exact { TEST_NAME test_file_name args } { if {[info procs installtest_p] != "" && ![installtest_p]} { untested $TEST_NAME; return } set cmd [concat stap $args $test_file_name] catch {eval exec $cmd} res set n 0 set expected [split $::result_string "\n"] foreach line [split $res "\n"] { if {![string equal $line [lindex $expected $n]]} { fail "$TEST_NAME" send_log "line [expr $n + 1]: expected \"[lindex $expected $n]\"\n" send_log "Got \"$line\"\n" return } incr n } pass "$TEST_NAME" }