summaryrefslogtreecommitdiffstats
path: root/testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite')
-rwxr-xr-x[-rw-r--r--]testsuite/buildok/irq.stp0
-rwxr-xr-x[-rw-r--r--]testsuite/buildok/logging.stp0
-rwxr-xr-x[-rw-r--r--]testsuite/buildok/pr10678.stp0
-rwxr-xr-x[-rw-r--r--]testsuite/buildok/scheduler-test-tracepoints.stp0
-rwxr-xr-x[-rw-r--r--]testsuite/buildok/semicolon.stp0
-rwxr-xr-x[-rw-r--r--]testsuite/buildok/vm.tracepoints.kmalloc.stp0
-rwxr-xr-x[-rw-r--r--]testsuite/buildok/vm.tracepoints.stp0
-rw-r--r--testsuite/systemtap.apps/postgres.exp9
-rw-r--r--testsuite/systemtap.base/declaration.exp20
-rw-r--r--testsuite/systemtap.base/maxmemory.exp86
-rw-r--r--testsuite/systemtap.base/sdt.exp4
-rw-r--r--testsuite/systemtap.base/sdt_misc.exp4
-rw-r--r--testsuite/systemtap.context/fib.exp14
-rw-r--r--testsuite/systemtap.context/fib.stp3
-rw-r--r--testsuite/systemtap.examples/profiling/graphcall.stp19
15 files changed, 127 insertions, 32 deletions
diff --git a/testsuite/buildok/irq.stp b/testsuite/buildok/irq.stp
index 7f1c2ab6..7f1c2ab6 100644..100755
--- a/testsuite/buildok/irq.stp
+++ b/testsuite/buildok/irq.stp
diff --git a/testsuite/buildok/logging.stp b/testsuite/buildok/logging.stp
index 636770c7..636770c7 100644..100755
--- a/testsuite/buildok/logging.stp
+++ b/testsuite/buildok/logging.stp
diff --git a/testsuite/buildok/pr10678.stp b/testsuite/buildok/pr10678.stp
index 4ce8fb99..4ce8fb99 100644..100755
--- a/testsuite/buildok/pr10678.stp
+++ b/testsuite/buildok/pr10678.stp
diff --git a/testsuite/buildok/scheduler-test-tracepoints.stp b/testsuite/buildok/scheduler-test-tracepoints.stp
index a660c367..a660c367 100644..100755
--- a/testsuite/buildok/scheduler-test-tracepoints.stp
+++ b/testsuite/buildok/scheduler-test-tracepoints.stp
diff --git a/testsuite/buildok/semicolon.stp b/testsuite/buildok/semicolon.stp
index 0ec41956..0ec41956 100644..100755
--- a/testsuite/buildok/semicolon.stp
+++ b/testsuite/buildok/semicolon.stp
diff --git a/testsuite/buildok/vm.tracepoints.kmalloc.stp b/testsuite/buildok/vm.tracepoints.kmalloc.stp
index f723737c..f723737c 100644..100755
--- a/testsuite/buildok/vm.tracepoints.kmalloc.stp
+++ b/testsuite/buildok/vm.tracepoints.kmalloc.stp
diff --git a/testsuite/buildok/vm.tracepoints.stp b/testsuite/buildok/vm.tracepoints.stp
index 6ed747d7..6ed747d7 100644..100755
--- a/testsuite/buildok/vm.tracepoints.stp
+++ b/testsuite/buildok/vm.tracepoints.stp
diff --git a/testsuite/systemtap.apps/postgres.exp b/testsuite/systemtap.apps/postgres.exp
index b7f522a1..9d3c18c3 100644
--- a/testsuite/systemtap.apps/postgres.exp
+++ b/testsuite/systemtap.apps/postgres.exp
@@ -122,14 +122,7 @@ cd postgresql-8.3.6/
mkdir bld;cd bld
../configure --enable-dtrace --prefix=$postgresdir
# sed -i -e 's/ifeq (\$(PORTNAME), solaris)/ifeq (\$(enable_dtrace), yes)/' src/backend/Makefile
-sed -i -e 's/^CFLAGS = -O2.*\$/& -g -DEXPERIMENTAL_UTRACE_SDT/' src/Makefile.global
-make
-make install
-run_tests utrace
-
-sed -i -e 's/UTRACE/KPROBE/' src/Makefile.global
-(cd src/backend/utils/
- make clean)
+sed -i -e 's/^CFLAGS = -O2.*\$/& -g -DEXPERIMENTAL_KPROBE_SDT/' src/Makefile.global
make
make install
run_tests kprobe
diff --git a/testsuite/systemtap.base/declaration.exp b/testsuite/systemtap.base/declaration.exp
deleted file mode 100644
index f7452a14..00000000
--- a/testsuite/systemtap.base/declaration.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-# Declaration tests. Specifically looking for resolution of
-# DW_AT_declaration from another module
-
-set TEST_NAME "empty-struct resolve-fail"
-
-# this test just makes sure $device is still stubbed with DW_AT_declaration
-set failscript {
- probe\ module(\"libata\").function(\"ata_qc_issue\")\ \{\ print(\$qc->\$scsicmd->\$device->\$host->\$host_no)\ \};
-}
-
-stap_compile $TEST_NAME 0 $failscript
-
-set TEST_NAME "empty-struct resolve-pass"
-
-set passscript {
- probe\ module(\"scsi_mod\").function(\"scsi_request_fn\")\ \{print(\$q)\}
-}
-
-setup_xfail 10732 "*-*-*"
-stap_compile $TEST_NAME 1 [concat $passscript $failscript ]
diff --git a/testsuite/systemtap.base/maxmemory.exp b/testsuite/systemtap.base/maxmemory.exp
new file mode 100644
index 00000000..20827edf
--- /dev/null
+++ b/testsuite/systemtap.base/maxmemory.exp
@@ -0,0 +1,86 @@
+if {![installtest_p]} {untested "MAXMEMORY"; return}
+
+set script {
+ global k
+
+ probe begin {
+ print("systemtap starting probe\n")
+ k["foo"] = 0
+ }
+
+ probe kernel.function("vfs_read"), kernel.function("vfs_write") {
+ k["foo"]++
+ }
+ probe end {
+ print("systemtap ending probe\n")
+ }
+}
+
+# stap_run_maxmemory TEST_NAME EXPECT_ERROR
+# TEST_NAME is the name of the current test
+# EXPECT_ERROR lets us know to expect an error or not
+#
+# Additional arguments are passed to stap as-is.
+proc stap_run_maxmemory { TEST_NAME EXPECT_ERROR args } {
+
+ set cmd [concat {stap -v} $args]
+ eval spawn $cmd
+ expect {
+ -timeout 150
+ -re {^Pass\ [1234]: [^\r]+real\ ms\.\r\n} {exp_continue}
+ -re {^Pass\ ([34]): using cached [^\r]+\r\n} {exp_continue}
+ -re {^Pass 5: starting run.\r\n} {exp_continue}
+ -re {^Error inserting module[^\r]+\r\n} {
+ if {$EXPECT_ERROR} {
+ pass "$TEST_NAME received expected insert module error"
+ } else {
+ fail "$TEST_NAME unexpected insert module error"
+ }
+ }
+ -re {ERROR: [^\r]+ allocation failed\r\n} {
+ if {$EXPECT_ERROR} {
+ pass "$TEST_NAME received expected allocation error"
+ } else {
+ fail "$TEST_NAME unexpected allocation error"
+ }
+ }
+ -re "^systemtap starting probe\r\n" {
+ exec kill -INT -[exp_pid]
+
+ expect {
+ -timeout 10
+ -re {^systemtap ending probe\r\n} {
+ if {$EXPECT_ERROR} {
+ fail "$TEST_NAME didn't receive expected allocation error"
+ } else {
+ pass "$TEST_NAME didn't receive allocation error"
+ }
+ }
+ -re {ERROR: .+ allocation failed\r\n} {
+ if {$EXPECT_ERROR} {
+ pass "$TEST_NAME received expected allocation error"
+ } else {
+ fail "$TEST_NAME received an unexpected allocation error"
+ }
+ }
+ }
+ }
+ -re "semantic error:" { fail "$TEST_NAME compilation" }
+ timeout { fail "$TEST_NAME startup (timeout)";
+ exec kill -INT -[exp_pid] }
+ eof { fail "$TEST_NAME startup (eof)" }
+ }
+ catch close
+ wait
+}
+
+# MAXMEMORY1 tests to make sure normal operation doesn't receive a
+# max memory error
+set test "MAXMEMORY1"
+stap_run_maxmemory $test 0 -u -e $script
+
+# MAXMEMORY2 is the same script, but we're adjusting STP_MAXMEMORY to
+# a low value so that we *will* get an allocation error or an insert
+# module error.
+set test "MAXMEMORY2"
+stap_run_maxmemory $test 1 -u -DSTP_MAXMEMORY=200 -e $script
diff --git a/testsuite/systemtap.base/sdt.exp b/testsuite/systemtap.base/sdt.exp
index ea025391..8a77cc06 100644
--- a/testsuite/systemtap.base/sdt.exp
+++ b/testsuite/systemtap.base/sdt.exp
@@ -12,8 +12,8 @@ set ::result_string {1
set extra_flags {{""} {additional_flags=-std=gnu89} {additional_flags=-ansi} {additional_flags=-pedantic} {additional_flags=-ansi additional_flags=-pedantic} {additional_flags=-O2} {additional_flags="-O3"}}
-set pbtype_flags {{""} {additional_flags=-DEXPERIMENTAL_UTRACE_SDT} {additional_flags=-DEXPERIMENTAL_KPROBE_SDT}}
-set pbtype_mssgs {{uprobe} {utrace} {kprobe}}
+set pbtype_flags {{""} {additional_flags=-DEXPERIMENTAL_KPROBE_SDT}}
+set pbtype_mssgs {{uprobe} {kprobe}}
# Iterate pbtype_flags
for {set p 0} {$p < [llength $pbtype_flags]} {incr p} {
diff --git a/testsuite/systemtap.base/sdt_misc.exp b/testsuite/systemtap.base/sdt_misc.exp
index 062181a5..8a0cdea2 100644
--- a/testsuite/systemtap.base/sdt_misc.exp
+++ b/testsuite/systemtap.base/sdt_misc.exp
@@ -136,8 +136,8 @@ if {[installtest_p]} {
set sdtdir $srcdir/../includes
}
-set pbtype_flags {{""} {additional_flags=-O additional_flags=-DEXPERIMENTAL_UTRACE_SDT} {additional_flags=-O additional_flags=-DEXPERIMENTAL_KPROBE_SDT}}
-set pbtype_mssgs {{uprobe} {utrace} {kprobe}}
+set pbtype_flags {{""} {additional_flags=-O additional_flags=-DEXPERIMENTAL_KPROBE_SDT}}
+set pbtype_mssgs {{uprobe} {kprobe}}
# Iterate pbtype_flags
for {set i 0} {$i < [llength $pbtype_flags]} {incr i} {
diff --git a/testsuite/systemtap.context/fib.exp b/testsuite/systemtap.context/fib.exp
index cc4d75a1..5026e5d0 100644
--- a/testsuite/systemtap.context/fib.exp
+++ b/testsuite/systemtap.context/fib.exp
@@ -35,3 +35,17 @@ expect {
}
wait
if {$fibcalls == 18 && $maincalls == 2} { pass "$test ($fibcalls $maincalls)" } { fail "$test ($fibcalls $maincalls)" }
+
+spawn stap -c "$testexe 10" -- $teststp --entry
+set fibcalls 0
+set maincalls 0
+expect {
+ -timeout 120
+ -re {^fib[^\r\n]*[\r\n]} { incr fibcalls; exp_continue }
+ -re {^main[^\r\n]*[\r\n]} { incr maincalls; exp_continue }
+ -re {^[^\r\n]*[\r\n]} {exp_continue}
+ timeout { fail "$test (timeout)" }
+ eof { }
+}
+wait
+if {$fibcalls == 55 && $maincalls == 10} { pass "$test ($fibcalls $maincalls)" } { fail "$test ($fibcalls $maincalls)" }
diff --git a/testsuite/systemtap.context/fib.stp b/testsuite/systemtap.context/fib.stp
index 85c2fc1d..fe2415f5 100644
--- a/testsuite/systemtap.context/fib.stp
+++ b/testsuite/systemtap.context/fib.stp
@@ -5,13 +5,16 @@ probe process("fib").function("fib").call {
depth++
if (depth > max_depth) {
max_depth = depth
+ %( $# > 0 %? print_ubacktrace_brief(); printf("\n") %)
}
}
probe process("fib").function("fib").return {
+ %( $# == 0 %?
if (depth == max_depth) {
print_ubacktrace_brief()
printf("\n")
}
+ %)
depth--
}
diff --git a/testsuite/systemtap.examples/profiling/graphcall.stp b/testsuite/systemtap.examples/profiling/graphcall.stp
new file mode 100644
index 00000000..db96b728
--- /dev/null
+++ b/testsuite/systemtap.examples/profiling/graphcall.stp
@@ -0,0 +1,19 @@
+#! /usr/bin/env stap
+
+# When the output of this script is fed to stapgraph, it produces a
+# mousable event line with events at each call of interest. When the
+# event is hovered over, the backtrace is displayed in stapgraph.
+
+probe begin
+{
+ printf("%%DataSet:call 75 ff0000 discreet\n")
+ printf("call %%Title:Calls to %s\n", @2)
+ printf ("call %%XAxisTitle:Time\n")
+ printf ("%%LineEnd:0\n")
+}
+
+probe process(@1).function(@2).call {
+ printf("call %d ", gettimeofday_ms())
+ print_ubacktrace_brief();
+ printf("%c", 0)
+}