Skip to content

Commit 519240b

Browse files
kolyshkinpcmoore
authored andcommitted
tests: fix wrt API level and libseccomp version checks
1. Use checkAPI to check for minimal API level and libseccomp version requirements. 2. TestFilterAttributeGettersAndSetters tests multiple things, requiring different API levels and libseccomp versions. It should not use t.Skip in the middle of the test, since the end result is going to be "SKIP" instead of "PASS". In the middle of the test, use return to skip the part of the test. 3. While at it, don't use t.Logf/t.Errorf if there are no %-style arguments. Signed-off-by: Kir Kolyshkin <[email protected]> Acked-by: Tom Hromatka <[email protected]> Signed-off-by: Paul Moore <[email protected]>
1 parent b6de808 commit 519240b

File tree

1 file changed

+22
-62
lines changed

1 file changed

+22
-62
lines changed

seccomp_test.go

Lines changed: 22 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -444,68 +444,40 @@ func TestFilterAttributeGettersAndSetters(t *testing.T) {
444444
t.Errorf("No new privileges bit was not set correctly")
445445
}
446446

447-
if APILevelIsSupported() {
448-
api, err := GetAPI()
449-
if err != nil {
450-
t.Errorf("Error getting API level: %s", err)
451-
} else if api < 3 {
452-
err = SetAPI(3)
453-
if err != nil {
454-
t.Errorf("Error setting API level: %s", err)
455-
}
456-
}
447+
// Checks that require API level >= 3 and libseccomp >= 2.4.0.
448+
if err := checkAPI(t.Name(), 3, 2, 4, 0); err != nil {
449+
t.Logf("Skipping the rest of the test: %v", err)
450+
return
457451
}
458452

459453
err = filter.SetLogBit(true)
460454
if err != nil {
461-
if !APILevelIsSupported() {
462-
t.Logf("Ignoring failure: %s\n", err)
463-
} else {
464-
t.Errorf("Error setting log bit")
465-
}
455+
t.Errorf("Error setting log bit: %v", err)
466456
}
467457

468458
log, err := filter.GetLogBit()
469459
if err != nil {
470-
if !APILevelIsSupported() {
471-
t.Logf("Ignoring failure: %s\n", err)
472-
} else {
473-
t.Errorf("Error getting log bit")
474-
}
460+
t.Errorf("Error getting log bit: %v", err)
475461
} else if log != true {
476-
t.Errorf("Log bit was not set correctly")
462+
t.Error("Log bit was not set correctly")
477463
}
478464

479-
if APILevelIsSupported() {
480-
api, err := GetAPI()
481-
if err != nil {
482-
t.Errorf("Error getting API level: %s", err)
483-
} else if api < 4 {
484-
err = SetAPI(4)
485-
if err != nil {
486-
t.Skipf("Skipping test: API level %d is less than 4", api)
487-
}
488-
}
465+
// Checks that require API level >= 4 and libseccomp >= 2.5.0.
466+
if err := checkAPI(t.Name(), 4, 2, 5, 0); err != nil {
467+
t.Logf("Skipping the rest of the test: %v", err)
468+
return
489469
}
490470

491471
err = filter.SetSSB(true)
492472
if err != nil {
493-
if !APILevelIsSupported() {
494-
t.Logf("Ignoring failure: %s\n", err)
495-
} else {
496-
t.Errorf("Error setting SSB bit")
497-
}
473+
t.Errorf("Error setting SSB bit: %v", err)
498474
}
499475

500476
ssb, err := filter.GetSSB()
501477
if err != nil {
502-
if !APILevelIsSupported() {
503-
t.Logf("Ignoring failure: %s\n", err)
504-
} else {
505-
t.Errorf("Error getting SSB bit")
506-
}
478+
t.Errorf("Error getting SSB bit: %v", err)
507479
} else if ssb != true {
508-
t.Errorf("SSB bit was not set correctly")
480+
t.Error("SSB bit was not set correctly")
509481
}
510482
}
511483

@@ -664,19 +636,13 @@ func TestLogAct(t *testing.T) {
664636
}
665637

666638
func subprocessLogAct(t *testing.T) {
667-
expectedPid := syscall.Getpid()
668-
669-
api, err := GetAPI()
670-
if err != nil {
671-
if !APILevelIsSupported() {
672-
t.Skipf("Skipping test: %s", err)
673-
}
674-
675-
t.Errorf("Error getting API level: %s", err)
676-
} else if api < 3 {
677-
t.Skipf("Skipping test: API level %d is less than 3", api)
639+
// ActLog requires API >=3 and libseccomp >= 2.4.0.
640+
if err := checkAPI(t.Name(), 3, 2, 4, 0); err != nil {
641+
t.Skip(err)
678642
}
679643

644+
expectedPid := syscall.Getpid()
645+
680646
filter, err := NewFilter(ActAllow)
681647
if err != nil {
682648
t.Errorf("Error creating filter: %s", err)
@@ -725,15 +691,9 @@ func TestCreateActKillProcessFilter(t *testing.T) {
725691
}
726692

727693
func subprocessCreateActKillProcessFilter(t *testing.T) {
728-
api, err := GetAPI()
729-
if err != nil {
730-
if !APILevelIsSupported() {
731-
t.Skipf("Skipping test: %s", err)
732-
}
733-
734-
t.Errorf("Error getting API level: %s", err)
735-
} else if api < 3 {
736-
t.Skipf("Skipping test: API level %d is less than 3", api)
694+
// Requires API level >= 3 and libseccomp >= 2.4.0
695+
if err := checkAPI(t.Name(), 3, 2, 4, 0); err != nil {
696+
t.Skip(err)
737697
}
738698

739699
filter, err := NewFilter(ActKillThread)

0 commit comments

Comments
 (0)