diff options
-rw-r--r-- | testsuite/systemtap.base/cast.exp | 2 | ||||
-rw-r--r-- | testsuite/systemtap.base/cast.stp | 24 |
2 files changed, 15 insertions, 11 deletions
diff --git a/testsuite/systemtap.base/cast.exp b/testsuite/systemtap.base/cast.exp index 74c4d72a..374132f0 100644 --- a/testsuite/systemtap.base/cast.exp +++ b/testsuite/systemtap.base/cast.exp @@ -2,5 +2,5 @@ set test "cast" set ::result_string {PID OK PID2 OK execname OK -tv_sec OK} +sa_data OK} stap_run2 $srcdir/$subdir/$test.stp -g diff --git a/testsuite/systemtap.base/cast.stp b/testsuite/systemtap.base/cast.stp index 6298a06d..e2505000 100644 --- a/testsuite/systemtap.base/cast.stp +++ b/testsuite/systemtap.base/cast.stp @@ -25,19 +25,23 @@ probe begin else printf("execname \"%s\" != \"%s\"\n", name, cast_name) - // Compare tv_sec using a generated user module - sec = 42 - cast_sec = @cast(get_timeval(sec), "timeval", "<sys/time.h>")->tv_sec - if (sec == cast_sec) - println("tv_sec OK") + // Compare sa_data using a generated user module + data = 42 + cast_data = @cast(get_sockaddr(data), "sockaddr", "<sys/socket.h>")->sa_data[0] + if (data == cast_data) + println("sa_data OK") else - printf("tv_sec %d != %d\n", sec, cast_sec) + printf("sa_data %d != %d\n", data, cast_data) exit() } -function get_timeval:long(sec:long) %{ - static struct timeval mytime = {0}; - mytime.tv_sec = THIS->sec; - THIS->__retvalue = (long)&mytime; +%{ +#include <linux/socket.h> +%} + +function get_sockaddr:long(data:long) %{ + static struct sockaddr sa = {0}; + sa.sa_data[0] = THIS->data; + THIS->__retvalue = (long)&sa; %} |