@@ -9,53 +9,52 @@ import (
99 "github.com/opencontainers/selinux/go-selinux"
1010)
1111
12- func TestInit (t * testing.T ) {
12+ func needSELinux (t * testing.T ) {
13+ t .Helper ()
1314 if ! selinux .GetEnabled () {
14- return
15+ t . Skip ( "SELinux not enabled, skipping." )
1516 }
17+ }
18+
19+ func TestInit (t * testing.T ) {
20+ needSELinux (t )
21+
1622 var testNull []string
1723 _ , _ , err := InitLabels (testNull )
1824 if err != nil {
19- t .Log ("InitLabels Failed" )
20- t .Fatal (err )
25+ t .Fatalf ("InitLabels failed: %v:" , err )
2126 }
2227 testDisabled := []string {"disable" }
2328 roMountLabel := ROMountLabel ()
2429 if roMountLabel == "" {
25- t .Errorf ("ROMountLabel Failed " )
30+ t .Fatal ("ROMountLabel: empty " )
2631 }
2732 plabel , _ , err := InitLabels (testDisabled )
2833 if err != nil {
29- t .Log ("InitLabels Disabled Failed" )
30- t .Fatal (err )
34+ t .Fatalf ("InitLabels(disabled) failed: %v" , err )
3135 }
3236 if plabel != "" {
33- t .Log ("InitLabels Disabled Failed" )
34- t .FailNow ()
37+ t .Fatalf ("InitLabels(disabled): %q not empty" , plabel )
3538 }
3639 testUser := []string {"user:user_u" , "role:user_r" , "type:user_t" , "level:s0:c1,c15" }
3740 plabel , mlabel , err := InitLabels (testUser )
3841 if err != nil {
39- t .Log ("InitLabels User Failed" )
40- t .Fatal (err )
42+ t .Fatalf ("InitLabels(user) failed: %v" , err )
4143 }
4244 if plabel != "user_u:user_r:user_t:s0:c1,c15" || (mlabel != "user_u:object_r:container_file_t:s0:c1,c15" && mlabel != "user_u:object_r:svirt_sandbox_file_t:s0:c1,c15" ) {
43- t .Logf ("InitLabels User Match Failed %s, %s" , plabel , mlabel )
44- t .Log (plabel , mlabel )
45- t .Fatal (err )
45+ t .Fatalf ("InitLabels(user) failed (plabel=%q, mlabel=%q)" , plabel , mlabel )
4646 }
4747
4848 testBadData := []string {"user" , "role:user_r" , "type:user_t" , "level:s0:c1,c15" }
4949 if _ , _ , err = InitLabels (testBadData ); err == nil {
50- t .Log ("InitLabels Bad Failed" )
51- t .Fatal (err )
50+ t .Fatal ("InitLabels(bad): expected error, got nil" )
5251 }
5352}
5453
5554func TestDuplicateLabel (t * testing.T ) {
5655 secopt , err := DupSecOpt ("system_u:system_r:container_t:s0:c1,c2" )
5756 if err != nil {
58- t .Fatal ( err )
57+ t .Fatalf ( "DupSecOpt: %v" , err )
5958 }
6059 for _ , opt := range secopt {
6160 con := strings .SplitN (opt , ":" , 2 )
@@ -83,17 +82,16 @@ func TestDuplicateLabel(t *testing.T) {
8382 }
8483 continue
8584 }
86- t .Errorf ("DupSecOpt Failed invalid field %q" , con [0 ])
85+ t .Errorf ("DupSecOpt failed: invalid field %q" , con [0 ])
8786 }
8887 secopt = DisableSecOpt ()
8988 if secopt [0 ] != "disable" {
90- t .Errorf ("DisableSecOpt Failed level incorrect %q" , secopt [0 ])
89+ t .Errorf ("DisableSecOpt failed: expected \" disable \" , got %q" , secopt [0 ])
9190 }
9291}
9392func TestRelabel (t * testing.T ) {
94- if ! selinux .GetEnabled () {
95- return
96- }
93+ needSELinux (t )
94+
9795 testdir , err := ioutil .TempDir ("/tmp" , "" )
9896 if err != nil {
9997 t .Fatal (err )
@@ -158,31 +156,29 @@ func TestIsShared(t *testing.T) {
158156}
159157
160158func TestSELinuxNoLevel (t * testing.T ) {
161- if ! selinux .GetEnabled () {
162- return
163- }
159+ needSELinux (t )
160+
164161 tlabel := "system_u:system_r:container_t"
165162 dup , err := DupSecOpt (tlabel )
166163 if err != nil {
167164 t .Fatal (err )
168165 }
169166
170167 if len (dup ) != 3 {
171- t .Errorf ("DupSecOpt Failed on non mls label" )
168+ t .Errorf ("DupSecOpt failed on non mls label: expected 3, got %d" , len ( dup ) )
172169 }
173170 con , err := selinux .NewContext (tlabel )
174171 if err != nil {
175172 t .Fatal (err )
176173 }
177174 if con .Get () != tlabel {
178- t .Errorf ("NewContaxt and con.Get() Failed on non mls label" )
175+ t .Errorf ("NewContaxt and con.Get() failed on non mls label: expexcted %q, got %q" , tlabel , con . Get () )
179176 }
180177}
181178
182179func TestSocketLabel (t * testing.T ) {
183- if ! selinux .GetEnabled () {
184- return
185- }
180+ needSELinux (t )
181+
186182 label := "system_u:object_r:container_t:s0:c1,c2"
187183 if err := selinux .SetSocketLabel (label ); err != nil {
188184 t .Fatal (err )
@@ -197,9 +193,8 @@ func TestSocketLabel(t *testing.T) {
197193}
198194
199195func TestKeyLabel (t * testing.T ) {
200- if ! selinux .GetEnabled () {
201- return
202- }
196+ needSELinux (t )
197+
203198 label := "system_u:object_r:container_t:s0:c1,c2"
204199 if err := selinux .SetKeyLabel (label ); err != nil {
205200 t .Fatal (err )
@@ -214,17 +209,14 @@ func TestKeyLabel(t *testing.T) {
214209}
215210
216211func TestFileLabel (t * testing.T ) {
217- if ! selinux .GetEnabled () {
218- return
219- }
212+ needSELinux (t )
213+
220214 testUser := []string {"filetype:test_file_t" , "level:s0:c1,c15" }
221215 _ , mlabel , err := InitLabels (testUser )
222216 if err != nil {
223- t .Log ("InitLabels User Failed" )
224- t .Fatal (err )
217+ t .Fatalf ("InitLabels(user) failed: %v" , err )
225218 }
226219 if mlabel != "system_u:object_r:test_file_t:s0:c1,c15" {
227- t .Log ("InitLabels filetype Failed" )
228- t .Fatal (err )
220+ t .Fatalf ("InitLabels(filetype) failed: %v" , err )
229221 }
230222}
0 commit comments