tetragon

Форк
0
/
caps_test.go 
51 строка · 1.3 Кб
1
// SPDX-License-Identifier: Apache-2.0
2
// Copyright Authors of Tetragon
3

4
package caps
5

6
import (
7
	"testing"
8

9
	"github.com/stretchr/testify/assert"
10
	"golang.org/x/sys/unix"
11
)
12

13
func TestIsCapValid(t *testing.T) {
14
	valid := isCapValid(unix.CAP_CHOWN)
15
	assert.Equal(t, true, valid)
16

17
	valid = isCapValid(unix.CAP_CHOWN - 1)
18
	assert.Equal(t, false, valid)
19

20
	valid = isCapValid(unix.CAP_LAST_CAP)
21
	assert.Equal(t, true, valid)
22

23
	valid = isCapValid(unix.CAP_LAST_CAP + 1)
24
	assert.Equal(t, false, valid)
25
}
26

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)
32

33
	str, err = GetCapability(unix.CAP_CHOWN)
34
	assert.NoError(t, err)
35
	assert.Equal(t, "CAP_CHOWN", str)
36

37
	str, err = GetCapability(unix.CAP_LAST_CAP + 1)
38
	assert.Error(t, err)
39
	assert.Empty(t, str)
40

41
	str, err = GetCapability(unix.CAP_CHOWN - 1)
42
	assert.Error(t, err)
43
	assert.Empty(t, str)
44
}
45

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))
51
}
52

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.