Lines Matching refs:pattern

291 static int find_field_offset(struct btf *btf, char *pattern, regmatch_t *matches)  in find_field_offset()  argument
295 char *type = pattern + matches[1].rm_so; in find_field_offset()
296 char *field = pattern + matches[2].rm_so; in find_field_offset()
394 char *pattern = pattern_origin; in print_match_error() local
399 while (*pattern || *text) { in print_match_error()
424 while (*pattern && *pattern != ';') { in print_match_error()
425 if (pattern == pattern_pos) in print_match_error()
427 fputc(*pattern, out); in print_match_error()
428 ++pattern; in print_match_error()
431 if (pattern == pattern_pos) in print_match_error()
435 if (*pattern) in print_match_error()
436 ++pattern; in print_match_error()
490 static bool match_pattern(struct btf *btf, char *pattern, char *text, char *reg_map[][2]) in match_pattern() argument
492 char *pattern_origin = pattern; in match_pattern()
497 while (*pattern) { in match_pattern()
502 if (isspace(*pattern) || *pattern == ';') { in match_pattern()
505 pattern = skip_space_and_semi(pattern); in match_pattern()
514 pattern_next = match_str(pattern, reg_map[i][0]); in match_pattern()
522 pattern = pattern_next; in match_pattern()
530 if (strncmp(pattern, "$(", 2) == 0) { in match_pattern()
531 char *group_start = pattern, *text_next; in match_pattern()
534 pattern += 2; in match_pattern()
539 pattern = skip_space(pattern); in match_pattern()
540 if (!*pattern) { in match_pattern()
545 if (*pattern == ')') { in match_pattern()
546 ++pattern; in match_pattern()
550 if (*pattern == '+') { in match_pattern()
551 ++pattern; in match_pattern()
555 printf("pattern: %s\n", pattern); in match_pattern()
556 if (regexec(field_regex, pattern, 3, matches, 0) != 0) { in match_pattern()
561 field_offset = find_field_offset(btf, pattern, matches); in match_pattern()
565 pattern += matches[0].rm_eo; in match_pattern()
572 (int)(pattern - group_start), in match_pattern()
583 if (regexec(field_regex, pattern, 3, matches, 0) == 0) { in match_pattern()
587 field_offset = find_field_offset(btf, pattern, matches); in match_pattern()
594 (int)matches[0].rm_eo, pattern, field_offset); in match_pattern()
598 pattern += matches[0].rm_eo; in match_pattern()
607 if (regexec(ident_regex, pattern, 1, matches, 0) == 0) { in match_pattern()
608 if (strncmp(pattern, text, matches[0].rm_eo) != 0) in match_pattern()
611 pattern += matches[0].rm_eo; in match_pattern()
617 if (*pattern != *text) in match_pattern()
620 ++pattern; in match_pattern()
628 print_match_error(stdout, pattern_origin, text_origin, pattern, text); in match_pattern()
642 char *pattern, in match_program() argument
695 ASSERT_TRUE(match_pattern(btf, pattern, text, reg_map), in match_program()
777 char *pattern = test->write_stx ? test->write_stx : test->write; in run_one_testcase() local
782 match_program(btf, &pinfo, pattern, stx_reg_map, true); in run_one_testcase()
786 char *pattern = test->write_st ? test->write_st : test->write; in run_one_testcase() local
791 match_program(btf, &pinfo, pattern, st_reg_map, false); in run_one_testcase()