1
// SPDX-License-Identifier: Apache-2.0
2
// Copyright Authors of Tetragon
9
"github.com/stretchr/testify/assert"
10
"golang.org/x/sys/unix"
13
func TestIsCapValid(t *testing.T) {
14
valid := isCapValid(unix.CAP_CHOWN)
15
assert.Equal(t, true, valid)
17
valid = isCapValid(unix.CAP_CHOWN - 1)
18
assert.Equal(t, false, valid)
20
valid = isCapValid(unix.CAP_LAST_CAP)
21
assert.Equal(t, true, valid)
23
valid = isCapValid(unix.CAP_LAST_CAP + 1)
24
assert.Equal(t, false, valid)
27
func TestGetCapability(t *testing.T) {
28
// Test our caps package if it was updated and contains the last CAP_LAST_CAP from upstream
29
str, err := GetCapability(unix.CAP_LAST_CAP)
30
assert.NoError(t, err)
31
assert.NotEmpty(t, str)
33
str, err = GetCapability(unix.CAP_CHOWN)
34
assert.NoError(t, err)
35
assert.Equal(t, "CAP_CHOWN", str)
37
str, err = GetCapability(unix.CAP_LAST_CAP + 1)
41
str, err = GetCapability(unix.CAP_CHOWN - 1)
46
func TestCapsAreSubset(t *testing.T) {
47
assert.Equal(t, true, AreSubset(0x000001ffffffffff, 0x000001ffffffffff))
48
assert.Equal(t, true, AreSubset(0x000001fffffffffe, 0x000001ffffffffff))
49
assert.Equal(t, false, AreSubset(0x000001ffffffffff, 0x000001fffffffffe))
50
assert.Equal(t, true, AreSubset(0x0, 0x0))