summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.printf/end1b.exp
blob: b1b75c52a48b6a338f6c8b3c9d17df2bb91c8938 (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
set test "$srcdir/$subdir/end1.stp"
set TEST_NAME "$subdir/end1b"

if {![installtest_p]} { untested $TEST_NAME; return }

# Look for stap_merge in the toplevel build directory
# and if that fails, use "which" to try to find a copy
# in the path.
set stap_merge_path "$srcdir/../runtime/staprun/stap_merge.tcl"
if (![file executable $stap_merge_path]) {
    catch {exec which stap_merge} stap_merge_path
}
if (![file executable $stap_merge_path]) {
    fail "$TEST_NAME : could not find stap_merge"
    return
}

if {[catch {exec mktemp -t staptestXXXXX} tmpfile]} {
    puts stderr "Failed to create temporary file: $tmpfile"
    untested "$TEST_NAME : failed to create temporary file"
    return
}

if {[catch {exec stap -b -o $tmpfile $test} res]} {
    untested $TEST_NAME
    puts "stap failed: $res"
    catch {eval [list exec sudo /bin/rm -f] [glob ${tmpfile}*]}
    return
}

if {[catch {eval [list exec $stap_merge_path -o $tmpfile] [glob "${tmpfile}_*"]} res]} {
    puts "merge failed: $res"
    fail "$TEST_NAME failed"
    catch {eval [list exec sudo /bin/rm -f] [glob ${tmpfile}*]}
    return
}

if {[catch {exec cmp $tmpfile $srcdir/$subdir/large_output} res]} {
    puts "$res"
    fail "$TEST_NAME failed"
    catch {eval [list exec sudo /bin/rm -f] [glob ${tmpfile}*]}
    return
}

pass "$TEST_NAME passed"
catch {eval [list exec sudo /bin/rm -f] [glob ${tmpfile}*]}