MCPcopy Index your code
hub / github.com/perkeep/perkeep / doChecking

Function doChecking

pkg/search/expr_test.go:345–389  ·  view source on GitHub ↗
(name string, t *testing.T, tt parserTestCase, got *Constraint, err error, p parser)

Source from the content-addressed store, hash-verified

343}
344
345func doChecking(name string, t *testing.T, tt parserTestCase, got *Constraint, err error, p parser) {
346 cj := func(c *Constraint) []byte {
347 v, err := json.MarshalIndent(c, "", " ")
348 if err != nil {
349 panic(err)
350 }
351 return v
352 }
353 remain := func() []token {
354 var remainder []token
355 var i int
356 for i = 0; true; i++ {
357 token := p.next()
358 if token.typ == tokenEOF {
359 break
360 } else {
361 remainder = append(remainder, *token)
362 }
363 }
364 return remainder
365 }
366
367 if err != nil {
368 if tt.errContains != "" && strings.Contains(err.Error(), tt.errContains) {
369 return
370 }
371 if tt.errContains != "" {
372 t.Errorf("%s: %s(%q) error: %v, but wanted an error with: %v", tt.name, name, tt.in, err, tt.errContains)
373 } else {
374 t.Errorf("%s: %s(%q) unexpected error: %v", tt.name, name, tt.in, err)
375 }
376 return
377 }
378 if tt.errContains != "" {
379 t.Errorf("%s: %s(%q) succeeded; want error containing %q got: %s", tt.name, name, tt.in, tt.errContains, cj(got))
380 return
381 }
382 if !reflect.DeepEqual(got, tt.want) {
383 t.Errorf("%s: %s(%q) got:\n%s\n\nwant:%s\n", tt.name, name, tt.in, cj(got), cj(tt.want))
384 }
385 remainder := remain()
386 if len(remainder) != tt.remCount {
387 t.Errorf("%s: %s(%s): Expected remainder of %d got %d\nRemaining tokens: %#v", tt.name, name, tt.in, tt.remCount, len(remainder), remainder)
388 }
389}
390
391type parserTestCase struct {
392 name string

Callers 4

doSticherCheckingFunction · 0.85
TestParseGroupFunction · 0.85
TestParseOperandFunction · 0.85
TestParseExpFunction · 0.85

Calls 3

ContainsMethod · 0.80
nextMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected