summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMasami Hiramatsu <mhiramat@redhat.com>2009-04-22 13:07:26 -0400
committerMasami Hiramatsu <mhiramat@redhat.com>2009-04-22 13:07:26 -0400
commiteee3e6dca7f1289ccb6795bc586fbda2dbe67188 (patch)
treef31b8bf55c69d422076b673f71c347795c73695d
parenta12a8a3f1b4f7cdb743aeaaa5ee6c5a4ff28bb7e (diff)
downloadsystemtap-steved-eee3e6dca7f1289ccb6795bc586fbda2dbe67188.tar.gz
systemtap-steved-eee3e6dca7f1289ccb6795bc586fbda2dbe67188.tar.xz
systemtap-steved-eee3e6dca7f1289ccb6795bc586fbda2dbe67188.zip
PR 6930: Add testcases for on-file flight recorder
* testsuite/systemtap.base/flightrec1.exp: New test case for background mode. * testsuite/systemtap.base/flightrec2.exp: New test case for file switching. * testsuite/systemtap.base/flightrec2.stp: Test script for file switching.
-rw-r--r--testsuite/systemtap.base/flightrec1.exp43
-rw-r--r--testsuite/systemtap.base/flightrec2.exp69
-rw-r--r--testsuite/systemtap.base/flightrec2.stp5
3 files changed, 117 insertions, 0 deletions
diff --git a/testsuite/systemtap.base/flightrec1.exp b/testsuite/systemtap.base/flightrec1.exp
new file mode 100644
index 00000000..c32a77f2
--- /dev/null
+++ b/testsuite/systemtap.base/flightrec1.exp
@@ -0,0 +1,43 @@
+set test "flightrec1"
+if {![installtest_p]} { untested $test; return }
+
+# run stapio in background mode
+spawn stap -F -o $test.out -we {probe begin {}}
+# check whether stap outputs stapio pid
+set pid 0
+expect {
+ -timeout 240
+ -re {([0-9]+)\r\n} {
+ pass "$test (flight recorder option)"
+ set pid $expect_out(1,string)
+ exp_continue}
+ timeout { fail "$test (timeout)" }
+ eof { }
+}
+wait
+if {$pid == 0} {
+ fail "$test (no pid)"
+ return -1
+}
+
+# check whether stapio is running in background
+spawn ps -o cmd hc $pid
+expect {
+ -timeout 10
+ "stapio" {pass "$test (stapio in background)"} # don't contine
+ timeout { fail "$test (timeout)"}
+ eof { fail "$test (stapio was not found)" }
+}
+wait
+
+exec kill -TERM $pid
+
+# check output file
+if {[catch {exec rm $test.out}]} {
+ fail "$test (no output file)"
+ return -1
+} else {
+ pass "$test (output file)"
+}
+
+
diff --git a/testsuite/systemtap.base/flightrec2.exp b/testsuite/systemtap.base/flightrec2.exp
new file mode 100644
index 00000000..a22ef415
--- /dev/null
+++ b/testsuite/systemtap.base/flightrec2.exp
@@ -0,0 +1,69 @@
+set test "flightrec2"
+if {![installtest_p]} { untested $test; return }
+
+# cleanup
+system "rm -f flightlog.out*"
+
+set pid 0
+# check -S option
+spawn stap -F -o flightlog.out -S 1,3 $srcdir/$subdir/$test.stp
+expect {
+ -timeout 240
+ -re {([0-9]+)\r\n} {
+ pass "$test (-S option)"
+ 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
+set scnt 0
+set cnt1 0
+# wait for log files
+spawn ls -sk1
+expect {
+ -timeout 100
+ -re {([0-9]+) flightlog\.out\.[0-9]+} {
+ incr cnt1;
+ if {$expect_out(1,string) <= 1028} {incr scnt}
+ # 1024 + 4(for inode blocks?)
+ exp_continue}
+ timeout { fail "$test (logfile timeout)"}
+}
+wait
+exec sleep 3
+set cnt2 0
+# wait for log files
+spawn ls -sk1
+expect {
+ -timeout 100
+ -re {([0-9]+) flightlog\.out\.[0-9]+} {
+ incr cnt2;
+ if {$expect_out(1,string) <= 1028} {incr scnt}
+ exp_continue}
+ timeout { fail "$test (logfile timeout)"}
+}
+wait
+# check logfile number
+if {$cnt1 == 3 && $cnt2 == 3} {
+ pass "$test (log file numbers limitation)"
+} else {
+ fail "$test (log file numbers ($cnt1, $cnt2))"
+}
+# check logfile size
+if {$scnt == 6} {
+ pass "$test (log file size limitation)"
+} else {
+ fail "$test (log file size ($scnt))"
+}
+exec kill -TERM $pid
+# wait for exiting...
+exec sleep 1
+system "rm -f flightlog.out*"
+
diff --git a/testsuite/systemtap.base/flightrec2.stp b/testsuite/systemtap.base/flightrec2.stp
new file mode 100644
index 00000000..9d745f4b
--- /dev/null
+++ b/testsuite/systemtap.base/flightrec2.stp
@@ -0,0 +1,5 @@
+probe timer.ms(1)
+{
+ for (j = 0; j < 100; j++)
+ printf("1234567890\n")
+}