Skip to content

Commit a60e2ff

Browse files
committed
Benchmarks shouldn't include test code
1 parent 1904e3e commit a60e2ff

File tree

4 files changed

+133
-1
lines changed

4 files changed

+133
-1
lines changed

internal/fixture/state.go

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

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

merge/deduced_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,13 @@ 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++ {
603609
if err := test.Test(typed.DeducedParseableType); err != nil {
604610
b.Fatal(err)
@@ -701,7 +707,13 @@ 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++ {
706718
if err := test.Test(typed.DeducedParseableType); err != nil {
707719
b.Fatal(err)
@@ -804,7 +816,13 @@ 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++ {
809827
if err := test.Test(typed.DeducedParseableType); err != nil {
810828
b.Fatal(err)

merge/leaf_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,13 @@ 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++ {
536542
if err := test.Test(leafFieldsParser); err != nil {
537543
b.Fatal(err)

merge/multiple_appliers_test.go

Lines changed: 83 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1030,6 +1030,82 @@ func (r repeatingConverter) IsMissingVersionError(err error) bool {
10301030
func BenchmarkMultipleApplierRecursiveRealConversion(b *testing.B) {
10311031
test := TestCase{
10321032
Ops: []Operation{
1033+
/*
1034+
Apply{
1035+
Manager: "startwide",
1036+
Object: `
1037+
mapOfMapsRecursive:
1038+
x0:
1039+
x1:
1040+
x2:
1041+
x3:
1042+
x4:
1043+
x5:
1044+
x6:
1045+
x7:
1046+
x8:
1047+
x9:
1048+
x10:
1049+
x11:
1050+
x12:
1051+
x13:
1052+
x14:
1053+
x15:
1054+
x16:
1055+
x17:
1056+
x18:
1057+
x19:
1058+
x20:
1059+
x21:
1060+
x22:
1061+
x23:
1062+
x24:
1063+
x25:
1064+
x26:
1065+
x27:
1066+
x28:
1067+
x29:
1068+
`,
1069+
APIVersion: "v1",
1070+
},
1071+
Update{
1072+
Manager: "startdeep",
1073+
Object: `
1074+
mapOfMapsRecursive:
1075+
y0:
1076+
x1:
1077+
x2:
1078+
x3:
1079+
x4:
1080+
x5:
1081+
x6:
1082+
x7:
1083+
x8:
1084+
x9:
1085+
x10:
1086+
x11:
1087+
x12:
1088+
x13:
1089+
x14:
1090+
x15:
1091+
x16:
1092+
x17:
1093+
x18:
1094+
x19:
1095+
x20:
1096+
x21:
1097+
x22:
1098+
x23:
1099+
x24:
1100+
x25:
1101+
x26:
1102+
x27:
1103+
x28:
1104+
x29:
1105+
`,
1106+
APIVersion: "v1",
1107+
},
1108+
*/
10331109
Apply{
10341110
Manager: "apply-one",
10351111
Object: `
@@ -1103,9 +1179,15 @@ func BenchmarkMultipleApplierRecursiveRealConversion(b *testing.B) {
11031179
},
11041180
}
11051181

1182+
// Make sure this passes...
1183+
if err := test.TestWithConverter(nestedTypeParser, repeatingConverter{nestedTypeParser}); err != nil {
1184+
b.Fatal(err)
1185+
}
1186+
11061187
b.ReportAllocs()
1188+
b.ResetTimer()
11071189
for n := 0; n < b.N; n++ {
1108-
if err := test.TestWithConverter(nestedTypeParser, repeatingConverter{nestedTypeParser}); err != nil {
1190+
if err := test.BenchWithConverter(nestedTypeParser, repeatingConverter{nestedTypeParser}); err != nil {
11091191
b.Fatal(err)
11101192
}
11111193
}

0 commit comments

Comments
 (0)