From 39bc6f517734680f1cf4b1a314a63000c5ce8045 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Thu, 1 Apr 2010 17:16:27 -0700 Subject: 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. --- testsuite/buildok/set_kernel.stp | 14 ++++++ testsuite/systemtap.base/set_kernel.exp | 5 ++ testsuite/systemtap.base/set_kernel.stp | 88 +++++++++++++++++++++++++++++++++ 3 files changed, 107 insertions(+) create mode 100755 testsuite/buildok/set_kernel.stp create mode 100644 testsuite/systemtap.base/set_kernel.exp create mode 100644 testsuite/systemtap.base/set_kernel.stp 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; +%} -- cgit