Skip to content

Commit 8b1ef26

Browse files
committed
Benchmarks shouldn't include test code
1 parent dd13317 commit 8b1ef26

File tree

4 files changed

+61
-5
lines changed

4 files changed

+61
-5
lines changed

internal/fixture/state.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,32 @@ func (tc TestCase) Test(parser typed.ParseableType) error {
268268
return tc.TestWithConverter(parser, &dummyConverter{})
269269
}
270270

271+
// Bench runs the test-case using the given parser and a dummy converter, but
272+
// doesn't check exit conditions--see the comment for BenchWithConverter.
273+
func (tc TestCase) Bench(parser typed.ParseableType) error {
274+
return tc.BenchWithConverter(parser, &dummyConverter{})
275+
}
276+
277+
// BenchWithConverter runs the test-case using the given parser and converter,
278+
// but doesn't do any comparison operations aftewards; you should probably run
279+
// TestWithConverter once and reset the benchmark, to make sure the test case
280+
// actually passes..
281+
func (tc TestCase) BenchWithConverter(parser typed.ParseableType, converter merge.Converter) error {
282+
state := State{
283+
Updater: &merge.Updater{Converter: converter},
284+
Parser: parser,
285+
}
286+
// We currently don't have any test that converts, we can take
287+
// care of that later.
288+
for i, ops := range tc.Ops {
289+
err := ops.run(&state)
290+
if err != nil {
291+
return fmt.Errorf("failed operation %d: %v", i, err)
292+
}
293+
}
294+
return nil
295+
}
296+
271297
// TestWithConverter runs the test-case using the given parser and converter.
272298
func (tc TestCase) TestWithConverter(parser typed.ParseableType, converter merge.Converter) error {
273299
state := State{

merge/deduced_test.go

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -598,9 +598,15 @@ func BenchmarkDeducedSimple(b *testing.B) {
598598
},
599599
}
600600

601+
// Make sure this passes...
602+
if err := test.Test(typed.DeducedParseableType); err != nil {
603+
b.Fatal(err)
604+
}
605+
601606
b.ReportAllocs()
607+
b.ResetTimer()
602608
for n := 0; n < b.N; n++ {
603-
if err := test.Test(typed.DeducedParseableType); err != nil {
609+
if err := test.Bench(typed.DeducedParseableType); err != nil {
604610
b.Fatal(err)
605611
}
606612
}
@@ -701,9 +707,15 @@ func BenchmarkDeducedNested(b *testing.B) {
701707
`,
702708
}
703709

710+
// Make sure this passes...
711+
if err := test.Test(typed.DeducedParseableType); err != nil {
712+
b.Fatal(err)
713+
}
714+
704715
b.ReportAllocs()
716+
b.ResetTimer()
705717
for n := 0; n < b.N; n++ {
706-
if err := test.Test(typed.DeducedParseableType); err != nil {
718+
if err := test.Bench(typed.DeducedParseableType); err != nil {
707719
b.Fatal(err)
708720
}
709721
}
@@ -804,9 +816,15 @@ func BenchmarkDeducedNestedAcrossVersion(b *testing.B) {
804816
`,
805817
}
806818

819+
// Make sure this passes...
820+
if err := test.Test(typed.DeducedParseableType); err != nil {
821+
b.Fatal(err)
822+
}
823+
807824
b.ReportAllocs()
825+
b.ResetTimer()
808826
for n := 0; n < b.N; n++ {
809-
if err := test.Test(typed.DeducedParseableType); err != nil {
827+
if err := test.Bench(typed.DeducedParseableType); err != nil {
810828
b.Fatal(err)
811829
}
812830
}

merge/leaf_test.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -531,9 +531,15 @@ func BenchmarkLeafConflictAcrossVersion(b *testing.B) {
531531
},
532532
}
533533

534+
// Make sure this passes...
535+
if err := test.Test(leafFieldsParser); err != nil {
536+
b.Fatal(err)
537+
}
538+
534539
b.ReportAllocs()
540+
b.ResetTimer()
535541
for n := 0; n < b.N; n++ {
536-
if err := test.Test(leafFieldsParser); err != nil {
542+
if err := test.Bench(leafFieldsParser); err != nil {
537543
b.Fatal(err)
538544
}
539545
}

merge/multiple_appliers_test.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1103,9 +1103,15 @@ func BenchmarkMultipleApplierRecursiveRealConversion(b *testing.B) {
11031103
},
11041104
}
11051105

1106+
// Make sure this passes...
1107+
if err := test.TestWithConverter(nestedTypeParser, repeatingConverter{nestedTypeParser}); err != nil {
1108+
b.Fatal(err)
1109+
}
1110+
11061111
b.ReportAllocs()
1112+
b.ResetTimer()
11071113
for n := 0; n < b.N; n++ {
1108-
if err := test.TestWithConverter(nestedTypeParser, repeatingConverter{nestedTypeParser}); err != nil {
1114+
if err := test.BenchWithConverter(nestedTypeParser, repeatingConverter{nestedTypeParser}); err != nil {
11091115
b.Fatal(err)
11101116
}
11111117
}

0 commit comments

Comments
 (0)