Lines Matching refs:pattern

288 static int find_field_offset(struct btf *btf, char *pattern, regmatch_t *matches)  in find_field_offset()  argument
292 char *type = pattern + matches[1].rm_so; in find_field_offset()
293 char *field = pattern + matches[2].rm_so; in find_field_offset()
391 char *pattern = pattern_origin; in print_match_error() local
396 while (*pattern || *text) { in print_match_error()
421 while (*pattern && *pattern != ';') { in print_match_error()
422 if (pattern == pattern_pos) in print_match_error()
424 fputc(*pattern, out); in print_match_error()
425 ++pattern; in print_match_error()
428 if (pattern == pattern_pos) in print_match_error()
432 if (*pattern) in print_match_error()
433 ++pattern; in print_match_error()
487 static bool match_pattern(struct btf *btf, char *pattern, char *text, char *reg_map[][2]) in match_pattern() argument
489 char *pattern_origin = pattern; in match_pattern()
494 while (*pattern) { in match_pattern()
499 if (isspace(*pattern) || *pattern == ';') { in match_pattern()
502 pattern = skip_space_and_semi(pattern); in match_pattern()
511 pattern_next = match_str(pattern, reg_map[i][0]); in match_pattern()
519 pattern = pattern_next; in match_pattern()
527 if (strncmp(pattern, "$(", 2) == 0) { in match_pattern()
528 char *group_start = pattern, *text_next; in match_pattern()
531 pattern += 2; in match_pattern()
536 pattern = skip_space(pattern); in match_pattern()
537 if (!*pattern) { in match_pattern()
542 if (*pattern == ')') { in match_pattern()
543 ++pattern; in match_pattern()
547 if (*pattern == '+') { in match_pattern()
548 ++pattern; in match_pattern()
552 printf("pattern: %s\n", pattern); in match_pattern()
553 if (regexec(field_regex, pattern, 3, matches, 0) != 0) { in match_pattern()
558 field_offset = find_field_offset(btf, pattern, matches); in match_pattern()
562 pattern += matches[0].rm_eo; in match_pattern()
569 (int)(pattern - group_start), in match_pattern()
580 if (regexec(field_regex, pattern, 3, matches, 0) == 0) { in match_pattern()
584 field_offset = find_field_offset(btf, pattern, matches); in match_pattern()
591 (int)matches[0].rm_eo, pattern, field_offset); in match_pattern()
595 pattern += matches[0].rm_eo; in match_pattern()
604 if (regexec(ident_regex, pattern, 1, matches, 0) == 0) { in match_pattern()
605 if (strncmp(pattern, text, matches[0].rm_eo) != 0) in match_pattern()
608 pattern += matches[0].rm_eo; in match_pattern()
614 if (*pattern != *text) in match_pattern()
617 ++pattern; in match_pattern()
625 print_match_error(stdout, pattern_origin, text_origin, pattern, text); in match_pattern()
740 char *pattern, in match_program() argument
791 ASSERT_TRUE(match_pattern(btf, pattern, text, reg_map), in match_program()
873 char *pattern = test->write_stx ? test->write_stx : test->write; in run_one_testcase() local
878 match_program(btf, &pinfo, pattern, stx_reg_map, true); in run_one_testcase()
882 char *pattern = test->write_st ? test->write_st : test->write; in run_one_testcase() local
887 match_program(btf, &pinfo, pattern, st_reg_map, false); in run_one_testcase()