blob: 195abee08a43f72f9d0736c0d2f56514c35d4301 (
plain)
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
|
# Script for testing $$vars, $$parms, $$locals
set test "vars"
# grab C statement that $$vars yields
set cmd [concat stap -p3 -e {"probe kernel.statement(\"bio_copy_user@fs/bio.c+1\") \{print (\$\$vars)\}"} | grep {"printf.*="} | sed -e {"s/^.*MAXSTRINGLEN, \"//"} -e {s/.\".*$//}]
catch {eval exec $cmd} vars
# grab C statement that $$parms yields
set cmd [regsub "vars" $cmd "parms"]
catch {eval exec $cmd} parms
# grab C statement that $$locals yields
set cmd [regsub "parms" $cmd "locals"]
catch {eval exec $cmd} locals
# syntax check of $$vars C statement
set vars_ok [regexp "(\[a-z_\]+=%#llx *)+" $vars]
if {!$vars_ok} {
fail "$test"
} else {
pass "$test"
}
# $$vars should be equivalent to $$parms + $$locals
if {![string equal $vars "$parms $locals"]} {
fail "$test parms/locals"
verbose -log "vars=$vars="
verbose -log "rest=$parms $locals="
} else {
pass "$test parms/locals"
}
|