File: http_server.exp

package info (click to toggle)
systemtap 5.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 47,556 kB
  • sloc: cpp: 81,117; ansic: 54,933; xml: 49,795; exp: 43,595; sh: 11,526; python: 5,003; perl: 2,252; tcl: 1,312; makefile: 1,006; javascript: 149; lisp: 105; awk: 101; asm: 91; java: 70; sed: 16
file content (92 lines) | stat: -rw-r--r-- 3,361 bytes parent folder | download | duplicates (5)
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
set test "http_server"
if {![installtest_p]} { untested $test; return }
if {![http_server_p]} { untested $test; return }

set test "http_server -"
set subtest "server start"
if {[http_start_server] == 0} {
    pass "$test $subtest"
} else {
    fail "$test $subtest"
    return
}

#-------------------------------------------------------
# Build and run a simple module.
set subtest "simple"
set rc [stap_run_batch $srcdir/systemtap.server/hello.stp --use-http-server=$systemtap_http_server_spec]
if {$rc == 0} { pass "$test $subtest" } else { fail "$test $subtest" }

#-------------------------------------------------------
# Try a "stap -L"
set subtest "listing"
set rc [stap_run_batch "" -L "syscall.open" --use-http-server=$systemtap_http_server_spec]
if {$rc == 0} { pass "$test $subtest" } else { fail "$test $subtest" }

#-------------------------------------------------------
# Build and run a module using "-I" and "-e SCRIPT".
set subtest "tapset"
set rc [stap_run_batch "" -I $srcdir/systemtap.server/tapset -e "probe oneshot { foo() }" --use-http-server=$systemtap_http_server_spec]
if {$rc == 0} { pass "$test $subtest" } else { fail "$test $subtest" }

#-------------------------------------------------------
# Build a module using stdin.
set subtest "stdin1"
set cmd {echo "probe oneshot { exit() }" | stap -vp4 --use-http-server=$systemtap_http_server_spec -}
verbose -log "executing: $cmd"
set rc 0
if {[catch {eval exec $cmd} err]} {
    if {[lindex $::errorCode 0] eq "CHILDSTATUS"} {
	set rc [lindex $::errorCode 2]
    }
}
verbose -log "$err"
if {$rc} {
    fail "$test $subtest"
} else {
    pass "$test $subtest"
}

#-------------------------------------------------------
# Build another module using stdin.
set subtest "stdin2"
set cmd {stap -vp4 --use-http-server=$systemtap_http_server_spec - < $srcdir/systemtap.server/hello.stp}
verbose -log "executing: $cmd"
set rc 0
if {[catch {eval exec $cmd} err]} {
    if {[lindex $::errorCode 0] eq "CHILDSTATUS"} {
	set rc [lindex $::errorCode 2]
    }
}
verbose -log "$err"
if {$rc} {
    fail "$test $subtest"
} else {
    pass "$test $subtest"
}

#-------------------------------------------------------
# Try probing a user executable.
set subtest "user exe"
set rc [stap_run_batch "" -e "probe process(\"/usr/bin/ls\").begin { exit() }" --use-http-server=$systemtap_http_server_spec -c /usr/bin/ls]
if {$rc == 0} { pass "$test $subtest" } else { fail "$test $subtest" }

#-------------------------------------------------------
# Try probing a user executable.
set subtest "user exe2"
set rc [stap_run_batch "" -e "probe process(\"/usr/bin/ls\").function(\"main\") { exit() }" --use-http-server=$systemtap_http_server_spec -c /usr/bin/ls]
if {$rc == 0} { pass "$test $subtest" } else { fail "$test $subtest" }

#-------------------------------------------------------
# Try probing a user executable (not from an rpm) with an absolute path.
set wd [pwd]
set filename "$srcdir/systemtap.base/gtod.c"
target_compile $filename $wd/gtod executable ""
set subtest "user exe3"
set testscript [format "probe process(\"%s/gtod\").function(\"main\") { exit() }" $wd]
set rc [stap_run_batch "" -e $testscript --use-http-server=$systemtap_http_server_spec -c ${wd}/gtod]
if {$rc == 0} { pass "$test $subtest" } else { fail "$test $subtest" }


catch {exec rm -f $wd/gtod}
http_shutdown_server