From 925e2e9d344af8dba9bf44f473ec813db7ad458f Mon Sep 17 00:00:00 2001 From: Khairul Azhar Kasmiran Date: Sat, 14 Dec 2024 14:31:47 +0800 Subject: [PATCH] rz-test: Fix last line of diff when REGEXP_FILTER_OUT/_ERR is set (#4763) --- binrz/rz-test/rz-test.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/binrz/rz-test/rz-test.c b/binrz/rz-test/rz-test.c index a6e5818ec63..6b93773b31e 100644 --- a/binrz/rz-test/rz-test.c +++ b/binrz/rz-test/rz-test.c @@ -755,14 +755,22 @@ static void *worker_th(RzTestState *state) { return NULL; } +static char *get_matched_str(const char *regexp, const char *str) { + RzStrBuf *match_str = rz_test_regex_full_match_str(regexp, str); + int len = rz_strbuf_length(match_str); + if (len && rz_strbuf_get(match_str)[len - 1] != '\n') { // empty matches are not changed + rz_strbuf_append(match_str, "\n"); + } + return rz_strbuf_drain(match_str); +} + static void print_diff(const char *actual, const char *expected, const char *regexp) { RzDiff *d = NULL; char *uni = NULL; const char *output = actual; if (regexp) { - RzStrBuf *match_str = rz_test_regex_full_match_str(regexp, actual); - output = rz_strbuf_drain(match_str); + output = get_matched_str(regexp, actual); } d = rz_diff_lines_new(expected, output, NULL); @@ -1236,15 +1244,6 @@ static void replace_cmd_kv_file(const char *path, ut64 line_begin, ut64 line_end free(newc); } -static char *get_matched_str(const char *regexp, const char *str) { - RzStrBuf *match_str = rz_test_regex_full_match_str(regexp, str); - int len = rz_strbuf_length(match_str); - if (len && rz_strbuf_get(match_str)[len - 1] != '\n') { // empty matches are not changed - rz_strbuf_append(match_str, "\n"); - } - return rz_strbuf_drain(match_str); -} - static bool interact_fix_cmd(RzTestResultInfo *result, RzPVector /**/ *fixup_results) { assert(result->test->type == RZ_TEST_TYPE_CMD); if (result->run_failed || result->proc_out->ret != 0) {