summaryrefslogtreecommitdiffstats
path: root/testsuite
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2007-11-04 14:11:15 -0500
committerFrank Ch. Eigler <fche@elastic.org>2007-11-04 14:11:15 -0500
commit806b26a85d30f59af7dcb0025c68a50bf4bbb352 (patch)
tree8b1cc9edab49eda46278199a7027d956549f6ddb /testsuite
parent24993e4fcae48ca014e6b53f3f9a011c9cfa8f06 (diff)
parent600e72b28cc0676dc581b8fc5d54c09772979b79 (diff)
downloadsystemtap-steved-806b26a85d30f59af7dcb0025c68a50bf4bbb352.tar.gz
systemtap-steved-806b26a85d30f59af7dcb0025c68a50bf4bbb352.tar.xz
systemtap-steved-806b26a85d30f59af7dcb0025c68a50bf4bbb352.zip
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/ChangeLog24
-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/printd.exp20
-rw-r--r--testsuite/systemtap.printf/printd.stp36
-rw-r--r--testsuite/systemtap.printf/printdln.stp27
-rw-r--r--testsuite/systemtap.printf/println.exp18
-rw-r--r--testsuite/systemtap.printf/println.stp37
14 files changed, 730 insertions, 0 deletions
diff --git a/testsuite/ChangeLog b/testsuite/ChangeLog
index 9f54311e..3d71c5a4 100644
--- a/testsuite/ChangeLog
+++ b/testsuite/ChangeLog
@@ -1,3 +1,27 @@
+2007-10-25 Martin Hunt <hunt@redhat.com>
+
+ * systemtap.printf/printd.exp: New.
+ Runs printd.stp and printdln.stp.
+ * systemtap.printf/printdln.stp: Removed bad tests.
+ * systemtap.printf/printd.stp: Ditto.
+
+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
+
2007-10-16 Martin Hunt <hunt@redhat.com>
PR 5000
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/printd.exp b/testsuite/systemtap.printf/printd.exp
new file mode 100644
index 00000000..5ba90341
--- /dev/null
+++ b/testsuite/systemtap.printf/printd.exp
@@ -0,0 +1,20 @@
+# printd and printdln tests
+
+# both tests have the same result
+
+set ::result_string {hello world
+hello<-->world<-->777
+foo *** bar
+foo *** bar *** baz
+foo,99
+99,foo
+123 456 789
+hello-999
+999-hello
+}
+
+foreach x {"d" "dln"} {
+ set test "print$x"
+ stap_run_exact $test $srcdir/$subdir/$test.stp
+}
+
diff --git a/testsuite/systemtap.printf/printd.stp b/testsuite/systemtap.printf/printd.stp
new file mode 100644
index 00000000..8dcff3f5
--- /dev/null
+++ b/testsuite/systemtap.printf/printd.stp
@@ -0,0 +1,36 @@
+# test the printd function with string and integers,
+# variables and constants.
+
+probe begin {
+ a = "hello"
+ c = "world"
+ d = 777
+
+ # print variables
+ printd(" ",a,c)
+ println("")
+ printd("<-->",a,c,d)
+ println("")
+
+ # print literals
+ printd(" *** ","foo","bar")
+ println("")
+ printd(" *** ","foo","bar","baz")
+ println("")
+
+ printd(",","foo",99)
+ println("")
+ printd(",",99, "foo")
+ println("")
+
+ printd(" ",123,456,789)
+ println("")
+
+ # mixed
+ printd("-",a,999)
+ println("")
+ printd("-",999,a)
+ println("")
+
+ exit()
+}
diff --git a/testsuite/systemtap.printf/printdln.stp b/testsuite/systemtap.printf/printdln.stp
new file mode 100644
index 00000000..ed78eac5
--- /dev/null
+++ b/testsuite/systemtap.printf/printdln.stp
@@ -0,0 +1,27 @@
+# test the printdln function with string and integers,
+# variables and constants.
+
+probe begin {
+ a = "hello"
+ c = "world"
+ d = 777
+
+ # print variables
+ printdln(" ",a,c)
+ printdln("<-->",a,c,d)
+
+ # print literals
+ printdln(" *** ","foo","bar")
+ printdln(" *** ","foo","bar","baz")
+
+ printdln(",","foo",99)
+ printdln(",",99, "foo")
+
+ printdln(" ",123,456,789)
+
+ # mixed
+ printdln("-",a,999)
+ printdln("-",999,a)
+
+ 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()
+}