summaryrefslogtreecommitdiffstats
path: root/testsuite/lib/stap_run_exact.exp
blob: 6a47379868bf1baf53df40819bfaf5c6eb4aab8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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"
}