(b *testing.B)
| 2627 | } |
| 2628 | |
| 2629 | func BenchmarkCheck(b *testing.B) { |
| 2630 | p, err := parser.NewParser( |
| 2631 | parser.Macros(parser.AllMacros...), |
| 2632 | ) |
| 2633 | if err != nil { |
| 2634 | b.Fatalf("parser.NewParser() failed: %v", err) |
| 2635 | } |
| 2636 | |
| 2637 | for i, tst := range testCases(b) { |
| 2638 | name := fmt.Sprintf("%d %s", i, tst.in) |
| 2639 | tc := tst |
| 2640 | b.Run(name, func(b *testing.B) { |
| 2641 | tcParser := p |
| 2642 | if tc.env.optionalSyntax || tc.env.variadicASTs { |
| 2643 | tcParser, err = parser.NewParser( |
| 2644 | parser.Macros(parser.AllMacros...), |
| 2645 | parser.EnableOptionalSyntax(tc.env.optionalSyntax), |
| 2646 | parser.EnableVariadicOperatorASTs(tc.env.variadicASTs), |
| 2647 | ) |
| 2648 | if err != nil { |
| 2649 | b.Fatalf("parser.NewParser() failed: %v", err) |
| 2650 | } |
| 2651 | } |
| 2652 | src := common.NewTextSource(tc.in) |
| 2653 | pAst, errors := tcParser.Parse(src) |
| 2654 | if len(errors.GetErrors()) > 0 { |
| 2655 | b.Fatalf("Unexpected parse errors: %v", errors.ToDisplayString()) |
| 2656 | } |
| 2657 | reg, err := types.NewRegistry(types.ProtoTypeDefs(&proto2pb.TestAllTypes{}, &proto3pb.TestAllTypes{})) |
| 2658 | if err != nil { |
| 2659 | b.Fatalf("types.NewRegistry() failed: %v", err) |
| 2660 | } |
| 2661 | if tc.env.optionalSyntax { |
| 2662 | if err := reg.RegisterType(types.OptionalType); err != nil { |
| 2663 | b.Fatalf("reg.RegisterType(optional_type) failed: %v", err) |
| 2664 | } |
| 2665 | } |
| 2666 | cont, err := containers.NewContainer(containers.Name(tc.container)) |
| 2667 | if err != nil { |
| 2668 | b.Fatalf("containers.NewContainer() failed: %v", err) |
| 2669 | } |
| 2670 | opts := []Option{CrossTypeNumericComparisons(true)} |
| 2671 | if len(tc.opts) != 0 { |
| 2672 | opts = tc.opts |
| 2673 | } |
| 2674 | env, err := NewEnv(cont, reg, opts...) |
| 2675 | if err != nil { |
| 2676 | b.Fatalf("NewEnv(cont, reg) failed: %v", err) |
| 2677 | } |
| 2678 | if !tc.disableStdEnv { |
| 2679 | env.AddFunctions(stdlib.Functions()...) |
| 2680 | } |
| 2681 | if tc.env.idents != nil { |
| 2682 | for _, ident := range tc.env.idents { |
| 2683 | env.AddIdents(ident) |
| 2684 | } |
| 2685 | } |
| 2686 | if tc.env.functions != nil { |
nothing calls this directly
no test coverage detected