File: list.exp

package info (click to toggle)
systemtap 4.4-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 38,260 kB
  • sloc: cpp: 77,147; ansic: 61,828; xml: 49,277; exp: 42,244; sh: 11,046; python: 2,772; perl: 2,252; tcl: 1,305; makefile: 1,086; lisp: 105; java: 102; awk: 101; asm: 91; sed: 16
file content (97 lines) | stat: -rw-r--r-- 3,523 bytes parent folder | download | duplicates (7)
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
# PR14297-related testing
set stap_path [file normalize $env(SYSTEMTAP_PATH)/stap]

proc test_list { test input output_re } {
    spawn stap -l $input
    expect {
	-timeout 180
        -re $output_re { pass $test }
        timeout { fail $test }
        eof { fail $test }
    }
    catch { close }; catch { wait }
}

proc test_uprobes_list { test input output_re } {
    if {[uprobes_p]} {
        test_list $test $input $output_re
    } else {
        unsupported $test
    }
}

proc test_plt_list { test input output_re } {
    if {[plt_probes_p]} {
        test_list $test $input $output_re
    } else {
        unsupported $test
    }
}

test_plt_list plt-glob {process("stap").plt("re??")} \
    "^process\\\(\"$stap_path\"\\\)\\\.plt\\\(\"read\"\\\)\r\n$"

test_plt_list plt-glob2 {process("stap").plt("re*")} \
    "^process\\\(\"$stap_path\"\\\)\\\.plt\\\(\"re\[a-zA-Z0-9_\]*\"\\\)\r\n"

test_plt_list plt-non-glob {process("stap").plt("read")} \
    "^process\\\(\"$stap_path\"\\\)\\\.plt\\\(\"read\"\\\)\r\n$"

test_plt_list plt-glob-ret {process("stap").plt("re??").return} \
    "^process\\\(\"$stap_path\"\\\)\\\.plt\\\(\"read\"\\\).return\r\n$"

test_plt_list plt-glob2-ret {process("stap").plt("re*").return} \
    "^process\\\(\"$stap_path\"\\\)\\\.plt\\\(\"re\[a-zA-Z0-9_\]*\"\\\).return\r\n"

test_plt_list plt-non-glob-ret {process("stap").plt("read").return} \
    "^process\\\(\"$stap_path\"\\\)\\\.plt\\\(\"read\"\\\).return\r\n$"

test_uprobes_list mark-non-glob {process("stap").mark("pass5__end")} \
    "^process\\\(\"$stap_path\"\\\)\\\.mark\\\(\"pass5__end\"\\\)\r\n$"

test_uprobes_list mark-non-glob2 {process("stap").mark("pass5-end")} \
    "^process\\\(\"$stap_path\"\\\)\\\.mark\\\(\"pass5__end\"\\\)\r\n$"

test_uprobes_list mark-glob {process("stap").mark("pass[123456]__end")} \
    "^process\\\(\"$stap_path\"\\\)\\\.mark\\\(\"pass\[123456\]__end\"\\\)\r\n"

test_uprobes_list mark-glob2 {process("stap").mark("pass*__end")} \
    "^process\\\(\"$stap_path\"\\\)\\\.mark\\\(\"pass\[0123456\]__end\"\\\)\r\n"

test_list syscall-glob {syscall.rea*} \
    {syscall.read\r\n}

test_list syscall-noglob {syscall.read} \
    {syscall.read\r\n}

test_list init_once-glob {kernel.function("init_once*")} \
    {kernel.function."init_once@fs/inode.c:\d+".\r\n}

test_list init_once-noglob {kernel.function("init_once")} \
    {kernel.function."init_once@fs/inode.c:\d+".\r\n}

test_list begin-glob {begin*} \
    {begin\r\n}

test_list begin-noglob {begin} \
    {begin\r\n}

# This one is not so interesting, but we want to make sure the following test
# statements are actually within an inline.
#
# PR18554: Originally, this test only looked for an inlined version of
# copy_signal(). However, on 3.10.0-229.el7.ppc64, copy_signal() isn't
# inlined. But there are other functions from within that same file -
# like copy_files(), copy_flags(), copy_fs(), copy_io(), copy_mm(),
# copy_process(), and copy_sighand() - that will (hopefully) have
# inlined versions.
test_list copy_signal-inline {kernel.function("copy_*@kernel/fork.c").inline} \
    {kernel.function."copy_[^@]+@kernel/fork.c:\d+"..inline\r\n}

# PR15587: make sure we have line numbers on statements of an inline function
test_list copy_signal-statement {kernel.statement("copy_*@kernel/fork.c:*")} \
    {kernel.statement."copy_[^@]+@kernel/fork.c:\d+".\r\n}

# PR10208: ensure we can probe weak symbols
test_uprobes_list function-weak {process("/lib*/libc.so.*").function("chmod")} \
    {process.*.function."chmod".\r\n}