diff options
author | fche <fche> | 2006-08-12 05:13:09 +0000 |
---|---|---|
committer | fche <fche> | 2006-08-12 05:13:09 +0000 |
commit | 814bc89d4635f101b2c0077598f31aad95ed15b7 (patch) | |
tree | 407a49dbaf446af4751f5068607a7fb8dad0611d /testsuite/lib/stap_run.exp | |
parent | 6b6d04673a1ef175821afc7d4fabdb496698e8e3 (diff) | |
download | systemtap-steved-814bc89d4635f101b2c0077598f31aad95ed15b7.tar.gz systemtap-steved-814bc89d4635f101b2c0077598f31aad95ed15b7.tar.xz systemtap-steved-814bc89d4635f101b2c0077598f31aad95ed15b7.zip |
2006-08-12 Frank Ch. Eigler <fche@elastic.org>
* configure.ac, Makefile.am: Descend into testsuite/
directory. Remove local test logic.
* configure, Makefile.in: Regenerated.
* runtest.sh: Not yet removed.
* HACKING: Update for new testsuite layout.
2006-08-12 Frank Ch. Eigler <fche@elastic.org>
* all: Reorganized old pass-1..4 tests one dejagnu bucket.
Moved over old pass-5 tests, except for disabled syscalls tests.
* Makefile (installcheck): New target for running pass-1..5
tests against installed systemtap.
Diffstat (limited to 'testsuite/lib/stap_run.exp')
-rw-r--r-- | testsuite/lib/stap_run.exp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/testsuite/lib/stap_run.exp b/testsuite/lib/stap_run.exp new file mode 100644 index 00000000..d230e8e5 --- /dev/null +++ b/testsuite/lib/stap_run.exp @@ -0,0 +1,72 @@ +# stap_run.exp +# +# Will Cohen +# 8/12/2005 + + +# stap_run TEST_NAME LOAD_GEN_FUNCTION OUTPUT_CHECK_STRING +# TEST_NAME is path to the current test +# LOAD_GEN_FUNCTION (optional) to produce something to measure +# returns 0 if successful +# returns 1 if there was a problem +# OUTPUT_CHECK_STRING (optional) examines the output of experiment +# returns 0 if successful +# returns 1 if there was a problem +# Additional arguments are passed to stap as-is. +proc stap_run { TEST_NAME {LOAD_GEN_FUNCTION ""} {OUTPUT_CHECK_STRING ""} args } { + if {![installtest_p]} { untested $TEST_NAME; return } + + set cmd [concat {stap -v} $args] + if [file readable $TEST_NAME] { + lappend cmd $TEST_NAME + } + eval spawn $cmd + expect { + -re {^Pass\ ([1234]):[^\r]*\ in\ ([0-9]+)usr/([0-9]+)sys/([0-9]+)real\ ms.\r\n} + {set pass$expect_out(1,string) "\t$expect_out(2,string)\t$expect_out(3,string)\t$expect_out(4,string)"; exp_continue} + -re {^Pass 5: starting run.\r\n} {exp_continue} + -timeout 30 -re "^systemtap starting probe\r\n" { + pass "$TEST_NAME startup" + if {$LOAD_GEN_FUNCTION != ""} then { + #run the interesting test here + if {[eval $LOAD_GEN_FUNCTION] == 0} then { + pass "$TEST_NAME load generation" + } else { + fail "$TEST_NAME load generation" + } + } + + send "\003" + + #check the output to see if it is sane + set output "^systemtap ending probe\r\n$OUTPUT_CHECK_STRING" + + expect { + -re $output { + pass "$TEST_NAME shutdown and output" + expect { + -re {^Pass\ ([5]):[^\r]*\ in\ ([0-9]+)usr/([0-9]+)sys/([0-9]+)real\ ms.\r\n} + {set pass$expect_out(1,string) "\t$expect_out(2,string)\t$expect_out(3,string)\t$expect_out(4,string)" + verbose -log "metric:\t$TEST_NAME $pass1$pass2$pass3$pass4$pass5"} + } + } + timeout { fail "$TEST_NAME shutdown (timeout)" } + eof { fail "$TEST_NAME shutdown (eof)" } + } + } + -re "semantic error:" { fail "$TEST_NAME compilation" } + timeout { fail "$TEST_NAME startup (timeout)"; send "\003" } + eof { fail "$TEST_NAME startup (eof)" } + } + catch close + wait +} + +proc no_load {} { +# nothing in here +# load to use when nothing is needed + return 0 +} + +# tests better all be true +set all_pass_string "(systemtap test success\r\n)+" |