blob: 7541c01b1151879e76bb736c82b4f71931610dad (
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
|
# 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)\}"} 2>&1 | 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 [string trim $vars] \
[string trim [concat $parms " " $locals]]]} {
fail "$test parms/locals"
} else {
pass "$test parms/locals"
}
|