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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
//go:build !linux
// +build !linux
package label
import "testing"
const testLabel = "system_u:object_r:container_file_t:s0:c1,c2"
func TestInit(t *testing.T) {
var testNull []string
_, _, err := InitLabels(testNull)
if err != nil {
t.Log("InitLabels Failed")
t.Fatal(err)
}
testDisabled := []string{"disable"}
roMountLabel := ROMountLabel()
if roMountLabel != "" {
t.Errorf("ROMountLabel Failed")
}
plabel, mlabel, err := InitLabels(testDisabled)
if err != nil {
t.Log("InitLabels Disabled Failed")
t.Fatal(err)
}
if plabel != "" {
t.Fatal("InitLabels Disabled Failed")
}
if mlabel != "" {
t.Fatal("InitLabels Disabled mlabel Failed")
}
testUser := []string{"user:user_u", "role:user_r", "type:user_t", "level:s0:c1,c15"}
_, _, err = InitLabels(testUser)
if err != nil {
t.Log("InitLabels User Failed")
t.Fatal(err)
}
}
func TestRelabel(t *testing.T) {
if err := Relabel("/etc", testLabel, false); err != nil {
t.Fatalf("Relabel /etc succeeded")
}
}
func TestSocketLabel(t *testing.T) {
label := testLabel
if err := SetSocketLabel(label); err != nil {
t.Fatal(err)
}
if _, err := SocketLabel(); err != nil {
t.Fatal(err)
}
}
func TestKeyLabel(t *testing.T) {
label := testLabel
if err := SetKeyLabel(label); err != nil {
t.Fatal(err)
}
if _, err := KeyLabel(); err != nil {
t.Fatal(err)
}
}
func TestProcessLabel(t *testing.T) {
label := testLabel
if err := SetProcessLabel(label); err != nil {
t.Fatal(err)
}
if _, err := ProcessLabel(); err != nil {
t.Fatal(err)
}
}
func TestCheckLabelCompile(t *testing.T) {
if _, _, err := GenLabels(""); err != nil {
t.Fatal(err)
}
tmpDir := t.TempDir()
if _, err := FileLabel(tmpDir); err != nil {
t.Fatal(err)
}
if err := SetFileLabel(tmpDir, "foobar"); err != nil {
t.Fatal(err)
}
if err := SetFileCreateLabel("foobar"); err != nil {
t.Fatal(err)
}
if _, err := PidLabel(0); err != nil {
t.Fatal(err)
}
ClearLabels()
if err := ReserveLabel("foobar"); err != nil {
t.Fatal(err)
}
if err := ReleaseLabel("foobar"); err != nil {
t.Fatal(err)
}
_, _ = DupSecOpt("foobar")
DisableSecOpt()
if err := Validate("foobar"); err != nil {
t.Fatal(err)
}
if relabel := RelabelNeeded("foobar"); relabel {
t.Fatal("Relabel failed")
}
if shared := IsShared("foobar"); shared {
t.Fatal("isshared failed")
}
}
|