1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 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 -i]
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 }
|