aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/vcs/linux_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/vcs/linux_test.go')
-rw-r--r--pkg/vcs/linux_test.go97
1 files changed, 52 insertions, 45 deletions
diff --git a/pkg/vcs/linux_test.go b/pkg/vcs/linux_test.go
index a583e56aa..a249dc6c9 100644
--- a/pkg/vcs/linux_test.go
+++ b/pkg/vcs/linux_test.go
@@ -5,6 +5,7 @@ package vcs
import (
"bytes"
+ "fmt"
"io/ioutil"
"os"
"strings"
@@ -22,39 +23,8 @@ type MinimizationTest struct {
passing bool
}
-func createTestLinuxRepo(t *testing.T) string {
- baseDir, err := ioutil.TempDir("", "syz-config-bisect-test")
- if err != nil {
- t.Fatal(err)
- }
- repo := CreateTestRepo(t, baseDir, "")
- repo.CommitChange("commit")
- repo.SetTag("v4.1")
- err = os.MkdirAll(baseDir+"/tools/testing/ktest", 0755)
- if err != nil {
- t.Fatal(err)
- }
- err = os.MkdirAll(baseDir+"/scripts/kconfig", 0755)
- if err != nil {
- t.Fatal(err)
- }
-
- // Copy stubbed scripts used by config bisect
- err = osutil.CopyFile("testdata/linux/config-bisect.pl",
- baseDir+"/tools/testing/ktest/config-bisect.pl")
- if err != nil {
- t.Fatal(err)
- }
- err = osutil.CopyFile("testdata/linux/merge_config.sh",
- baseDir+"/scripts/kconfig/merge_config.sh")
- if err != nil {
- t.Fatal(err)
- }
-
- return baseDir
-}
-
-func TestMinimizationResults(t *testing.T) {
+func TestConfigMinimizer(t *testing.T) {
+ t.Parallel()
tests := []MinimizationTest{
{
config: "CONFIG_ORIGINAL=y",
@@ -76,7 +46,6 @@ func TestMinimizationResults(t *testing.T) {
},
}
- trace := new(bytes.Buffer)
baseDir := createTestLinuxRepo(t)
repo, err := NewRepo("linux", "64", baseDir)
if err != nil {
@@ -93,16 +62,54 @@ func TestMinimizationResults(t *testing.T) {
if !ok {
t.Fatalf("Config minimization is not implemented")
}
- for _, test := range tests {
- outConfig, err := minimizer.Minimize([]byte(test.config),
- []byte(test.baselineConfig), trace, pred)
- if test.passing && err != nil {
- t.Fatalf("failed to run Minimize: %v", err)
- } else if test.passing && !strings.Contains(string(outConfig),
- test.expectedConfig) {
- t.Fatalf("output is not expected %v vs. %v", string(outConfig),
- test.expectedConfig)
- }
+ for i, test := range tests {
+ t.Run(fmt.Sprint(i), func(t *testing.T) {
+ trace := new(bytes.Buffer)
+ outConfig, err := minimizer.Minimize([]byte(test.config),
+ []byte(test.baselineConfig), trace, pred)
+ if test.passing && err != nil {
+ t.Fatalf("failed to run Minimize: %v", err)
+ } else if test.passing && !strings.Contains(string(outConfig),
+ test.expectedConfig) {
+ t.Fatalf("output is not expected %v vs. %v", string(outConfig),
+ test.expectedConfig)
+ }
+ t.Log(trace.String())
+ })
}
- t.Log(trace.String())
+}
+
+func createTestLinuxRepo(t *testing.T) string {
+ baseDir, err := ioutil.TempDir("", "syz-config-bisect-test")
+ if err != nil {
+ t.Fatal(err)
+ }
+ repo := CreateTestRepo(t, baseDir, "")
+ if !repo.SupportsBisection() {
+ t.Skip("bisection is unsupported by git (probably too old version)")
+ }
+ repo.CommitChange("commit")
+ repo.SetTag("v4.1")
+ err = os.MkdirAll(baseDir+"/tools/testing/ktest", 0755)
+ if err != nil {
+ t.Fatal(err)
+ }
+ err = os.MkdirAll(baseDir+"/scripts/kconfig", 0755)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ // Copy stubbed scripts used by config bisect
+ err = osutil.CopyFile("testdata/linux/config-bisect.pl",
+ baseDir+"/tools/testing/ktest/config-bisect.pl")
+ if err != nil {
+ t.Fatal(err)
+ }
+ err = osutil.CopyFile("testdata/linux/merge_config.sh",
+ baseDir+"/scripts/kconfig/merge_config.sh")
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ return baseDir
}