summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeiichi KII <k-keiichi@bx.jp.nec.com>2009-05-13 16:55:11 -0400
committerKeiichi KII <k-keiichi@bx.jp.nec.com>2009-05-13 16:55:11 -0400
commitf90da452b402af56c7f186798911ca5f49ee0cc4 (patch)
tree63c8d4cbcecd764546ee2d89b02830969cae302f
parent508e476d212146602499c9bf1283e15ee9f2f037 (diff)
downloadsystemtap-steved-f90da452b402af56c7f186798911ca5f49ee0cc4.tar.gz
systemtap-steved-f90da452b402af56c7f186798911ca5f49ee0cc4.tar.xz
systemtap-steved-f90da452b402af56c7f186798911ca5f49ee0cc4.zip
PR 6930: Add additional testcases for flight recorder mode
* testsuite/parseko/cmdline17.stp: command line check - bad combination with -D and -L * testsuite/parseko/cmdline18.stp: command line check - bad combination with -D and -d * testsuite/parseko/cmdline19.stp: command line check - bad combination with -D and -c * testsuite/parseko/cmdline20.stp: command line check - need output file with -D * testsuite/parseko/cmdline21.stp: command line check - need output file with -S * testsuite/systemtap.base/flightrec3.exp: New test case for file switching with bulk mode * testsuite/systemtap.base/flightrec3.stp: Test script for file switching per cpu
-rw-r--r--testsuite/parseko/cmdline17.stp8
-rw-r--r--testsuite/parseko/cmdline18.stp10
-rw-r--r--testsuite/parseko/cmdline19.stp10
-rw-r--r--testsuite/parseko/cmdline20.stp9
-rw-r--r--testsuite/parseko/cmdline21.stp15
-rw-r--r--testsuite/systemtap.base/flightrec3.exp79
-rw-r--r--testsuite/systemtap.base/flightrec3.stp5
7 files changed, 136 insertions, 0 deletions
diff --git a/testsuite/parseko/cmdline17.stp b/testsuite/parseko/cmdline17.stp
new file mode 100644
index 00000000..a9baf2d4
--- /dev/null
+++ b/testsuite/parseko/cmdline17.stp
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# options '-D' and '-L' are mutually exclusive
+#
+#-D Run in background. This requires '-o' option.
+#-L Load module and start probes, then detach.
+
+staprun -L -D fake_module
diff --git a/testsuite/parseko/cmdline18.stp b/testsuite/parseko/cmdline18.stp
new file mode 100644
index 00000000..bbdfbcc5
--- /dev/null
+++ b/testsuite/parseko/cmdline18.stp
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+# options '-D' and '-d' are mutually exclusive
+#
+#-D Run in background. This requires '-o' option.
+#-d Delete a module. Only detached or unused modules
+# the user has permission to access will be deleted. Use "*"
+# (quoted) to delete all unused modules.
+
+staprun -d -D fake_module
diff --git a/testsuite/parseko/cmdline19.stp b/testsuite/parseko/cmdline19.stp
new file mode 100644
index 00000000..fbcef351
--- /dev/null
+++ b/testsuite/parseko/cmdline19.stp
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+# options '-D' and '-c cmd' are mutually exclusive
+#
+#-D Run in background. This requires '-o' option.
+#-c cmd Command 'cmd' will be run and staprun will
+# exit when it does. The '_stp_target' variable
+# will contain the pid for the command.
+
+staprun -c /bin/ls -D fake_module
diff --git a/testsuite/parseko/cmdline20.stp b/testsuite/parseko/cmdline20.stp
new file mode 100644
index 00000000..625cf20d
--- /dev/null
+++ b/testsuite/parseko/cmdline20.stp
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+# You have to specify ouput FILE with '-D' option
+#
+#-D Run in background. This requires '-o' option.
+#-o FILE Send output to FILE. This supports strftime(3)
+# formats for FILE.
+
+staprun -D fake_module
diff --git a/testsuite/parseko/cmdline21.stp b/testsuite/parseko/cmdline21.stp
new file mode 100644
index 00000000..d7496c8c
--- /dev/null
+++ b/testsuite/parseko/cmdline21.stp
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# You have to specify ouput FILE with '-S' option
+#
+#-S size[,N] Switches output file to next file when the size
+# of file reaches the specified size. The value
+# should be an integer greater than 1 which is
+# assumed to be the maximum file size in MB.
+# When the number of output files reaches N, it
+# switches to the first output file. You can omit
+# the second argument.
+#-o FILE Send output to FILE. This supports strftime(3)
+# formats for FILE.
+
+staprun -S 1,1 fake_module
diff --git a/testsuite/systemtap.base/flightrec3.exp b/testsuite/systemtap.base/flightrec3.exp
new file mode 100644
index 00000000..5b9d8253
--- /dev/null
+++ b/testsuite/systemtap.base/flightrec3.exp
@@ -0,0 +1,79 @@
+set test "flightrec3"
+if {![installtest_p]} { untested $test; return }
+
+# cleanup
+system "rm -f flightlog.out*"
+
+set pid 0
+# check -S option with bulk(percpu file) mode
+spawn stap -F -o flightlog.out -S 1,3 -b $srcdir/$subdir/$test.stp
+expect {
+ -timeout 240
+ -re {([0-9]+)\r\n} {
+ pass "$test (-S option with bulk mode)"
+ set pid $expect_out(1,string)
+ exp_continue}
+ timeout { fail "$test (timeout)"}
+ eof { }
+}
+wait
+if {$pid == 0} {
+ fail "$test (no pid)"
+ return -1
+}
+
+exec sleep 4
+array set cpus {}
+set scnt 0
+# wait for log files
+exec kill -STOP $pid
+exec sleep 1
+eval spawn stat -c \"%n %s\" [glob flightlog.out_cpu*]
+expect {
+ -timeout 100
+ -re {flightlog.out_cpu([0-9]+).[0-9]+ ([0-9]+)\r\n} {
+ set cpuid $expect_out(1,string)
+ set size $expect_out(2,string)
+ if {[array get cpus $cpuid] == ""} {set cpus($cpuid) 0}
+ incr cpus($cpuid);
+ if {$size <= 1048576 } {incr scnt}
+ exp_continue}
+ timeout { fail "$test (logfile timeout)"}
+}
+wait
+exec kill -CONT $pid
+exec sleep 3
+exec kill -STOP $pid
+eval spawn stat -c \"%n %s\" [glob flightlog.out_cpu*]
+expect {
+ -timeout 100
+ -re {flightlog.out_cpu([0-9]+).[0-9]+ ([0-9]+)\r\n} {
+ set cpuid $expect_out(1,string)
+ set size $expect_out(2,string)
+ if {[array get cpus $cpuid] == ""} {set cpus($cpuid) 0}
+ incr cpus($cpuid);
+ if {$size <= 1048576 } {incr scnt}
+ exp_continue}
+ timeout { fail "$test (logfile timeout)"}
+}
+wait
+exec kill -CONT $pid
+# check logfile number
+set cnt 0
+foreach e [array names cpus] {
+ if {$cpus($e) != 6} {
+ fail "$test (log file numbers cpu:$e, cnt:$cpus($e)))"
+ }
+ set cnt [expr $cnt + $cpus($e)]
+}
+# check logfile size
+if {$scnt == $cnt} {
+ pass "$test (log file size limitation with bulk mode)"
+} else {
+ fail "$test (log file size ($scnt != $cnt))"
+}
+exec kill -TERM $pid
+# wait for exiting...
+exec sleep 1
+system "rm -f flightlog.out*"
+
diff --git a/testsuite/systemtap.base/flightrec3.stp b/testsuite/systemtap.base/flightrec3.stp
new file mode 100644
index 00000000..d660793f
--- /dev/null
+++ b/testsuite/systemtap.base/flightrec3.stp
@@ -0,0 +1,5 @@
+probe kernel.function("update_process_times")
+{
+ for (j = 0; j < 100; j++)
+ printf("1234567890\n")
+}