summaryrefslogtreecommitdiffstats
path: root/testsuite/lib/stap_run_exact.exp
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/lib/stap_run_exact.exp')
-rw-r--r--testsuite/lib/stap_run_exact.exp30
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"
+}