diff options
Diffstat (limited to 'testsuite/systemtap.samples/args.exp')
-rw-r--r-- | testsuite/systemtap.samples/args.exp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/testsuite/systemtap.samples/args.exp b/testsuite/systemtap.samples/args.exp new file mode 100644 index 00000000..14f19f17 --- /dev/null +++ b/testsuite/systemtap.samples/args.exp @@ -0,0 +1,72 @@ +set test "args" +if {![installtest_p]} { untested $test; return } + +set stappath [exec which stap] +set stpdpath [exec dirname $stappath]/../libexec/systemtap/stpd + +if [file exists $stpdpath] { + pass "$test search for stpd ($stpdpath)" +} else { + fail "$test search for stpd" + return +} + +set modname "args_[pid]" +spawn stap -k -p4 -m $modname $srcdir/$subdir/args.stp +set tmpdir NO_SUCH_FILE +expect { + -timeout 30 + -re {Keeping temporary directory "([/a-zA-Z0-9_]*)"} { pass "$test compile"; + set tmpdir $expect_out(1,string) } + timeout { fail "$test compile (timeout)" } + eof { } +} +catch {close}; wait +if [file exists $tmpdir] { + pass "$test search for tmpdir ($tmpdir)" +} else { + fail "$test search for tmpdir" + return +} + +set modpath "$tmpdir/$modname.ko" +if [file exists $modpath] { + pass "$test search for probe module ($modpath)" +} else { + fail "$test search for probe module" + return +} + +spawn sudo $stpdpath -r -d [pid] $modpath foo=hello bar=999 +set ok 0 +expect { + -timeout 30 + -re {foo=hello bar=999} { incr ok } + timeout { } + eof { } +} +catch {close}; wait +if {$ok == 1} { + pass "$test run 1" +} else { + fail "$test run 1" +} + +spawn sudo $stpdpath -r -d [pid] $modpath foo=goodbye bar=0 +set ok 0 +expect { + -timeout 30 + -re {foo=goodbye bar=0} { incr ok } + timeout { } + eof { } +} +catch {close}; wait +if {$ok == 1} { + pass "$test run 2" +} else { + fail "$test run 2" +} + + + +exec /bin/rm -rf $tmpdir |