summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhunt <hunt>2007-10-25 22:22:16 +0000
committerhunt <hunt>2007-10-25 22:22:16 +0000
commit0379c17346059afa8dffb07eef82eaea726be6d2 (patch)
treeaf53c0b5618fd36d67dd928c65919379d575b135
parent805006f778928f9d43419c3ad0f9e6cd0e9df9c0 (diff)
downloadsystemtap-steved-0379c17346059afa8dffb07eef82eaea726be6d2.tar.gz
systemtap-steved-0379c17346059afa8dffb07eef82eaea726be6d2.tar.xz
systemtap-steved-0379c17346059afa8dffb07eef82eaea726be6d2.zip
2007-10-25 Martin Hunt <hunt@redhat.com>
* systemtap.printf/print_char.*: New test. * systemtap.printf/print.*: New test. * systemtap.printf/println.*: New test. * systemtap.maps/elision.*: New tests. * config/unix.exp: Added stap_run_exact. * lib/stap_run_exact.exp: New. Like stap_run2 but takes a seperate test name.
-rw-r--r--testsuite/ChangeLog12
-rw-r--r--testsuite/config/unix.exp1
-rw-r--r--testsuite/lib/stap_run_exact.exp30
-rwxr-xr-xtestsuite/systemtap.maps/elision.exp397
-rw-r--r--testsuite/systemtap.maps/elision.stp54
-rw-r--r--testsuite/systemtap.printf/print.exp18
-rw-r--r--testsuite/systemtap.printf/print.stp47
-rw-r--r--testsuite/systemtap.printf/print_char.exp5
-rw-r--r--testsuite/systemtap.printf/print_char.stp16
-rw-r--r--testsuite/systemtap.printf/println.exp18
-rw-r--r--testsuite/systemtap.printf/println.stp37
11 files changed, 635 insertions, 0 deletions
diff --git a/testsuite/ChangeLog b/testsuite/ChangeLog
index 69ee365e..c5e4f8f0 100644
--- a/testsuite/ChangeLog
+++ b/testsuite/ChangeLog
@@ -1,5 +1,17 @@
2007-10-25 Martin Hunt <hunt@redhat.com>
+ * systemtap.printf/print_char.*: New test.
+ * systemtap.printf/print.*: New test.
+ * systemtap.printf/println.*: New test.
+
+ * systemtap.maps/elision.*: New tests.
+
+ * config/unix.exp: Added stap_run_exact.
+ * lib/stap_run_exact.exp: New. Like stap_run2 but
+ takes a seperate test name.
+
+2007-10-25 Martin Hunt <hunt@redhat.com>
+
* systemtap.printf/printd.stp: New
* systemtap.printf/printdln.stp: New
diff --git a/testsuite/config/unix.exp b/testsuite/config/unix.exp
index b3be70f5..625c5604 100644
--- a/testsuite/config/unix.exp
+++ b/testsuite/config/unix.exp
@@ -1,4 +1,5 @@
load_lib "systemtap.exp"
load_lib "stap_run2.exp"
+load_lib "stap_run_exact.exp"
load_lib "stap_run_binary.exp"
load_lib "stap_run.exp"
diff --git a/testsuite/lib/stap_run_exact.exp b/testsuite/lib/stap_run_exact.exp
new file mode 100644
index 00000000..6a473798
--- /dev/null
+++ b/testsuite/lib/stap_run_exact.exp
@@ -0,0 +1,30 @@
+# stap_run_exact.exp
+#
+# Simple script for testing multiple lines of exact output.
+
+# stap_run_exact TEST_NAME filename args
+# TEST_NAME is the name printed
+# filename is path to the current test
+# Additional arguments are passed to stap as-is.
+#
+# global result_string must be set to the expected output
+
+proc stap_run_exact { TEST_NAME test_file_name args } {
+ if {[info procs installtest_p] != "" && ![installtest_p]} { untested $TEST_NAME; return }
+
+ set cmd [concat stap $args $test_file_name]
+ catch {eval exec $cmd} res
+
+ set n 0
+ set expected [split $::result_string "\n"]
+ foreach line [split $res "\n"] {
+ if {![string equal $line [lindex $expected $n]]} {
+ fail "$TEST_NAME"
+ send_log "line [expr $n + 1]: expected \"[lindex $expected $n]\"\n"
+ send_log "Got \"$line\"\n"
+ return
+ }
+ incr n
+ }
+ pass "$TEST_NAME"
+}
diff --git a/testsuite/systemtap.maps/elision.exp b/testsuite/systemtap.maps/elision.exp
new file mode 100755
index 00000000..60c52bbe
--- /dev/null
+++ b/testsuite/systemtap.maps/elision.exp
@@ -0,0 +1,397 @@
+# test elision of zero buckets in histograms
+
+set myresults(-1) {value |-------------------------------------------------- count
+ 300 | 0
+ 350 | 0
+ 400 |@ 1
+ 450 | 0
+ 500 | 0
+ 550 | 0
+ 600 | 0
+ 650 | 0
+ 700 | 0
+ 750 | 0
+ 800 | 0
+ 850 | 0
+ 900 | 0
+ 950 |@ 1
+ 1000 | 0
+ 1050 | 0
+
+value |-------------------------------------------------- count
+ 300 | 0
+ 350 | 0
+ 400 |@ 1
+ 450 | 0
+ 500 |@ 1
+ 550 | 0
+ 600 | 0
+
+value |-------------------------------------------------- count
+ 0 |@ 1
+ 50 | 0
+ 100 | 0
+
+value |-------------------------------------------------- count
+ 0 | 0
+ 50 |@ 1
+ 100 | 0
+ 150 | 0
+
+value |-------------------------------------------------- count
+ 1350 | 0
+ 1400 | 0
+ 1450 |@ 1
+ 1500 | 0
+
+value |-------------------------------------------------- count
+ 1400 | 0
+ 1450 | 0
+ 1500 |@ 1
+
+value |-------------------------------------------------- count
+ -30 | 0
+ -20 | 0
+ -10 |@ 1
+ 0 | 0
+ 10 | 0
+
+value |-------------------------------------------------- count
+ -20 | 0
+ -10 | 0
+ 0 |@ 1
+ 10 | 0
+ 20 | 0
+
+value |-------------------------------------------------- count
+ 32 | 0
+ 64 | 0
+ 128 |@ 1
+ 256 | 0
+ 512 | 0
+
+value |-------------------------------------------------- count
+ 0 |@ 1
+ 1 | 0
+ 2 | 0
+
+ value |-------------------------------------------------- count
+-16384 | 0
+ -8192 | 0
+ -4096 |@ 1
+ -2048 | 0
+ -1024 | 0
+ -512 | 0
+ -256 | 0
+ -128 | 0
+ -64 | 0
+ -32 | 0
+ -16 | 0
+ -8 | 0
+ -4 | 0
+ -2 |@ 1
+ -1 | 0
+ 0 | 0
+
+}
+set myresults(0) {value |-------------------------------------------------- count
+ ~
+ 400 |@ 1
+ ~
+ 950 |@ 1
+
+value |-------------------------------------------------- count
+ ~
+ 400 |@ 1
+ ~
+ 500 |@ 1
+
+value |-------------------------------------------------- count
+ 0 |@ 1
+
+value |-------------------------------------------------- count
+ ~
+ 50 |@ 1
+
+value |-------------------------------------------------- count
+ ~
+ 1450 |@ 1
+
+value |-------------------------------------------------- count
+ ~
+ 1500 |@ 1
+
+value |-------------------------------------------------- count
+ ~
+ -10 |@ 1
+
+value |-------------------------------------------------- count
+ ~
+ 0 |@ 1
+
+value |-------------------------------------------------- count
+ ~
+ 128 |@ 1
+
+value |-------------------------------------------------- count
+ 0 |@ 1
+
+ value |-------------------------------------------------- count
+ ~
+ -4096 |@ 1
+ ~
+ -2 |@ 1
+
+}
+set myresults(1) {value |-------------------------------------------------- count
+ ~
+ 350 | 0
+ 400 |@ 1
+ 450 | 0
+ ~
+ 900 | 0
+ 950 |@ 1
+ 1000 | 0
+
+value |-------------------------------------------------- count
+ ~
+ 350 | 0
+ 400 |@ 1
+ 450 | 0
+ 500 |@ 1
+ 550 | 0
+
+value |-------------------------------------------------- count
+ 0 |@ 1
+ 50 | 0
+
+value |-------------------------------------------------- count
+ 0 | 0
+ 50 |@ 1
+ 100 | 0
+
+value |-------------------------------------------------- count
+ ~
+ 1400 | 0
+ 1450 |@ 1
+ 1500 | 0
+
+value |-------------------------------------------------- count
+ ~
+ 1450 | 0
+ 1500 |@ 1
+
+value |-------------------------------------------------- count
+ ~
+ -20 | 0
+ -10 |@ 1
+ 0 | 0
+
+value |-------------------------------------------------- count
+ ~
+ -10 | 0
+ 0 |@ 1
+ 10 | 0
+
+value |-------------------------------------------------- count
+ ~
+ 64 | 0
+ 128 |@ 1
+ 256 | 0
+
+value |-------------------------------------------------- count
+ 0 |@ 1
+ 1 | 0
+
+ value |-------------------------------------------------- count
+ ~
+ -8192 | 0
+ -4096 |@ 1
+ -2048 | 0
+ ~
+ -4 | 0
+ -2 |@ 1
+ -1 | 0
+
+}
+set myresults(2) {value |-------------------------------------------------- count
+ 300 | 0
+ 350 | 0
+ 400 |@ 1
+ 450 | 0
+ 500 | 0
+ ~
+ 850 | 0
+ 900 | 0
+ 950 |@ 1
+ 1000 | 0
+ 1050 | 0
+
+value |-------------------------------------------------- count
+ 300 | 0
+ 350 | 0
+ 400 |@ 1
+ 450 | 0
+ 500 |@ 1
+ 550 | 0
+ 600 | 0
+
+value |-------------------------------------------------- count
+ 0 |@ 1
+ 50 | 0
+ 100 | 0
+
+value |-------------------------------------------------- count
+ 0 | 0
+ 50 |@ 1
+ 100 | 0
+ 150 | 0
+
+value |-------------------------------------------------- count
+ 1350 | 0
+ 1400 | 0
+ 1450 |@ 1
+ 1500 | 0
+
+value |-------------------------------------------------- count
+ 1400 | 0
+ 1450 | 0
+ 1500 |@ 1
+
+value |-------------------------------------------------- count
+ -30 | 0
+ -20 | 0
+ -10 |@ 1
+ 0 | 0
+ 10 | 0
+
+value |-------------------------------------------------- count
+ -20 | 0
+ -10 | 0
+ 0 |@ 1
+ 10 | 0
+ 20 | 0
+
+value |-------------------------------------------------- count
+ 32 | 0
+ 64 | 0
+ 128 |@ 1
+ 256 | 0
+ 512 | 0
+
+value |-------------------------------------------------- count
+ 0 |@ 1
+ 1 | 0
+ 2 | 0
+
+ value |-------------------------------------------------- count
+-16384 | 0
+ -8192 | 0
+ -4096 |@ 1
+ -2048 | 0
+ -1024 | 0
+ ~
+ -8 | 0
+ -4 | 0
+ -2 |@ 1
+ -1 | 0
+ 0 | 0
+
+}
+set myresults(3) {value |-------------------------------------------------- count
+ 300 | 0
+ 350 | 0
+ 400 |@ 1
+ 450 | 0
+ 500 | 0
+ 550 | 0
+ ~
+ 800 | 0
+ 850 | 0
+ 900 | 0
+ 950 |@ 1
+ 1000 | 0
+ 1050 | 0
+
+value |-------------------------------------------------- count
+ 300 | 0
+ 350 | 0
+ 400 |@ 1
+ 450 | 0
+ 500 |@ 1
+ 550 | 0
+ 600 | 0
+
+value |-------------------------------------------------- count
+ 0 |@ 1
+ 50 | 0
+ 100 | 0
+
+value |-------------------------------------------------- count
+ 0 | 0
+ 50 |@ 1
+ 100 | 0
+ 150 | 0
+
+value |-------------------------------------------------- count
+ 1350 | 0
+ 1400 | 0
+ 1450 |@ 1
+ 1500 | 0
+
+value |-------------------------------------------------- count
+ 1400 | 0
+ 1450 | 0
+ 1500 |@ 1
+
+value |-------------------------------------------------- count
+ -30 | 0
+ -20 | 0
+ -10 |@ 1
+ 0 | 0
+ 10 | 0
+
+value |-------------------------------------------------- count
+ -20 | 0
+ -10 | 0
+ 0 |@ 1
+ 10 | 0
+ 20 | 0
+
+value |-------------------------------------------------- count
+ 32 | 0
+ 64 | 0
+ 128 |@ 1
+ 256 | 0
+ 512 | 0
+
+value |-------------------------------------------------- count
+ 0 |@ 1
+ 1 | 0
+ 2 | 0
+
+ value |-------------------------------------------------- count
+-16384 | 0
+ -8192 | 0
+ -4096 |@ 1
+ -2048 | 0
+ -1024 | 0
+ -512 | 0
+ ~
+ -16 | 0
+ -8 | 0
+ -4 | 0
+ -2 |@ 1
+ -1 | 0
+ 0 | 0
+
+}
+
+
+for {set i -1} { $i < 4} {incr i} {
+ set test "elision-$i"
+ set ::result_string $myresults($i)
+ stap_run_exact "elision$i" $srcdir/$subdir/elision.stp -DHIST_ELISION=$i
+}
+
+
diff --git a/testsuite/systemtap.maps/elision.stp b/testsuite/systemtap.maps/elision.stp
new file mode 100644
index 00000000..e903f569
--- /dev/null
+++ b/testsuite/systemtap.maps/elision.stp
@@ -0,0 +1,54 @@
+# test that we can check the count of an empty array
+
+global a,b,c
+
+probe begin
+{
+ a <<< 444
+ a <<< 999
+ print(@hist_linear(a, 0, 1500, 50))
+ delete a
+
+ a <<< 444
+ a <<< 500
+ print(@hist_linear(a, 0, 1500, 50))
+ delete a
+
+ a <<< 0
+ print(@hist_linear(a, 0, 1500, 50))
+ delete a
+
+ a <<< 50
+ print(@hist_linear(a, 0, 1500, 50))
+ delete a
+
+ a <<< 1450
+ print(@hist_linear(a, 0, 1500, 50))
+ delete a
+
+ a <<< 1500
+ print(@hist_linear(a, 0, 1500, 50))
+ delete a
+
+ b <<< -10
+ print(@hist_linear(b, -100, 100, 10))
+ delete b
+
+ b <<< 0
+ print(@hist_linear(b, -100, 100, 10))
+ delete b
+
+ c <<< 128
+ print(@hist_log(c))
+ delete c
+
+ c <<< 0
+ print(@hist_log(c))
+ delete c
+
+ c <<< -2
+ c <<< -4096
+ print(@hist_log(c))
+
+ exit()
+}
diff --git a/testsuite/systemtap.printf/print.exp b/testsuite/systemtap.printf/print.exp
new file mode 100644
index 00000000..3a4de529
--- /dev/null
+++ b/testsuite/systemtap.printf/print.exp
@@ -0,0 +1,18 @@
+set test "print"
+set ::result_string {hello world
+777
+hello world
+hello world
+foo
+foobar
+foobar
+foobar
+foo99
+99foo
+777
+888
+123456789
+hello999
+999hello
+}
+stap_run2 $srcdir/$subdir/$test.stp
diff --git a/testsuite/systemtap.printf/print.stp b/testsuite/systemtap.printf/print.stp
new file mode 100644
index 00000000..ae770935
--- /dev/null
+++ b/testsuite/systemtap.printf/print.stp
@@ -0,0 +1,47 @@
+# test the print function with string and integers,
+# variables and constants.
+
+probe begin {
+ a = "hello"
+ b = " "
+ c = "world"
+ d = 777
+
+ # print variables
+ print(a)
+ print(b)
+ print(c)
+ print("\n")
+
+ print(d)
+ print("\n")
+
+ print(a,b,c,"\n")
+ print(a.b.c."\n")
+
+ # print literals
+ print("foo")
+ print("\n")
+
+ print("foo")
+ print("bar")
+ print("\n")
+
+ print("foo","bar","\n")
+ print("foo"."bar"."\n")
+
+ print("foo",99,"\n")
+ print(99, "foo","\n")
+
+ print(777)
+ print("\n")
+ print(888,"\n")
+
+ print(123,456,789,"\n")
+
+ # mixed
+ print(a,999,"\n")
+ print(999,a,"\n")
+
+ exit()
+}
diff --git a/testsuite/systemtap.printf/print_char.exp b/testsuite/systemtap.printf/print_char.exp
new file mode 100644
index 00000000..bab056dd
--- /dev/null
+++ b/testsuite/systemtap.printf/print_char.exp
@@ -0,0 +1,5 @@
+set test "print_char"
+set ::result_string {ABC
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+}
+stap_run2 $srcdir/$subdir/$test.stp
diff --git a/testsuite/systemtap.printf/print_char.stp b/testsuite/systemtap.printf/print_char.stp
new file mode 100644
index 00000000..0900fe1d
--- /dev/null
+++ b/testsuite/systemtap.printf/print_char.stp
@@ -0,0 +1,16 @@
+# test the print_char function
+
+probe begin {
+ endl = 10
+ print_char(65)
+ print_char(66)
+ print_char(67)
+ print_char(endl)
+
+ for (i = 65; i < 91; i++)
+ print_char(i)
+ print_char(endl)
+
+
+ exit()
+}
diff --git a/testsuite/systemtap.printf/println.exp b/testsuite/systemtap.printf/println.exp
new file mode 100644
index 00000000..8deba53f
--- /dev/null
+++ b/testsuite/systemtap.printf/println.exp
@@ -0,0 +1,18 @@
+set test "println"
+set ::result_string {hello
+
+world
+777
+hello world
+hello world
+foo
+foobar
+foobar
+777
+foo99
+99foo
+123456789
+hello999
+999hello
+}
+stap_run2 $srcdir/$subdir/$test.stp
diff --git a/testsuite/systemtap.printf/println.stp b/testsuite/systemtap.printf/println.stp
new file mode 100644
index 00000000..0b02f0ac
--- /dev/null
+++ b/testsuite/systemtap.printf/println.stp
@@ -0,0 +1,37 @@
+# test the println function with string and integers,
+# variables and constants.
+
+probe begin {
+ a = "hello"
+ b = " "
+ c = "world"
+ d = 777
+
+ # println variables
+ println(a)
+ println(b)
+ println(c)
+
+ println(d)
+
+ println(a,b,c)
+ println(a.b.c)
+
+ # println literals
+ println("foo")
+
+ println("foo","bar")
+ println("foo"."bar")
+
+ println(777)
+ println("foo",99)
+ println(99, "foo")
+
+ println(123,456,789)
+
+ # mixed
+ println(a,999)
+ println(999,a)
+
+ exit()
+}