summaryrefslogtreecommitdiffstats
path: root/testsuite
diff options
context:
space:
mode:
authorWenji Huang <wenji.huang@oracle.com>2009-07-28 19:50:24 -0400
committerWenji Huang <wenji.huang@oracle.com>2009-07-28 19:50:24 -0400
commita0c0ed1c030d8e812eed19b096c626b7ce233358 (patch)
tree6f0b56dc7814bf92d116fd9b291c04f5d1400ac7 /testsuite
parentfc7e606e053159fad715883ccee2d99324c32f1a (diff)
downloadsystemtap-steved-a0c0ed1c030d8e812eed19b096c626b7ce233358.tar.gz
systemtap-steved-a0c0ed1c030d8e812eed19b096c626b7ce233358.tar.xz
systemtap-steved-a0c0ed1c030d8e812eed19b096c626b7ce233358.zip
PR6978: support $$parms for process.syscall
* tapset-utrace.cxx (visit_target_symbol_arg): Handle $$parms. * testsuite/systemtap.base/utrace_p4.exp: Add test case. * testsuite/systemtap.base/utrace_p5.exp: Ditto.
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/systemtap.base/utrace_p4.exp19
-rw-r--r--testsuite/systemtap.base/utrace_p5.exp22
2 files changed, 41 insertions, 0 deletions
diff --git a/testsuite/systemtap.base/utrace_p4.exp b/testsuite/systemtap.base/utrace_p4.exp
index 8d323a8a..c76503cb 100644
--- a/testsuite/systemtap.base/utrace_p4.exp
+++ b/testsuite/systemtap.base/utrace_p4.exp
@@ -10,6 +10,7 @@
set begin_script {"probe process(\"/bin/ls\").begin { print(\"ls begin\") }"}
set end_script {"probe process(\"/bin/ls\").end { print(\"ls end\") }"}
set syscall_script {"probe process(\"/bin/ls\").syscall { printf(\"|%d\", \$syscall) }"}
+set syscall_parms_script {"probe process(\"/bin/ls\").syscall { printf(\"|%s\", \$\$parms) }"}
set syscall_return_script {"probe process(\"/bin/ls\").syscall.return { printf(\"|%d\", \$syscall) }"}
set thread_begin_script {"probe process(\"/bin/ls\").thread.begin { print(\"ls thread.begin\") }"}
set thread_end_script {"probe process(\"/bin/ls\").thread.end { print(\"ls thread.end\") }"}
@@ -18,6 +19,7 @@ set all_begin_script {"probe process.begin { print(\"begin\") }"}
set pid_begin_script {"probe process(123).begin { print(\"123 begin\") }"}
set pid_end_script {"probe process(123).end { print(\"123 end\") }"}
set pid_syscall_script {"probe process(123).syscall { printf(\"|%d\", \$syscall) }"}
+set pid_parms_script {"probe process(123).syscall { printf(\"|%s\", \$\$parms) }"}
set pid_syscall_return_script {"probe process(123).syscall.return { printf(\"|%d\", \$syscall) }"}
set pid_thread_begin_script {"probe process(123).thread.begin { print(\"123 thread.begin\") }"}
set pid_thread_end_script {"probe process(123).thread.end { print(\"123 thread.end\") }"}
@@ -129,3 +131,20 @@ if {![utrace_p]} {
# Try compiling an system-wide begin script
stap_compile $TEST_NAME 1 $all_begin_script
}
+
+set TEST_NAME "UTRACE_P4_08"
+if {![utrace_p]} {
+ untested "$TEST_NAME : no kernel utrace support found"
+} else {
+ # Try compiling a syscall parms script using a path
+ stap_compile $TEST_NAME 1 $syscall_parms_script
+}
+
+set TEST_NAME "UTRACE_P4_09"
+if {![utrace_p]} {
+ untested "$TEST_NAME : no kernel utrace support found"
+} else {
+ # Try compiling a syscall parms script using a pid
+ stap_compile $TEST_NAME 1 $pid_parms_script
+}
+
diff --git a/testsuite/systemtap.base/utrace_p5.exp b/testsuite/systemtap.base/utrace_p5.exp
index 3d432dc3..7062bc0d 100644
--- a/testsuite/systemtap.base/utrace_p5.exp
+++ b/testsuite/systemtap.base/utrace_p5.exp
@@ -89,6 +89,18 @@ set bz6841_script {
}
set bz6841_script_output ".+ issues syscall \\d+ times\r\n"
+set syscall_parms_script {
+ global syscall_parms_string
+ probe begin { printf("systemtap starting probe\n") }
+ probe process.syscall { syscall_parms_string = $$parms exit() }
+ probe end { printf("systemtap ending probe\n")
+ printf("%s\n",syscall_parms_string)
+ delete syscall_parms_string
+ }
+}
+set syscall_parms_script_output "(.+arg\[1-6\]=0x\[0-9a-f\]+)+\r\n"
+
+
# Set up our own copy of /bin/cat, to make testing for a particular
# executable easy. We can't use 'ln' here, since we might be creating
# a cross-device link. We can't use 'ln -s' here, since the kernel
@@ -202,5 +214,15 @@ if {![utrace_p]} {
-e $bz6841_script
}
+set TEST_NAME "UTRACE_P5_08"
+if {![utrace_p]} {
+ untested "$TEST_NAME : no kernel utrace support found"
+} elseif {![installtest_p]} {
+ untested "$TEST_NAME"
+} else {
+ set script [format $syscall_parms_script "%s"]
+ stap_run $TEST_NAME no_load $syscall_parms_script_output -e $script
+}
+
# Cleanup
exec rm -f $exepath $multi_exepath