diff options
Diffstat (limited to 'pkg/vcs/linux_test.go')
| -rw-r--r-- | pkg/vcs/linux_test.go | 97 |
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 } |
