diff options
author | William Cohen <wcohen@redhat.com> | 2009-02-02 09:48:58 -0500 |
---|---|---|
committer | William Cohen <wcohen@redhat.com> | 2009-02-02 09:48:58 -0500 |
commit | 7a13f89ffc608e36302c43969d29fe08a589b5d7 (patch) | |
tree | 418ceba458d0cb1722ded388de555c5a730f4783 /testsuite | |
parent | 7627c52330b476c13498144cd1288be0f5869e0f (diff) | |
parent | 3d65f39002440cfdeeac94d7a7a6c9a7aead2e54 (diff) | |
download | systemtap-steved-7a13f89ffc608e36302c43969d29fe08a589b5d7.tar.gz systemtap-steved-7a13f89ffc608e36302c43969d29fe08a589b5d7.tar.xz systemtap-steved-7a13f89ffc608e36302c43969d29fe08a589b5d7.zip |
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap
Conflicts:
testsuite/ChangeLog
Diffstat (limited to 'testsuite')
-rw-r--r-- | testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | testsuite/systemtap.base/labels.exp | 67 |
2 files changed, 74 insertions, 0 deletions
diff --git a/testsuite/ChangeLog b/testsuite/ChangeLog index 07f2a15c..f44c6488 100644 --- a/testsuite/ChangeLog +++ b/testsuite/ChangeLog @@ -1,8 +1,15 @@ +<<<<<<< HEAD:testsuite/ChangeLog 2009-01-30 Will Cohen <wcohen@redhat.com> * systemtap.samples/queue_demo.exp: * systemtap.samples/queue_demo.stp: Remove. +======= +2009-02-01 Stan Cox <scox@redhat.com> + + * systemtap.base/labels.exp: New. + +>>>>>>> 3d65f39002440cfdeeac94d7a7a6c9a7aead2e54:testsuite/ChangeLog 2009-01-30 Frank Ch. Eigler <fche@elastic.org> * semok/twenty.stp: Don't spew so much into systemtap.log. diff --git a/testsuite/systemtap.base/labels.exp b/testsuite/systemtap.base/labels.exp new file mode 100644 index 00000000..6c62d576 --- /dev/null +++ b/testsuite/systemtap.base/labels.exp @@ -0,0 +1,67 @@ +set test "labels" +if {![installtest_p]} {untested $test; return} + +# Try to find utrace_attach symbol in /proc/kallsyms +# copy from utrace_p5.exp +set utrace_support_found 0 +set path "/proc/kallsyms" +if {! [catch {exec grep -q utrace_attach $path} dummy]} { + set utrace_support_found 1 +} +if {$utrace_support_found == 0} { untested "$test"; return } + +# Compile a C program to use as the user-space probing target +set label_srcpath "[pwd]/labels.c" +set label_exepath "[pwd]/labels.x" +set label_flags "additional_flags=-g" +set fp [open $label_srcpath "w"] +puts $fp " +int +main () +{ + sleep(5); + int a = 0; + int b = 0; + char *c; +init_an_int: + a = 2; +init_another_int: + b = 3; + c = \"abc\"; +ptr_inited: + return 1; +} +" +close $fp + +set fp [open "[pwd]/labels.stp" "w"] +puts $fp " +probe process(\"labels.x\").function(\"main*@labels.c\").label(\"init_*\") {printf (\"VARS %s\\n\",\$\$vars)} +probe process(\"labels.x\").function(\"main*@labels.c\").label(\"ptr_inited\") {printf (\"VARS %s\\n\",\$\$vars)} +" +close $fp + +set ok 0 + +set res [target_compile $label_srcpath $label_exepath executable $label_flags] +if { $res != "" } { + verbose "target_compile failed: $res" 2 + fail "compiling labels.c -g" + return +} else { + pass "compiling labels.c -g" +} + +verbose -log "spawn stap -c $label_exepath [pwd]/labels.stp" +spawn stap -c $label_exepath [pwd]/labels.stp + +expect { + -timeout 180 + -re {VARS a=0x0 b=0x0.*VARS a=0x2 b=0x0.*VARS a=0x2 b=0x3 c=0x[a-f01-9]} { incr ok; exp_continue } + timeout { fail "$test (timeout)" } + eof { } +} + +wait + +if {$ok == 1} { pass "$test" } { fail "$test ($ok)" } |