File tree Expand file tree Collapse file tree 4 files changed +57
-1
lines changed Expand file tree Collapse file tree 4 files changed +57
-1
lines changed Original file line number Diff line number Diff line change @@ -269,6 +269,32 @@ func (tc TestCase) Test(parser typed.ParseableType) error {
269
269
return tc .TestWithConverter (parser , & dummyConverter {})
270
270
}
271
271
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
+
272
298
// TestWithConverter runs the test-case using the given parser and converter.
273
299
func (tc TestCase ) TestWithConverter (parser typed.ParseableType , converter merge.Converter ) error {
274
300
state := State {
Original file line number Diff line number Diff line change @@ -598,7 +598,13 @@ 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
609
if err := test .Test (typed .DeducedParseableType ); err != nil {
604
610
b .Fatal (err )
@@ -701,7 +707,13 @@ 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
718
if err := test .Test (typed .DeducedParseableType ); err != nil {
707
719
b .Fatal (err )
@@ -804,7 +816,13 @@ 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
827
if err := test .Test (typed .DeducedParseableType ); err != nil {
810
828
b .Fatal (err )
Original file line number Diff line number Diff line change @@ -531,7 +531,13 @@ 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
542
if err := test .Test (leafFieldsParser ); err != nil {
537
543
b .Fatal (err )
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