diff options
author | ddomingo <ddomingo@redhat.com> | 2009-02-10 12:46:12 +1000 |
---|---|---|
committer | ddomingo <ddomingo@redhat.com> | 2009-02-10 12:46:12 +1000 |
commit | e0b8b4c0262d7d446a6d207700795f78ccbfe2a4 (patch) | |
tree | 86ad23c73942f2130f260d9e329a5548f11feb27 /testsuite/systemtap.base | |
parent | b7287c2e8d75606b96a8bc26eb7c747b89e2ded0 (diff) | |
parent | 890cb11e7e87596423ec8dcc67bcb7444b6b5b90 (diff) | |
download | systemtap-steved-e0b8b4c0262d7d446a6d207700795f78ccbfe2a4.tar.gz systemtap-steved-e0b8b4c0262d7d446a6d207700795f78ccbfe2a4.tar.xz systemtap-steved-e0b8b4c0262d7d446a6d207700795f78ccbfe2a4.zip |
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap
Diffstat (limited to 'testsuite/systemtap.base')
-rw-r--r-- | testsuite/systemtap.base/poll_map.exp | 14 | ||||
-rwxr-xr-x | testsuite/systemtap.base/poll_map.stp | 33 |
2 files changed, 47 insertions, 0 deletions
diff --git a/testsuite/systemtap.base/poll_map.exp b/testsuite/systemtap.base/poll_map.exp new file mode 100644 index 00000000..5ade48e6 --- /dev/null +++ b/testsuite/systemtap.base/poll_map.exp @@ -0,0 +1,14 @@ +set test "poll_map" +if {![installtest_p]} { untested $test; return } + +spawn stap -g $srcdir/$subdir/poll_map.stp +set ok 0 +expect { + -timeout 400 + -ex "SUCCESS" { incr ok } + timeout { fail "$test (timeout)" } + eof { } +} +close +wait +if {$ok == 1} { pass "$test ($ok)" } { fail "$test ($ok)" } diff --git a/testsuite/systemtap.base/poll_map.stp b/testsuite/systemtap.base/poll_map.stp new file mode 100755 index 00000000..cd39b433 --- /dev/null +++ b/testsuite/systemtap.base/poll_map.stp @@ -0,0 +1,33 @@ +#! stap + +# test that polling loops do not exit when conflicts happen +# see PR 1379 + +global called, num_polls + +probe kernel.function( "sys_*" ).call { + called[execname(),probefunc()]++ +} + +probe timer.ms(1000) +{ + print("\n\n") + num_to_do = 10 + foreach ([n,f] in called-) { + printf("%s called %s\t%d times\n", n, f, called[n,f]) + num_to_do-- + if (num_to_do <= 0) + break + } + delete called + num_polls++ + if (num_polls > 30) + exit() +} + +probe end { + if (num_polls <= 30) + print ("FAIL\n") + else + print ("SUCCESS\n") +} |