From a3b4f52cd67ff11dfc12e8e878744ea1319308ef Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Thu, 27 Aug 2009 15:43:51 -0700 Subject: PR10568: Ensure that aliases pull in their tapset When a probe alias is resolved in a tapset, the contents of that tapset should be included in the compiled script, just as we do for global variables and functions. * elaborate.cxx (alias_expansion_builder::build): When an alias is instantiated, add its stapfile to the session files. * testsuite/systemtap.base/tapset_includes.exp: New test. * testsuite/systemtap.base/tapset/*.stp: Testing tapsets for above. --- testsuite/systemtap.base/tapset/alias.stp | 6 ++++++ testsuite/systemtap.base/tapset/function.stp | 6 ++++++ testsuite/systemtap.base/tapset/global.stp | 4 ++++ testsuite/systemtap.base/tapset_includes.exp | 21 +++++++++++++++++++++ 4 files changed, 37 insertions(+) create mode 100644 testsuite/systemtap.base/tapset/alias.stp create mode 100644 testsuite/systemtap.base/tapset/function.stp create mode 100644 testsuite/systemtap.base/tapset/global.stp create mode 100644 testsuite/systemtap.base/tapset_includes.exp (limited to 'testsuite/systemtap.base') diff --git a/testsuite/systemtap.base/tapset/alias.stp b/testsuite/systemtap.base/tapset/alias.stp new file mode 100644 index 00000000..a36009a9 --- /dev/null +++ b/testsuite/systemtap.base/tapset/alias.stp @@ -0,0 +1,6 @@ +probe test_alias = end { + alias_local = 1 +} +probe begin { + println("included alias") +} diff --git a/testsuite/systemtap.base/tapset/function.stp b/testsuite/systemtap.base/tapset/function.stp new file mode 100644 index 00000000..45c5f372 --- /dev/null +++ b/testsuite/systemtap.base/tapset/function.stp @@ -0,0 +1,6 @@ +function test_function:long() { + return 1 +} +probe begin { + println("included function") +} diff --git a/testsuite/systemtap.base/tapset/global.stp b/testsuite/systemtap.base/tapset/global.stp new file mode 100644 index 00000000..4a95ae77 --- /dev/null +++ b/testsuite/systemtap.base/tapset/global.stp @@ -0,0 +1,4 @@ +global test_global = 1 +probe begin { + println("included global") +} diff --git a/testsuite/systemtap.base/tapset_includes.exp b/testsuite/systemtap.base/tapset_includes.exp new file mode 100644 index 00000000..06957e09 --- /dev/null +++ b/testsuite/systemtap.base/tapset_includes.exp @@ -0,0 +1,21 @@ +# Check that globals, functions, and aliases will pull in probes from the +# tapset file in which they are defined. + +if {![installtest_p]} { untested "tapset includes"; return } + +set tapset "$srcdir/$subdir/tapset" + +# global +set script "probe end { if (test_global) println(\"end\") }" +set ::result_string "included global\nend" +stap_run_exact "tapset include global" -I$tapset -e $script -c true + +# function +set script "probe end { if (test_function()) println(\"end\") }" +set ::result_string "included function\nend" +stap_run_exact "tapset include function" -I$tapset -e $script -c true + +# alias +set script "probe test_alias { if (alias_local) println(\"end\") }" +set ::result_string "included alias\nend" +stap_run_exact "tapset include alias" -I$tapset -e $script -c true -- cgit