summaryrefslogtreecommitdiff
path: root/integrationtests/mountfs_test.go
blob: d50706fb9ea231f1b4a1aa09d5010b238894acac (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
package integrationtests

import "testing"

var mountfsTraceArgs = []string{
	"-trace-syscalls",
	"mount,umount,move_mount,fsopen,fsconfig,fspick,open_tree,fsmount,pivot_root,quotactl,statmount,listmount,listns,swapon,swapoff",
}

func TestMountFsManagementSyscalls(t *testing.T) {
	runScenarioResultWithIorArgs(t, "mountfs-management", []ExpectedEvent{
		{Tracepoint: "enter_mount", MinCount: 1},
		{Tracepoint: "enter_umount", MinCount: 1},
		{Tracepoint: "enter_move_mount", MinCount: 1},
		{Tracepoint: "enter_fsopen", MinCount: 1},
		// fsconfig (KindFd), fspick (KindPathname), and open_tree (KindOpen) are
		// best-effort new-mount-API calls in the scenario. Their sys_enter_
		// tracepoints fire on kernel entry regardless of permission/validity, so
		// MinCount>=1 holds even when the syscalls themselves return an error.
		{Tracepoint: "enter_fsconfig", MinCount: 1},
		{Tracepoint: "enter_fspick", MinCount: 1},
		{Tracepoint: "enter_open_tree", MinCount: 1},
		{Tracepoint: "enter_fsmount", MinCount: 1},
		{Tracepoint: "enter_pivot_root", MinCount: 1},
		{Tracepoint: "enter_quotactl", MinCount: 1},
		{Tracepoint: "enter_statmount", MinCount: 1},
		{Tracepoint: "enter_listmount", MinCount: 1},
		{Tracepoint: "enter_listns", MinCount: 1},
		{Tracepoint: "enter_swapon", MinCount: 1},
		{Tracepoint: "enter_swapoff", MinCount: 1},
	}, mountfsTraceArgs)
}