File tree Expand file tree Collapse file tree 4 files changed +61
-5
lines changed Expand file tree Collapse file tree 4 files changed +61
-5
lines changed Original file line number Diff line number Diff line change @@ -268,6 +268,32 @@ func (tc TestCase) Test(parser typed.ParseableType) error {
268
268
return tc .TestWithConverter (parser , & dummyConverter {})
269
269
}
270
270
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
+
271
297
// TestWithConverter runs the test-case using the given parser and converter.
272
298
func (tc TestCase ) TestWithConverter (parser typed.ParseableType , converter merge.Converter ) error {
273
299
state := State {
Original file line number Diff line number Diff line change @@ -598,9 +598,15 @@ func BenchmarkDeducedSimple(b *testing.B) {
598
598
},
599
599
}
600
600
601
+ // Make sure this passes...
602
+ if err := test .Test (typed .DeducedParseableType ); err != nil {
603
+ b .Fatal (err )
604
+ }
605
+
601
606
b .ReportAllocs ()
607
+ b .ResetTimer ()
602
608
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 {
604
610
b .Fatal (err )
605
611
}
606
612
}
@@ -701,9 +707,15 @@ func BenchmarkDeducedNested(b *testing.B) {
701
707
` ,
702
708
}
703
709
710
+ // Make sure this passes...
711
+ if err := test .Test (typed .DeducedParseableType ); err != nil {
712
+ b .Fatal (err )
713
+ }
714
+
704
715
b .ReportAllocs ()
716
+ b .ResetTimer ()
705
717
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 {
707
719
b .Fatal (err )
708
720
}
709
721
}
@@ -804,9 +816,15 @@ func BenchmarkDeducedNestedAcrossVersion(b *testing.B) {
804
816
` ,
805
817
}
806
818
819
+ // Make sure this passes...
820
+ if err := test .Test (typed .DeducedParseableType ); err != nil {
821
+ b .Fatal (err )
822
+ }
823
+
807
824
b .ReportAllocs ()
825
+ b .ResetTimer ()
808
826
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 {
810
828
b .Fatal (err )
811
829
}
812
830
}
Original file line number Diff line number Diff line change @@ -531,9 +531,15 @@ func BenchmarkLeafConflictAcrossVersion(b *testing.B) {
531
531
},
532
532
}
533
533
534
+ // Make sure this passes...
535
+ if err := test .Test (leafFieldsParser ); err != nil {
536
+ b .Fatal (err )
537
+ }
538
+
534
539
b .ReportAllocs ()
540
+ b .ResetTimer ()
535
541
for n := 0 ; n < b .N ; n ++ {
536
- if err := test .Test (leafFieldsParser ); err != nil {
542
+ if err := test .Bench (leafFieldsParser ); err != nil {
537
543
b .Fatal (err )
538
544
}
539
545
}
Original file line number Diff line number Diff line change @@ -1103,9 +1103,15 @@ func BenchmarkMultipleApplierRecursiveRealConversion(b *testing.B) {
1103
1103
},
1104
1104
}
1105
1105
1106
+ // Make sure this passes...
1107
+ if err := test .TestWithConverter (nestedTypeParser , repeatingConverter {nestedTypeParser }); err != nil {
1108
+ b .Fatal (err )
1109
+ }
1110
+
1106
1111
b .ReportAllocs ()
1112
+ b .ResetTimer ()
1107
1113
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 {
1109
1115
b .Fatal (err )
1110
1116
}
1111
1117
}
You can’t perform that action at this time.
0 commit comments