github.com/cilium/cilium@v1.16.2/pkg/mountinfo/mountinfo_privileged_test.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 //go:build linux 5 6 package mountinfo 7 8 import ( 9 "os" 10 "testing" 11 12 "github.com/stretchr/testify/require" 13 "golang.org/x/sys/unix" 14 15 "github.com/cilium/cilium/pkg/testutils" 16 ) 17 18 // TestIsMountFSbyMount tests the public function IsMountFS by performing 19 // an actual mount. 20 func TestIsMountFSbyMount(t *testing.T) { 21 testutils.PrivilegedTest(t) 22 23 tmpDir, err := os.MkdirTemp("", "IsMountFS_") 24 require.Nil(t, err) 25 defer os.RemoveAll(tmpDir) 26 27 mounted, matched, err := IsMountFS(unix.TMPFS_MAGIC, tmpDir) 28 require.Nil(t, err) 29 require.Equal(t, false, mounted) 30 require.Equal(t, false, matched) 31 32 err = unix.Mount("tmpfs", tmpDir, "tmpfs", 0, "") 33 require.Nil(t, err) 34 defer unix.Unmount(tmpDir, unix.MNT_DETACH) 35 36 // deliberately check with wrong fstype 37 mounted, matched, err = IsMountFS(unix.PROC_SUPER_MAGIC, tmpDir) 38 require.Nil(t, err) 39 require.Equal(t, true, mounted) 40 require.Equal(t, false, matched) 41 42 // now check with proper fstype 43 mounted, matched, err = IsMountFS(unix.TMPFS_MAGIC, tmpDir) 44 require.Nil(t, err) 45 require.Equal(t, true, mounted) 46 require.Equal(t, true, matched) 47 }