summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.exelib/libmarkunamestack.tcl
blob: 20111b3fa9885f9ae98c8720628bf2b5d9d50596 (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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# Only run on make installcheck
if {! [installtest_p]} { untested "libmarkunamestack-$testname"; return }
if {! [uprobes_p]} { untested "libmarkunamestack-$testname"; return }

# Big jumbo test, for tracking down bugs, use the individual tests.

# Output for ustack part is:
#print_ubacktrace exe 0
# 0x080484ba : main_func+0xa/0x29 [.../uprobes_exe]
# 0x080484f6 : main+0x1d/0x37 [.../uprobes_exe]
#print_ustack exe 1
# 0x080484ba : main_func+0xa/0x29 [.../uprobes_exe]
# 0x080484c9 : main_func+0x19/0x29 [.../uprobes_exe]
# 0x080484f6 : main+0x1d/0x37 [.../uprobes_exe]
#print_ubacktrace lib 2
# 0x00db2422 : lib_func+0x16/0x2b [.../libuprobes_lib.so]
# 0x00db2455 : lib_main+0x1e/0x29 [.../libuprobes_lib.so]
# 0x080484d0 : main_func+0x20/0x29 [.../uprobes_exe]
# 0x080484c9 : main_func+0x19/0x29 [.../uprobes_exe]
# 0x080484c9 : main_func+0x19/0x29 [.../uprobes_exe]
# 0x080484f6 : main+0x1d/0x37 [.../uprobes_exe]
#print_ustack lib 3
# 0x00db2422 : lib_func+0x16/0x2b [.../libuprobes_lib.so]
# 0x00db2431 : lib_func+0x25/0x2b [.../libuprobes_lib.so]
# 0x00db2455 : lib_main+0x1e/0x29 [.../libuprobes_lib.so]
# 0x080484d0 : main_func+0x20/0x29 [.../uprobes_exe]
# 0x080484c9 : main_func+0x19/0x29 [.../uprobes_exe]
# 0x080484c9 : main_func+0x19/0x29 [.../uprobes_exe]
# 0x080484f6 : main+0x1d/0x37 [.../uprobes_exe]

set lib 0
set mark 0
set uname 0

set print 0
set main 0
set main_func 0
set lib_main 0
set lib_func 0
send_log "Running: stap $srcdir/$subdir/libmarkunamestack.stp $testexe $testlib -c $testexe\n"
spawn stap $srcdir/$subdir/libmarkunamestack.stp $testexe $testlib -c $testexe

wait -i $spawn_id
expect {
  -timeout 60
    -re {^print_[^\r\n]+\r\n} {incr print; exp_continue}

# lib
    -re {^main\r\n} {incr lib; exp_continue}
    -re {^main_func: [1-3]\r\n} {incr lib; exp_continue}
    -re {^lib_main\r\n} {incr lib; exp_continue}
    -re {^lib_func: [1-3]\r\n} {incr lib; exp_continue}

# mark
    -re {^main_count: [1-3]\r\n} {incr mark; exp_continue}
    -re {^func_count: [1-3]\r\n} {incr mark; exp_continue}

# uname
    -re {^exe: main=main\r\n} {incr uname; exp_continue}
    -re {^exe: main_func=main_func\r\n} {incr uname; exp_continue}
    -re {^lib: lib_main=lib_main\r\n} {incr uname; exp_continue}
    -re {^lib: lib_func=lib_func\r\n} {incr uname; exp_continue}

# ustack
    -re {^ 0x[a-f0-9]+ : main\+0x[^\r\n]+\r\n} {incr main; exp_continue}
    -re {^ 0x[a-f0-9]+ : main_func\+0x[^\r\n]+\r\n} {incr main_func; exp_continue}
    -re {^ 0x[a-f0-9]+ : lib_main\+0x[^\r\n]+\r\n} {incr lib_main; exp_continue}
    -re {^ 0x[a-f0-9]+ : lib_func\+0x[^\r\n]+\r\n} {incr lib_func; exp_continue}

    timeout { fail "libmarkunamestack-$testname (timeout)" }
    eof { }
}

if {$lib == 8} { pass "lib-$testname" } {
    fail "lib-$testname ($lib)"
}

if {$mark == 6} { pass "mark-$testname" } {
    fail "mark-$testname ($mark)"
}

if {$uname == 8} { pass "uname-$testname" } {
    fail "uname-$testname ($uname)"
}

if {$print == 4} { pass "ustack-$testname print" } {
    fail "ustack-$testname print ($print)"
}

if {$main == 4} { pass "ustack-$testname main" } {
    fail "ustack-$testname main ($main)"
}

if {$main_func == 9} { pass "ustack-$testname main_func" } {
    fail "ustack-$testname main_func ($main_func)"
}

if {$lib_main == 2} { pass "ustack-$testname lib_main" } {
    fail "ustack-$testname lib_main ($lib_main)"
}

if {$lib_func == 3} { pass "ustack-$testname lib_func" } {
    fail "ustack-$testname lib_func ($lib_func)"
}