diff options
author | jistone <jistone> | 2006-12-08 02:17:09 +0000 |
---|---|---|
committer | jistone <jistone> | 2006-12-08 02:17:09 +0000 |
commit | 16e8f21f336bcfc16a1174be8a8143668dbd0118 (patch) | |
tree | c967ecdec501b69910a16ee0f50317434ed49675 /testsuite/systemtap.base/be_order.stp | |
parent | e0d86324628566cedd055ed038fd487c12db676a (diff) | |
download | systemtap-steved-16e8f21f336bcfc16a1174be8a8143668dbd0118.tar.gz systemtap-steved-16e8f21f336bcfc16a1174be8a8143668dbd0118.tar.xz systemtap-steved-16e8f21f336bcfc16a1174be8a8143668dbd0118.zip |
2006-12-07 Josh Stone <joshua.i.stone@intel.com>
PR 3624.
* tapsets.cxx (struct be_derived_probe): Add a new priority parameter
for begin/end probes, and a comparison function for sorting.
(be_builder::build): Parse the priority & pass it to be_derived_probe.
(be_derived_probe_group::emit_module_init, emit_module_exit): Sort the
probe list by priority before emitting any code.
(register_standard_tapsets): Add new begin/end variants.
* parse.cxx (parser::parse_literal): Allow negative numeric literals,
by checking for a '-' unary operator right before a number.
testsuite/
* systemtap.base/be_order.exp, systemtap.base/be_order.stp,
semok/beginend.stp: New tests for begin/end priorities.
* lib/stap_run.exp: Anchor OUTPUT_CHECK_STRING to the end of output.
* systemtap.base/maxactive.exp: Fix to compare output to the end.
* systemtap.base/probefunc.exp: Ditto.
* systemtap.samples/ioblocktest.exp: Ditto.
* systemtap.samples/ioblocktest.stp: Ditto.
* systemtap.samples/tcptest.exp: Ditto.
Diffstat (limited to 'testsuite/systemtap.base/be_order.stp')
-rw-r--r-- | testsuite/systemtap.base/be_order.stp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/testsuite/systemtap.base/be_order.stp b/testsuite/systemtap.base/be_order.stp new file mode 100644 index 00000000..eb8ef0c8 --- /dev/null +++ b/testsuite/systemtap.base/be_order.stp @@ -0,0 +1,37 @@ +/* + * add.stp + * + * Check that ordering of begin/end probes works + */ + +probe begin { log("systemtap starting probe") } +probe end { log("systemtap ending probe") } + +global beginstr, endstr + +probe begin { beginstr .= "c" } +probe begin(1) { beginstr .= "d" } +probe begin(-1) { beginstr .= "b" } +probe begin(0) { beginstr .= "c" } +probe begin(9223372036854775807) { beginstr .= "e" } +probe begin(-9223372036854775808) { beginstr .= "a" } + +probe end { endstr .= "x" } +probe end(1) { endstr .= "y" } +probe end(-1) { endstr .= "w" } +probe end(0) { endstr .= "x" } +probe end(9223372036854775807) { + endstr .= "z" + + if (beginstr == "abccde") + log("systemtap test success") + else + printf("systemtap test failure - beginstr:%s != abccde\n", beginstr) + + if (endstr == "vwxxyz") + log("systemtap test success") + else + printf("systemtap test failure - endstr:%s != vwxxyz\n", endstr) +} +probe end(-9223372036854775808) { endstr .= "v" } + |