summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.base/preprocessor.exp
diff options
context:
space:
mode:
authorfche <fche>2008-02-26 00:28:42 +0000
committerfche <fche>2008-02-26 00:28:42 +0000
commit7a468d6812f50294c34dbda4ed696d95e7ecb124 (patch)
treea171a15038e842df41bdd1313a90e80c557227cc /testsuite/systemtap.base/preprocessor.exp
parentbcff621c3435d720092f8586726917e8eed030d1 (diff)
downloadsystemtap-steved-7a468d6812f50294c34dbda4ed696d95e7ecb124.tar.gz
systemtap-steved-7a468d6812f50294c34dbda4ed696d95e7ecb124.tar.xz
systemtap-steved-7a468d6812f50294c34dbda4ed696d95e7ecb124.zip
PR5792: wildcard support for %( kernel/arch %) preprocessor operands
2008-02-25 Frank Ch. Eigler <fche@elastic.org> PR5792. * parse.cxx (eval_pp_conditional): Support wildcards in %( kernel_v/kernel_vr/arch ==/!= "*foo?" %) operands. * NEWS, stap.1.in: Document this. 2008-02-25 Frank Ch. Eigler <fche@elastic.org> PR5792. * systemtap.base/preprocessor.exp: New test.
Diffstat (limited to 'testsuite/systemtap.base/preprocessor.exp')
-rw-r--r--testsuite/systemtap.base/preprocessor.exp52
1 files changed, 52 insertions, 0 deletions
diff --git a/testsuite/systemtap.base/preprocessor.exp b/testsuite/systemtap.base/preprocessor.exp
new file mode 100644
index 00000000..4e0c7fc2
--- /dev/null
+++ b/testsuite/systemtap.base/preprocessor.exp
@@ -0,0 +1,52 @@
+
+set kvr [exec uname -r]
+set kv [exec uname -r | cut -f1 -d-]
+# a pattern bound to match
+set kr {2?[0-9]*}
+# a pattern bound to mismatch
+set krx {?noSuchKernel*}
+
+set arch [exec uname -m]
+set ar "?[string range $arch 1 end-1]?"
+set arx {?noSuchArch?}
+
+# This test works so that if all the preprocessor conditionals
+# work as expected, stap will indicate no error.
+
+set test "preprocessor basic ops"
+spawn stap -p2 -e "probe never {}
+%( kernel_v == \"$kv\" %? %: ERROR %)
+%( kernel_v == \"$kr\" %? %: ERROR %)
+%( kernel_v == \"$krx\" %? ERROR %: %)
+%( kernel_v != \"$kv\" %? ERROR %: %)
+%( kernel_v != \"$kr\" %? ERROR %: %)
+%( kernel_v != \"$krx\" %? %: ERROR %)
+%( kernel_v < \"9.9999\" %? %: ERROR %)
+%( kernel_v <= \"9.9999\" %? %: ERROR %)
+%( kernel_v > \"9.9999\" %? ERROR %: %)
+%( kernel_v >= \"9.9999\" %? ERROR %: %)
+%( kernel_vr == \"$kvr\" %? %: ERROR %)
+%( kernel_vr == \"$kr\" %? %: ERROR %)
+%( kernel_vr == \"$krx\" %? ERROR %: %)
+%( kernel_vr != \"$kvr\" %? ERROR %: %)
+%( kernel_vr != \"$kr\" %? ERROR %: %)
+%( kernel_vr != \"$krx\" %? %: ERROR %)
+%( kernel_vr < \"9.9999\" %? %: ERROR %)
+%( kernel_vr <= \"9.9999\" %? %: ERROR %)
+%( kernel_vr > \"9.9999\" %? ERROR %: %)
+%( kernel_vr >= \"9.9999\" %? ERROR %: %)
+%( arch == \"$arch\" %? %: ERROR %)
+%( arch == \"$ar\" %? %: ERROR %)
+%( arch == \"$arx\" %? ERROR %: %)
+%( arch != \"$arch\" %? ERROR %: %)
+%( arch != \"$ar\" %? ERROR %: %)
+%( arch != \"$arx\" %? %: ERROR %)
+"
+set ok 0
+expect {
+ "never" { incr ok }
+ eof { }
+ timeout { }
+}
+catch {close; wait}
+if {$ok == 1} { pass $test } { fail $test }