diff options
Diffstat (limited to 'testsuite/lib')
-rw-r--r-- | testsuite/lib/stap_run_exact.exp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/testsuite/lib/stap_run_exact.exp b/testsuite/lib/stap_run_exact.exp new file mode 100644 index 00000000..6a473798 --- /dev/null +++ b/testsuite/lib/stap_run_exact.exp @@ -0,0 +1,30 @@ +# 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" +} |