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
|
package probemanager
import "testing"
func TestGroupTracepointsPairsEnterAndExit(t *testing.T) {
got := GroupTracepoints([]string{
"sys_enter_read",
"sys_exit_read",
"sys_enter_openat",
"sys_exit_openat",
})
if len(got) != 2 {
t.Fatalf("expected 2 grouped syscalls, got %d", len(got))
}
read := got["read"]
if read.Enter != "sys_enter_read" || read.Exit != "sys_exit_read" {
t.Fatalf("unexpected read pair: %+v", read)
}
openat := got["openat"]
if openat.Enter != "sys_enter_openat" || openat.Exit != "sys_exit_openat" {
t.Fatalf("unexpected openat pair: %+v", openat)
}
}
func TestGroupTracepointsAllowsPartialPairs(t *testing.T) {
got := GroupTracepoints([]string{
"sys_enter_ioctl",
"sys_exit_fcntl",
})
ioctl := got["ioctl"]
if ioctl.Enter != "sys_enter_ioctl" || ioctl.Exit != "" {
t.Fatalf("unexpected ioctl pair: %+v", ioctl)
}
fcntl := got["fcntl"]
if fcntl.Enter != "" || fcntl.Exit != "sys_exit_fcntl" {
t.Fatalf("unexpected fcntl pair: %+v", fcntl)
}
}
func TestGroupTracepointsIgnoresInvalidNames(t *testing.T) {
got := GroupTracepoints([]string{
"sys_enter_",
"sys_exit_",
"random_name",
"syscalls:sys_enter_read",
})
if len(got) != 0 {
t.Fatalf("expected no grouped entries, got %+v", got)
}
}
|