summaryrefslogtreecommitdiffstats
path: root/testsuite
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2007-11-30 18:55:43 -0500
committerFrank Ch. Eigler <fche@elastic.org>2007-11-30 18:55:43 -0500
commitbe01a078db770c236308d8375f96ebb6076a93a1 (patch)
tree658c53e02897b352cddd4c3a7ad9ab576fa8286e /testsuite
parent80237db77374679171ac68f22cab0aee8c9b3d12 (diff)
parent44386f7789fbbb0b144c84847f35da6b10215af0 (diff)
downloadsystemtap-steved-be01a078db770c236308d8375f96ebb6076a93a1.tar.gz
systemtap-steved-be01a078db770c236308d8375f96ebb6076a93a1.tar.xz
systemtap-steved-be01a078db770c236308d8375f96ebb6076a93a1.zip
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/ChangeLog10
-rwxr-xr-xtestsuite/semok/twentyeight.stp4
-rw-r--r--testsuite/systemtap.base/marker.exp38
3 files changed, 35 insertions, 17 deletions
diff --git a/testsuite/ChangeLog b/testsuite/ChangeLog
index 075245aa..dd7234ad 100644
--- a/testsuite/ChangeLog
+++ b/testsuite/ChangeLog
@@ -1,3 +1,13 @@
+2007-11-29 David Smith <dsmith@redhat.com>
+
+ * systemtap.base/marker.exp: Gets marker list from
+ Module.markers. K_MARKER03 is always run since it is designed to
+ fail.
+
+2007-11-27 David Smith <dsmith@redhat.com>
+
+ * semok/twentyeight.stp: Tests wildcarded probe points.
+
2007-11-19 Frank Ch. Eigler <fche@elastic.org>
* parseok/five.stp, semok/twentyseven.stp: Test "!" probe point flag.
diff --git a/testsuite/semok/twentyeight.stp b/testsuite/semok/twentyeight.stp
new file mode 100755
index 00000000..f9854134
--- /dev/null
+++ b/testsuite/semok/twentyeight.stp
@@ -0,0 +1,4 @@
+#! stap -p2
+
+# Make sure wildcards are handled
+probe kerne*.funct*("sys_read").* {}
diff --git a/testsuite/systemtap.base/marker.exp b/testsuite/systemtap.base/marker.exp
index 3dc0a6bf..1b750409 100644
--- a/testsuite/systemtap.base/marker.exp
+++ b/testsuite/systemtap.base/marker.exp
@@ -51,16 +51,21 @@ set kernel_script {"probe kernel.mark(\"%s\") { }"}
set kernel_script_arg {"probe kernel.mark(\"%s\") { print(%s) }"}
set kernel_script_arg2 {"probe kernel.mark(\"%s\") { %s = 0 }"}
-# Try to figure out if kernel markers are present in the kernel itself
-# or in any loaded module
-set fl [open "| egrep __mark_.+\.\[0-9\]+ /proc/kallsyms"]
-while {[gets $fl s] >= 0} {
- if [regexp {__mark_([^.]+)\.[0-9]+\t?} $s match name subexp module] {
- set kernel_markers_found 1
- lappend kernel_marker_names $name
+# Try to read in the marker list from the Module.markers file.
+set uname [exec /bin/uname -r]
+set arch [exec arch]
+set path "/usr/src/kernels/$uname-$arch/Module.markers"
+if {! [catch {open $path RDONLY} fl]} {
+ while {[gets $fl s] >= 0} {
+ # This regexp only picks up markers that contain arguments.
+ # This helps ensure that K_MARKER04 passes correctly.
+ if [regexp {^([^ \t]+)\t[^ \t]+.+$} $s match name] {
+ set kernel_markers_found 1
+ lappend kernel_marker_names $name
+ }
}
+ catch {close $fl}
}
-catch {close $fl}
#
# Do some marker tests.
@@ -86,15 +91,13 @@ if {$kernel_markers_found == 0} {
stap_compile $TEST_NAME 1 $script
}
+# We can go ahead and try this test even if the kernel doesn't have
+# marker support, since we're probing a marker that doesn't exist.
set TEST_NAME "K_MARKER03"
-if {$kernel_markers_found == 0} {
- untested "$TEST_NAME : no kernel markers present"
-} else {
- # Try compiling a script that probes a kernel marker that doesn't
- # exist.
- set script [format $kernel_script "X_marker_that_does_not_exist_X"]
- stap_compile $TEST_NAME 0 $script
-}
+# Try compiling a script that probes a kernel marker that doesn't
+# exist.
+set script [format $kernel_script "X_marker_that_does_not_exist_X"]
+stap_compile $TEST_NAME 0 $script
set TEST_NAME "K_MARKER04"
if {$kernel_markers_found == 0} {
@@ -102,7 +105,8 @@ if {$kernel_markers_found == 0} {
} else {
# Try compiling a script that prints the first argument of a
# marker. This one might fail if the marker we pick doesn't have
- # any arguments.
+ # any arguments (but hopefully our kernel marker list only
+ # contains markers that have at least one argument).
set script [format $kernel_script_arg \
[lindex $kernel_marker_names 0] {\$arg1}]
stap_compile $TEST_NAME 1 $script