aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/bisect
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-07-01 17:52:49 +0200
committerDmitry Vyukov <dvyukov@google.com>2020-07-02 10:56:05 +0200
commita1f1bc47d33f1d5ad7889adc3a8121c00ef19874 (patch)
tree08369899512b49df45f577b9c309fe64ea18a2f0 /pkg/bisect
parente8fcf811ec8e1678e173f2c0549b21f88a5ccb66 (diff)
pkg/bisect: test resulting config
One of main outputs of the config minimization is the new config, but tests don't do any single check of it. Check the resulting config (is it correct in all cases?).
Diffstat (limited to 'pkg/bisect')
-rw-r--r--pkg/bisect/bisect_test.go80
1 files changed, 47 insertions, 33 deletions
diff --git a/pkg/bisect/bisect_test.go b/pkg/bisect/bisect_test.go
index a8fc8d51d..32d11af13 100644
--- a/pkg/bisect/bisect_test.go
+++ b/pkg/bisect/bisect_test.go
@@ -158,8 +158,9 @@ type BisectionTest struct {
commitLen int
oldestLatest int
// input and output
- culprit int
- baselineConfig string
+ culprit int
+ baselineConfig string
+ resultingConfig string
}
var bisectionTests = []BisectionTest{
@@ -173,44 +174,49 @@ var bisectionTests = []BisectionTest{
},
// Test bisection returns correct cause with different baseline/config combinations.
{
- name: "cause-finds-cause-baseline-repro",
- startCommit: 905,
- commitLen: 1,
- expectRep: true,
- culprit: 602,
- baselineConfig: "baseline-repro",
+ name: "cause-finds-cause-baseline-repro",
+ startCommit: 905,
+ commitLen: 1,
+ expectRep: true,
+ culprit: 602,
+ baselineConfig: "baseline-repro",
+ resultingConfig: "baseline-repro",
},
{
- name: "cause-finds-cause-baseline-does-not-repro",
- startCommit: 905,
- commitLen: 1,
- expectRep: true,
- culprit: 602,
- baselineConfig: "baseline-not-reproducing",
+ name: "cause-finds-cause-baseline-does-not-repro",
+ startCommit: 905,
+ commitLen: 1,
+ expectRep: true,
+ culprit: 602,
+ baselineConfig: "baseline-not-reproducing",
+ resultingConfig: "original config",
},
{
- name: "cause-finds-cause-baseline-fails",
- startCommit: 905,
- commitLen: 1,
- expectRep: true,
- culprit: 602,
- baselineConfig: "baseline-fails",
+ name: "cause-finds-cause-baseline-fails",
+ startCommit: 905,
+ commitLen: 1,
+ expectRep: true,
+ culprit: 602,
+ baselineConfig: "baseline-fails",
+ resultingConfig: "original config",
},
{
- name: "cause-finds-cause-baseline-skip",
- startCommit: 905,
- commitLen: 1,
- expectRep: true,
- culprit: 602,
- baselineConfig: "baseline-skip",
+ name: "cause-finds-cause-baseline-skip",
+ startCommit: 905,
+ commitLen: 1,
+ expectRep: true,
+ culprit: 602,
+ baselineConfig: "baseline-skip",
+ resultingConfig: "original config",
},
{
- name: "cause-finds-cause-minimize-succeeds",
- startCommit: 905,
- commitLen: 1,
- expectRep: true,
- culprit: 602,
- baselineConfig: "minimize-succeeds",
+ name: "cause-finds-cause-minimize-succeeds",
+ startCommit: 905,
+ commitLen: 1,
+ expectRep: true,
+ culprit: 602,
+ baselineConfig: "minimize-succeeds",
+ resultingConfig: "original config",
},
{
name: "cause-finds-cause-minimize-fails",
@@ -440,6 +446,10 @@ func TestBisectionResults(t *testing.T) {
t.Fatalf("expected latest/oldest: %v got '%v'",
test.oldestLatest, res.Commit.Title)
}
+ if test.resultingConfig != "" && test.resultingConfig != string(res.Config) {
+ t.Fatalf("expected resulting config: %q got %q",
+ test.resultingConfig, res.Config)
+ }
})
}
})
@@ -458,9 +468,13 @@ func checkTest(t *testing.T, test BisectionTest) {
(test.commitLen != 0 ||
test.expectRep ||
test.oldestLatest != 0 ||
- test.culprit != 0) {
+ test.culprit != 0 ||
+ test.resultingConfig != "") {
t.Fatalf("expecting non-default values on error")
}
+ if !test.expectErr && test.baselineConfig != "" && test.resultingConfig == "" {
+ t.Fatalf("specify resultingConfig with baselineConfig")
+ }
if test.brokenStart > test.brokenEnd {
t.Fatalf("bad broken start/end: %v/%v",
test.brokenStart, test.brokenEnd)