summaryrefslogtreecommitdiff
path: root/integrationtests/retbytes_test.go
blob: 4baed9eaa8d827020a5d665bd4f8b27da4217612 (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
package integrationtests

import "testing"

var retbytesTraceArgs = []string{"-trace-syscalls", "sendto,recvfrom,sendmsg,recvmsg,sendmmsg,recvmmsg,sendfile64,splice,tee,process_vm_writev,process_vm_readv,socketpair,pipe2,openat,write,read,close,lseek,fcntl,unlinkat,mkdirat,getdents64"}

func TestRetbytesPhaseA(t *testing.T) {
	const payloadLen = uint64(18)

	result, _ := runScenarioResultWithIorArgs(t, "retbytes-phase-a", []ExpectedEvent{
		{Tracepoint: "enter_sendto", Comm: "ioworkload", MinCount: 1},
		{Tracepoint: "enter_recvfrom", Comm: "ioworkload", MinCount: 1},
		{Tracepoint: "enter_sendmsg", Comm: "ioworkload", MinCount: 1},
		{Tracepoint: "enter_recvmsg", Comm: "ioworkload", MinCount: 1},
		{Tracepoint: "enter_sendmmsg", Comm: "ioworkload", MinCount: 1},
		{Tracepoint: "enter_recvmmsg", Comm: "ioworkload", MinCount: 1},
		{Tracepoint: "enter_sendfile64", Comm: "ioworkload", MinCount: 1},
		{Tracepoint: "enter_splice", Comm: "ioworkload", MinCount: 1},
		{Tracepoint: "enter_tee", Comm: "ioworkload", MinCount: 1},
		{Tracepoint: "enter_process_vm_writev", Comm: "ioworkload", MinCount: 1},
		{Tracepoint: "enter_process_vm_readv", Comm: "ioworkload", MinCount: 1},
	}, retbytesTraceArgs)

	for _, tracepoint := range []string{
		"enter_sendto",
		"enter_recvfrom",
		"enter_sendmsg",
		"enter_recvmsg",
		"enter_sendfile64",
		"enter_splice",
		"enter_tee",
		"enter_process_vm_writev",
		"enter_process_vm_readv",
	} {
		exp := ExpectedEvent{Tracepoint: tracepoint, Comm: "ioworkload"}
		assertEventBytesAtLeast(t, result, exp, payloadLen)
		assertEventDurationPositive(t, result, exp)
	}

	for _, tracepoint := range []string{"enter_sendmmsg", "enter_recvmmsg"} {
		exp := ExpectedEvent{Tracepoint: tracepoint, Comm: "ioworkload"}
		assertEventBytesEqual(t, result, exp, 0)
		assertEventDurationPositive(t, result, exp)
	}
}