diff options
Diffstat (limited to 'testsuite')
-rw-r--r-- | testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | testsuite/systemtap.base/stmt_rel.exp | 9 | ||||
-rw-r--r-- | testsuite/systemtap.base/stmt_rel.stp | 43 |
3 files changed, 57 insertions, 0 deletions
diff --git a/testsuite/ChangeLog b/testsuite/ChangeLog index 0c414115..bdae76e3 100644 --- a/testsuite/ChangeLog +++ b/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-06-09 Stan Cox <scox@redhat.com> + + * systemtap.base/stmt_rel.stp: New test. + * systemtap.base/stmt_rel.exp: Likewise. + 2008-06-06 David Smith <dsmith@redhat.com> * systemtap.base/utrace_p4.exp: Updated for utrace probe changes. diff --git a/testsuite/systemtap.base/stmt_rel.exp b/testsuite/systemtap.base/stmt_rel.exp new file mode 100644 index 00000000..e929b292 --- /dev/null +++ b/testsuite/systemtap.base/stmt_rel.exp @@ -0,0 +1,9 @@ +# test integer limits. Set and print variables and print constants. + +set test "stmt_rel" +set ::result_string {PASS bio_init +PASS line number +PASS address +} + +stap_run2 $srcdir/$subdir/$test.stp diff --git a/testsuite/systemtap.base/stmt_rel.stp b/testsuite/systemtap.base/stmt_rel.stp new file mode 100644 index 00000000..a5f1cc2a --- /dev/null +++ b/testsuite/systemtap.base/stmt_rel.stp @@ -0,0 +1,43 @@ +global stack2, stack2pp, stack2func + +probe kernel.statement("bio_init@fs/bio.c+2") { + stack2 = tokenize(backtrace(), " ") + stack2func = probefunc() + stack2pp = pp() +} +probe kernel.statement("bio_init@fs/bio.c+3") { + stack3 = tokenize(backtrace(), " " ) + stack3func = probefunc() + stack3pp = pp() + + stack2pp = tokenize(stack2pp,":") + stack2pp = tokenize("",":") + stack3pp = tokenize(stack3pp,":") + stack3pp = tokenize("",":") + + stack2line = strtol (substr(stack2pp,0,strlen(stack2pp)-2), 10) + stack3line = strtol (substr(stack3pp,0,strlen(stack3pp)-2), 10) + + if (stack2func == stack3func) { + printf ("PASS %s\n", stack2func) + } + else { + printf ("FAIL %s %s\n", stack2func, stack3func) + } + + if ((stack2line + 1) == stack3line) { + printf ("PASS line number\n") + } + else { + printf ("FAIL line number %d %d\n", stack2line, stack3line) + } + + if (stack2 < stack3) { + printf ("PASS address\n") + } + else { + printf ("FAIL address %s %s\n", stack2, stack3) + } + + exit() +} |