From: David Smith Date: Wed, 22 May 2013 16:14:20 +0000 (-0500) Subject: PR14574 partial fix: Add dyninst support to system_func.exp test. X-Git-Tag: release-2.3~233 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=abc2b79b76a663865e9944d0b829f6637ee20f2f;p=systemtap.git PR14574 partial fix: Add dyninst support to system_func.exp test. * testsuite/systemtap.base/system_func.exp: Add dyninst support. * testsuite/systemtap.base/system_func.stp: Ditto. --- diff --git a/testsuite/systemtap.base/system_func.exp b/testsuite/systemtap.base/system_func.exp index ec9357837..2c9e3a8e8 100644 --- a/testsuite/systemtap.base/system_func.exp +++ b/testsuite/systemtap.base/system_func.exp @@ -1,22 +1,35 @@ set test "system_func" if {![installtest_p]} { untested $test; return } -spawn stap $srcdir/$subdir/system_func.stp -set open 0 -set done 0 -set saw_user 0 -set user [exec whoami] -expect { - -timeout 30 - -re "($user|sys_open|DONE)\r" { - switch $expect_out(1,string) { - sys_open {incr open} - DONE {incr done} - default {incr saw_user} + +foreach runtime [get_runtime_list] { + set test "system_func" + if {$runtime != ""} { + lappend test "($runtime)" + spawn stap --runtime=$runtime $srcdir/$subdir/system_func.stp + } else { + spawn stap $srcdir/$subdir/system_func.stp + } + set open 0 + set done 0 + set saw_user 0 + set user [exec whoami] + expect { + -timeout 30 + -re "($user|sys_open|DONE)\r" { + switch $expect_out(1,string) { + sys_open {incr open} + DONE {incr done} + default {incr saw_user} + } + exp_continue } - exp_continue + timeout { fail "$test (timeout)" } + eof { } + } + catch {close}; catch {wait} + if {$open == 1 && $saw_user == 1 && $done == 1 } { + pass "$test" + } else { + fail "$test ($open,$saw_user,$done)" } - timeout { fail "$test (timeout)" } - eof { } } -catch {close}; wait -if {$open == 1 && $saw_user == 1 && $done == 1 } { pass "$test" } { fail "$test ($open,$saw_user,$done)" } diff --git a/testsuite/systemtap.base/system_func.stp b/testsuite/systemtap.base/system_func.stp index 6a6bb04ac..7a96a8b7a 100755 --- a/testsuite/systemtap.base/system_func.stp +++ b/testsuite/systemtap.base/system_func.stp @@ -4,7 +4,14 @@ global saw_echo, did_cat -probe kernel.function("do_sys_open") { +%(runtime == "kernel" %? +probe kernel.function("do_sys_open") +%: +# The dyninst runtime doesn't have kernel.function probes. Instead, +# we'll just use a begin probe to run system(). +probe begin +%) +{ if (!saw_echo) { # very inefficient. Testing only. DO NOT DO THIS msg="echo do_sys_open" @@ -15,8 +22,10 @@ probe kernel.function("do_sys_open") { probe timer.ms(100) { # should fail - system("cat __xyzzy123ABC__") - did_cat = 1 + if (!did_cat) { + system("cat __xyzzy123ABC__") + did_cat = 1 + } } probe timer.ms(150) {