]> sourceware.org Git - systemtap.git/commitdiff
PR14574 partial fix: Add dyninst support to system_func.exp test.
authorDavid Smith <dsmith@redhat.com>
Wed, 22 May 2013 16:14:20 +0000 (11:14 -0500)
committerDavid Smith <dsmith@redhat.com>
Wed, 22 May 2013 16:14:20 +0000 (11:14 -0500)
* testsuite/systemtap.base/system_func.exp: Add dyninst support.
* testsuite/systemtap.base/system_func.stp: Ditto.

testsuite/systemtap.base/system_func.exp
testsuite/systemtap.base/system_func.stp

index ec935783741ef474c15b3b138bf3d48119e3bada..2c9e3a8e809e54065c84ebdb8d7a21dd3255bfe7 100644 (file)
@@ -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)" }
index 6a6bb04ac3ecc033ebee69241a787dc48582403e..7a96a8b7afe0e9ee87b1b43bb432bb072c960da4 100755 (executable)
@@ -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) { 
This page took 0.033603 seconds and 5 git commands to generate.