From 7a468d6812f50294c34dbda4ed696d95e7ecb124 Mon Sep 17 00:00:00 2001 From: fche Date: Tue, 26 Feb 2008 00:28:42 +0000 Subject: PR5792: wildcard support for %( kernel/arch %) preprocessor operands 2008-02-25 Frank Ch. Eigler 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 PR5792. * systemtap.base/preprocessor.exp: New test. --- testsuite/systemtap.base/preprocessor.exp | 52 +++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 testsuite/systemtap.base/preprocessor.exp (limited to 'testsuite/systemtap.base/preprocessor.exp') 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 } -- cgit