blob: 3b98c8b1431fc9b66352c917d2403633c0e6eac8 (
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
set test uprobes
# Compile a little C program to use as the user-space probing victim
set path "jennie.c"
set fp [open $path "w"]
puts $fp "int main (int argc, char *argv[])"
puts $fp "{"
puts $fp "if (argc > 1) main (argc - 1, argv);"
puts $fp "return 0;"
puts $fp "}"
close $fp
# too easy
if [file exists $path] then { pass "$test prep" } else { fail "$test prep" }
catch {exec gcc -g -o jennie jennie.c} err
if {$err == "" && [file exists jennie]} then { pass "$test compile" } else { fail "$test compile" }
if {! [uprobes_p]} {
untested "$test -p4"; untested "$test -p5"
catch {exec rm -f jennie.c jennie}
return
}
set rc [stap_run_batch $srcdir/$subdir/uprobes.stp]
if {$rc == 0} then { pass "$test -p4" } else { fail "$test -p4" }
if {! [installtest_p]} {
untested "$test -p5";
catch {exec rm -f jennie.c jennie}
return
}
spawn stap $srcdir/$subdir/uprobes.stp -w -c "./jennie 1 2 3 4"
set ok 0
expect {
-re {^process[^\r\n]+jennie[^\r\n]+main[^\r\n]+arg[cv]=0x[0-9a-f]+\ +arg[cv]=0x[0-9a-f]+\r\n} { incr ok; exp_continue }
-re {^process[^\r\n]+jennie[^\r\n]+main[^\r\n]+return=0x0\r\n} { incr ok; exp_continue }
-timeout 30
timeout { }
eof { }
}
if {$ok == 10} then { pass "$test -p5" } else { fail "$test -p5 ($ok)" }
catch {wait; close}
catch {exec rm -f jennie.c jennie}
|