MCPcopy Create free account
hub / github.com/cel-expr/cel-go / BenchmarkCheck

Function BenchmarkCheck

checker/checker_test.go:2629–2723  ·  view source on GitHub ↗
(b *testing.B)

Source from the content-addressed store, hash-verified

2627}
2628
2629func 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 {

Callers

nothing calls this directly

Calls 15

RegisterTypeMethod · 0.95
AddFunctionsMethod · 0.95
AddIdentsMethod · 0.95
NewParserFunction · 0.92
MacrosFunction · 0.92
EnableOptionalSyntaxFunction · 0.92
NewTextSourceFunction · 0.92
NewRegistryFunction · 0.92
ProtoTypeDefsFunction · 0.92
NewContainerFunction · 0.92
NameFunction · 0.92

Tested by

no test coverage detected