]> sourceware.org Git - systemtap.git/blob - testsuite/buildok/fortytwo.stp
PR11353: enable probe elision optimization
[systemtap.git] / testsuite / buildok / fortytwo.stp
1 #! /bin/sh
2
3 # This is a roundabout test of kernel.statement().
4
5 set -e
6
7 fn="do_readv_writev@fs/read_write.c"
8 if stap -l 'kernel.function("'$fn'")' > /dev/null; then
9 var="file"
10 echo "Function '$fn' found."
11 else
12 fn="do_iter_readv_writev@fs/read_write.c"
13 if stap -l 'kernel.function("'$fn'")' > /dev/null; then
14 var="filp"
15 echo "Function '$fn' found."
16 else
17 echo "Unexpected error: Can't find any function to test."
18 exit 1
19 fi
20 fi
21
22 fullfn=`stap $@ -u -wp2 -e 'probe kernel.statement("'$fn'") {}' | grep kernel | cut -f2 -d'"'`
23 lineno=`echo $fullfn | cut -f2 -d:`
24
25 echo "$0: $fn found, starting line $lineno"
26
27 for i in 0 1 2 4 6 10 15 20 25 # some random numbers, not larger than the number of lines in fn
28 do
29 ilineno=`expr $lineno + $i`
30 errors=`stap $@ -u -p4 -e 'probe kernel.statement("'$fn':'$ilineno'") {$'$var'}' 2>&1 >/dev/null ||true `
31 if echo "$errors" | grep -q unable.to.find.local
32 then
33 echo "Unexpected error $errors"; exit 1
34 fi
35 echo 'probe kernel.statement("'$fn':'$ilineno'") {$'$var'}' '#' OK
36 done
37
38 errors=`stap $@ -u -p4 -e 'probe kernel.statement("'$fn':'$lineno'").nearest {$'$var'}' 2>&1 >/dev/null ||true `
39 if echo "$errors" | grep -q unable.to.find.local
40 then
41 echo "Unexpected error $errors"; exit 1
42 fi
43 echo 'probe kernel.statement("'$fn':'$lineno'").nearest {$'$var'}' '#' OK
This page took 0.039948 seconds and 5 git commands to generate.