summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Stone <jistone@redhat.com>2010-04-01 17:16:27 -0700
committerJosh Stone <jistone@redhat.com>2010-04-01 17:30:16 -0700
commit39bc6f517734680f1cf4b1a314a63000c5ce8045 (patch)
treeb7dee6691ebd4eef196a32a4d8af6b9abc6319a1
parentcf51e75dd3b371ea5ee6d6577f1e80088c8b1613 (diff)
downloadsystemtap-steved-39bc6f517734680f1cf4b1a314a63000c5ce8045.tar.gz
systemtap-steved-39bc6f517734680f1cf4b1a314a63000c5ce8045.tar.xz
systemtap-steved-39bc6f517734680f1cf4b1a314a63000c5ce8045.zip
Test that all of the set_kernel_* functions work
* testsuite/buildok/set_kernel.stp: Test that all can build. * testsuite/systemtap.base/set_kernel.stp: Test that values are all set.
-rwxr-xr-xtestsuite/buildok/set_kernel.stp14
-rw-r--r--testsuite/systemtap.base/set_kernel.exp5
-rw-r--r--testsuite/systemtap.base/set_kernel.stp88
3 files changed, 107 insertions, 0 deletions
diff --git a/testsuite/buildok/set_kernel.stp b/testsuite/buildok/set_kernel.stp
new file mode 100755
index 00000000..9134b907
--- /dev/null
+++ b/testsuite/buildok/set_kernel.stp
@@ -0,0 +1,14 @@
+#! stap -gup4
+
+probe begin
+{
+ addr = 0x12345678
+ set_kernel_string(addr, "foobar")
+ set_kernel_string_n(addr, 42, "foobar")
+ set_kernel_long(addr, 42)
+ set_kernel_int(addr, 42)
+ set_kernel_short(addr, 42)
+ set_kernel_char(addr, 42)
+}
+
+
diff --git a/testsuite/systemtap.base/set_kernel.exp b/testsuite/systemtap.base/set_kernel.exp
new file mode 100644
index 00000000..99dc99f4
--- /dev/null
+++ b/testsuite/systemtap.base/set_kernel.exp
@@ -0,0 +1,5 @@
+# Check that the set_kernel_* functions work correctly.
+
+set test "set_kernel"
+
+stap_run $srcdir/$subdir/$test.stp no_load $all_pass_string -g
diff --git a/testsuite/systemtap.base/set_kernel.stp b/testsuite/systemtap.base/set_kernel.stp
new file mode 100644
index 00000000..fb99af1f
--- /dev/null
+++ b/testsuite/systemtap.base/set_kernel.stp
@@ -0,0 +1,88 @@
+/*
+ * set_kernel.stp
+ *
+ * Check that the set_kernel_* functions work correctly.
+ */
+
+probe begin { println("systemtap starting probe") }
+probe end { println("systemtap ending probe") }
+
+global errors = 0
+
+function assert_string(test, expected, value)
+{
+ if (value == expected)
+ return 1
+ printf("systemtap test failure - %s: expected \"%s\", got \"%s\"\n",
+ test, expected, value)
+ errors++
+ return 0
+}
+
+function assert_number(test, expected, value)
+{
+ if (value == expected)
+ return 1
+ printf("systemtap test failure - %s: expected %#x, got %#x\n",
+ test, expected, value)
+ errors++
+ return 0
+}
+
+probe end(1)
+{
+ test = "set_kernel_string"
+ addr = get_buffer()
+ if (assert_string(test, "", kernel_string(addr))) {
+ set_kernel_string(addr, "foobar")
+ assert_string(test, "foobar", kernel_string(addr))
+ }
+
+ test = "set_kernel_string_n"
+ addr = get_buffer()
+ if (assert_string(test, "", kernel_string(addr))) {
+ set_kernel_string_n(addr, 10, "foobar")
+ if (assert_string(test, "foobar", kernel_string(addr))) {
+ set_kernel_string_n(addr, 3, "foobar")
+ assert_string(test, "foo", kernel_string(addr))
+ }
+ }
+
+ test = "set_kernel_long"
+ addr = get_buffer()
+ long_val = %( CONFIG_64BIT == "y" %? 0x123456789ABCDEF0 %: 0x12345678 %)
+ if (assert_number(test, 0, kernel_long(addr))) {
+ set_kernel_long(addr, long_val)
+ assert_number(test, long_val, kernel_long(addr))
+ }
+
+ test = "set_kernel_int"
+ addr = get_buffer()
+ if (assert_number(test, 0, kernel_int(addr))) {
+ set_kernel_int(addr, 0x12345678)
+ assert_number(test, 0x12345678, kernel_int(addr))
+ }
+
+ test = "set_kernel_short"
+ addr = get_buffer()
+ if (assert_number(test, 0, kernel_short(addr))) {
+ set_kernel_short(addr, 0x1234)
+ assert_number(test, 0x1234, kernel_short(addr))
+ }
+
+ test = "set_kernel_char"
+ addr = get_buffer()
+ if (assert_number(test, 0, kernel_char(addr))) {
+ set_kernel_char(addr, 0x12)
+ assert_number(test, 0x12, kernel_char(addr))
+ }
+
+ if (!errors)
+ println("systemtap test success")
+}
+
+function get_buffer:long () %{
+ static char buffer[MAXSTRINGLEN];
+ memset(buffer, 0, sizeof(buffer));
+ THIS->__retvalue = (long)buffer;
+%}