2 set kvr [exec uname -r]
3 set kv [exec uname -r | cut -f1 -d-]
4 # a pattern bound to match
6 # a pattern bound to mismatch
7 set krx {?noSuchKernel*}
9 set arch [exec uname -i]
10 # normalize arch; PR4186
11 set arch [normalize_arch $arch]
12 set ar "?[string range $arch 1 end-1]?"
13 set arx {?noSuchArch?}
15 # This test works so that if all the preprocessor conditionals
16 # work as expected, stap will indicate no error.
18 foreach runtime [get_runtime_list] {
19 set test "preprocessor basic ops"
21 lappend test "($runtime)"
22 set runtime_arg "--runtime=$runtime"
28 spawn stap -w -p2 ${runtime_arg} -e "probe never {}
29 %( kernel_v == \"$kv\" %? %: ERROR %)
30 %( kernel_v == \"$kr\" %? %: ERROR %)
31 %( kernel_v == \"$krx\" %? ERROR %: %)
32 %( kernel_v != \"$kv\" %? ERROR %: %)
33 %( kernel_v != \"$kr\" %? ERROR %: %)
34 %( kernel_v != \"$krx\" %? %: ERROR %)
35 %( kernel_v < \"9.9999\" %? %: ERROR %)
36 %( kernel_v <= \"9.9999\" %? %: ERROR %)
37 %( kernel_v > \"9.9999\" %? ERROR %: %)
38 %( kernel_v >= \"9.9999\" %? ERROR %: %)
39 %( kernel_vr == \"$kvr\" %? %: ERROR %)
40 %( kernel_vr == \"$kr\" %? %: ERROR %)
41 %( kernel_vr == \"$krx\" %? ERROR %: %)
42 %( kernel_vr != \"$kvr\" %? ERROR %: %)
43 %( kernel_vr != \"$kr\" %? ERROR %: %)
44 %( kernel_vr != \"$krx\" %? %: ERROR %)
45 %( kernel_vr < \"9.9999\" %? %: ERROR %)
46 %( kernel_vr <= \"9.9999\" %? %: ERROR %)
47 %( kernel_vr > \"9.9999\" %? ERROR %: %)
48 %( kernel_vr >= \"9.9999\" %? ERROR %: %)
49 %( arch == \"$arch\" %? %: ERROR %)
50 %( arch == \"$ar\" %? %: ERROR %)
51 %( arch == \"$arx\" %? ERROR %: %)
52 %( arch != \"$arch\" %? ERROR %: %)
53 %( arch != \"$ar\" %? ERROR %: %)
54 %( arch != \"$arx\" %? %: ERROR %)
55 %( runtime == \"$runtime\" %? %: ERROR %)
56 %( runtime != \"$runtime\" %? ERROR %: %)
57 %( runtime == \"noSuchRuntime\" %? ERROR %: %)
58 %( runtime != \"noSuchRuntime\" %? %: ERROR %)
66 catch {close}; catch {wait}
67 if {$ok == 1} { pass $test } { fail $test }