summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Stone <jistone@redhat.com>2009-03-11 20:07:07 -0700
committerJosh Stone <jistone@redhat.com>2009-03-11 20:11:11 -0700
commit49462d1bcec68365e3ac96fc5c11c83ab7a8abd6 (patch)
treec5823b2b31881d758da1062f0756be05c950861f
parentec80b3969d33e4d54e97ead4286bdb018e2f1f97 (diff)
downloadsystemtap-steved-49462d1bcec68365e3ac96fc5c11c83ab7a8abd6.tar.gz
systemtap-steved-49462d1bcec68365e3ac96fc5c11c83ab7a8abd6.tar.xz
systemtap-steved-49462d1bcec68365e3ac96fc5c11c83ab7a8abd6.zip
Add simple testcases for @cast
-rwxr-xr-xtestsuite/semok/cast.stp13
-rw-r--r--testsuite/systemtap.base/cast.exp4
-rw-r--r--testsuite/systemtap.base/cast.stp22
3 files changed, 39 insertions, 0 deletions
diff --git a/testsuite/semok/cast.stp b/testsuite/semok/cast.stp
new file mode 100755
index 00000000..93da18ef
--- /dev/null
+++ b/testsuite/semok/cast.stp
@@ -0,0 +1,13 @@
+#! stap -p2
+
+probe begin {
+ // basic @cast test, with and without specifying kernel
+ println(@cast(0, "task_struct")->tgid)
+ println(@cast(0, "task_struct", "kernel")->tgid)
+
+ // check module-search paths
+ println(@cast(0, "task_struct", "foo:kernel:bar")->tgid)
+
+ // would be nice to test usermode @cast too,
+ // but who knows what debuginfo is installed...
+}
diff --git a/testsuite/systemtap.base/cast.exp b/testsuite/systemtap.base/cast.exp
new file mode 100644
index 00000000..df3246e8
--- /dev/null
+++ b/testsuite/systemtap.base/cast.exp
@@ -0,0 +1,4 @@
+set test "cast"
+set ::result_string {PID OK
+execname OK}
+stap_run2 $srcdir/$subdir/$test.stp
diff --git a/testsuite/systemtap.base/cast.stp b/testsuite/systemtap.base/cast.stp
new file mode 100644
index 00000000..bec0cc9b
--- /dev/null
+++ b/testsuite/systemtap.base/cast.stp
@@ -0,0 +1,22 @@
+probe begin
+{
+ curr = task_current()
+
+ // Compare PIDs
+ pid = pid()
+ cast_pid = @cast(curr, "task_struct")->tgid
+ if (pid == cast_pid)
+ println("PID OK")
+ else
+ printf("PID %d != %d\n", pid, cast_pid)
+
+ // Compare execnames
+ name = execname()
+ cast_name = kernel_string(@cast(curr, "task_struct")->comm)
+ if (name == cast_name)
+ println("execname OK")
+ else
+ printf("execname \"%s\" != \"%s\"\n", name, cast_name)
+
+ exit()
+}