Skip to content

Commit 7599811

Browse files
committed
Add fail fast
1 parent f1d44fe commit 7599811

File tree

1 file changed

+72
-10
lines changed

1 file changed

+72
-10
lines changed

tools/flakeguard/runner/runner_test.go

Lines changed: 72 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,10 @@ const (
2525

2626
func TestRun(t *testing.T) {
2727
testCases := []struct {
28-
name string
29-
runner Runner
30-
expected map[string]*expectedTestResult
28+
name string
29+
runner Runner
30+
expectedRuns int
31+
expectedResults map[string]*expectedTestResult
3132
}{
3233
{
3334
name: "default",
@@ -41,7 +42,8 @@ func TestRun(t *testing.T) {
4142
SelectedTestPackages: []string{flakyTestPackagePath},
4243
CollectRawOutput: true,
4344
},
44-
expected: map[string]*expectedTestResult{
45+
expectedRuns: defaultRuns,
46+
expectedResults: map[string]*expectedTestResult{
4547
"TestFlaky": {
4648
TestResult: &reports.TestResult{
4749
TestName: "TestFlaky",
@@ -98,7 +100,8 @@ func TestRun(t *testing.T) {
98100
SelectedTestPackages: []string{flakyTestPackagePath},
99101
CollectRawOutput: true,
100102
},
101-
expected: map[string]*expectedTestResult{
103+
expectedRuns: defaultRuns,
104+
expectedResults: map[string]*expectedTestResult{
102105
"TestFlaky": {
103106
TestResult: &reports.TestResult{
104107
TestName: "TestFlaky",
@@ -155,14 +158,73 @@ func TestRun(t *testing.T) {
155158
runner: Runner{
156159
ProjectPath: "./",
157160
Verbose: true,
158-
RunCount: defaultRuns,
161+
RunCount: defaultRuns * 2,
159162
UseRace: true,
160163
SkipTests: []string{"TestPanic"},
161164
FailFast: false,
162165
SelectedTestPackages: []string{flakyTestPackagePath},
163166
CollectRawOutput: true,
164167
},
165-
expected: map[string]*expectedTestResult{
168+
expectedRuns: defaultRuns * 2,
169+
expectedResults: map[string]*expectedTestResult{
170+
"TestFlaky": {
171+
TestResult: &reports.TestResult{
172+
TestName: "TestFlaky",
173+
Panicked: false,
174+
Skipped: false,
175+
},
176+
},
177+
"TestFail": {
178+
TestResult: &reports.TestResult{
179+
TestName: "TestFail",
180+
Panicked: false,
181+
Skipped: false,
182+
PassRatio: 0,
183+
Failures: defaultRuns,
184+
},
185+
},
186+
"TestPass": {
187+
TestResult: &reports.TestResult{
188+
TestName: "TestPass",
189+
Panicked: false,
190+
Skipped: false,
191+
PassRatio: 1,
192+
Successes: defaultRuns,
193+
},
194+
},
195+
"TestSkipped": {
196+
TestResult: &reports.TestResult{
197+
TestName: "TestSkipped",
198+
Panicked: false,
199+
Skipped: true,
200+
PassRatio: 0,
201+
},
202+
},
203+
"TestRace": {
204+
TestResult: &reports.TestResult{
205+
TestName: "TestPass",
206+
Panicked: false,
207+
Skipped: false,
208+
PassRatio: 0,
209+
Failures: defaultRuns,
210+
},
211+
},
212+
},
213+
},
214+
{
215+
name: "failfast",
216+
runner: Runner{
217+
ProjectPath: "./",
218+
Verbose: true,
219+
RunCount: defaultRuns,
220+
UseRace: false,
221+
SkipTests: []string{"TestPanic"},
222+
FailFast: true,
223+
SelectedTestPackages: []string{flakyTestPackagePath},
224+
CollectRawOutput: true,
225+
},
226+
expectedRuns: 1,
227+
expectedResults: map[string]*expectedTestResult{
166228
"TestFlaky": {
167229
TestResult: &reports.TestResult{
168230
TestName: "TestFlaky",
@@ -217,12 +279,12 @@ func TestRun(t *testing.T) {
217279

218280
for _, result := range testResults {
219281
t.Run(fmt.Sprintf("checking results of %s", result.TestName), func(t *testing.T) {
220-
expected, ok := tc.expected[result.TestName]
282+
expected, ok := tc.expectedResults[result.TestName]
221283
require.True(t, ok, "unexpected test result: %s", result.TestName)
222284
require.False(t, expected.seen, "test '%s' was seen multiple times", result.TestName)
223285
expected.seen = true
224286

225-
assert.Equal(t, defaultRuns, result.Runs, "test '%s' had an unexpected number of runs", result.TestName)
287+
assert.Equal(t, tc.expectedRuns, result.Runs, "test '%s' had an unexpected number of runs", result.TestName)
226288
assert.Len(t, result.Durations, result.Runs, "test '%s' has a mismatch of runs and duration counts", result.TestName, defaultRuns)
227289
resultCounts := result.Successes + result.Failures + result.Panics + result.Skips
228290
assert.Equal(t, result.Runs, resultCounts,
@@ -245,7 +307,7 @@ func TestRun(t *testing.T) {
245307
})
246308
}
247309

248-
for _, expected := range tc.expected {
310+
for _, expected := range tc.expectedResults {
249311
assert.True(t, expected.seen, "expected test '%s' not found in test runs", expected.TestResult.TestName)
250312
}
251313
})

0 commit comments

Comments
 (0)