From d5d649c077c9e0b2fd1ba00d986fdfb12093af03 Mon Sep 17 00:00:00 2001 From: yangwentong <425822674@qq.com> Date: Wed, 19 Oct 2022 18:53:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E9=99=A4test.c=E4=B8=AD=E7=9A=84goto?= =?UTF-8?q?=E8=AF=AD=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- regex-capi/ctest/test.c | 113 ++++++++++++++++++++++++---------------- 1 file changed, 67 insertions(+), 46 deletions(-) diff --git a/regex-capi/ctest/test.c b/regex-capi/ctest/test.c index 86bf1dc..cf303ee 100644 --- a/regex-capi/ctest/test.c +++ b/regex-capi/ctest/test.c @@ -113,7 +113,9 @@ bool test_captures() { expect_captures_len, captures_len); } passed = false; - goto done; + rure_captures_free(caps); + rure_free(re); + return passed; } int32_t expect_capture_index = 2; int32_t capture_index = rure_capture_name_index(re, "snowman"); @@ -126,7 +128,9 @@ bool test_captures() { expect_capture_index, capture_index); } passed = false; - goto done; + rure_captures_free(caps); + rure_free(re); + return passed; } size_t expect_start = 9; size_t expect_end = 12; @@ -140,11 +144,11 @@ bool test_captures() { expect_start, expect_end, match.start, match.end); } passed = false; + rure_captures_free(caps); + rure_free(re); + return passed; } -done: - rure_captures_free(caps); - rure_free(re); - return passed; + return true; } bool test_iter() { @@ -164,7 +168,10 @@ bool test_iter() { "[test_iter] expected first match, but got no match\n"); } passed = false; - goto done; + rure_iter_free(it); + rure_captures_free(caps); + rure_free(re); + return passed; } size_t expect_start = 0; size_t expect_end = 3; @@ -176,7 +183,10 @@ bool test_iter() { expect_start, expect_end, match.start, match.end); } passed = false; - goto done; + rure_iter_free(it); + rure_captures_free(caps); + rure_free(re); + return passed; } matched = rure_iter_next_captures(it, haystack, haystack_len, caps); @@ -186,7 +196,10 @@ bool test_iter() { "[test_iter] expected second match, but got no match\n"); } passed = false; - goto done; + rure_iter_free(it); + rure_captures_free(caps); + rure_free(re); + return passed; } rure_captures_at(caps, 1, &match); expect_start = 6; @@ -199,13 +212,13 @@ bool test_iter() { expect_start, expect_end, match.start, match.end); } passed = false; - goto done; + rure_iter_free(it); + rure_captures_free(caps); + rure_free(re); + return passed; } -done: - rure_iter_free(it); - rure_captures_free(caps); - rure_free(re); - return passed; + return true; + } bool test_iter_capture_name(char *expect, char *given) { @@ -237,31 +250,35 @@ bool test_iter_capture_names() { "[test_iter_capture_names] expected a second name, " "but got none\n"); } - passed = false; - goto done; + rure_iter_capture_names_free(it); + rure_free(re); + return false; } result = rure_iter_capture_names_next(it, &name); passed = test_iter_capture_name("year", name); if (!passed) { - goto done; + rure_iter_capture_names_free(it); + rure_free(re); + return false; } result = rure_iter_capture_names_next(it, &name); passed = test_iter_capture_name("month", name); if (!passed) { - goto done; + rure_iter_capture_names_free(it); + rure_free(re); + return false; } result = rure_iter_capture_names_next(it, &name); passed = test_iter_capture_name("day", name); if (!passed) { - goto done; + rure_iter_capture_names_free(it); + rure_free(re); + return false; } -done: - rure_iter_capture_names_free(it); - rure_free(re); - return passed; + return true; } /* @@ -367,28 +384,33 @@ bool test_regex_set_matches() { err); if (re == NULL) { passed = false; - goto done2; + rure_error_free(err); + return passed; } if (rure_set_len(re) != PAT_COUNT) { passed = false; - goto done1; + rure_set_free(re); + return passed; } if (!rure_set_is_match(re, (const uint8_t *) "foobar", 6, 0)) { passed = false; - goto done1; + rure_set_free(re); + return passed; } if (rure_set_is_match(re, (const uint8_t *) "", 0, 0)) { passed = false; - goto done1; + rure_set_free(re); + return passed; } bool matches[PAT_COUNT]; if (!rure_set_matches(re, (const uint8_t *) "foobar", 6, 0, matches)) { passed = false; - goto done1; + rure_set_free(re); + return passed; } const bool match_target[] = { @@ -399,14 +421,11 @@ bool test_regex_set_matches() { for (i = 0; i < PAT_COUNT; ++i) { if (matches[i] != match_target[i]) { passed = false; - goto done1; + rure_set_free(re); + return passed; } } -done1: - rure_set_free(re); -done2: - rure_error_free(err); return passed; #undef PAT_COUNT @@ -433,24 +452,28 @@ bool test_regex_set_match_start() { err); if (re == NULL) { passed = false; - goto done2; + rure_error_free(err); + return passed; } if (rure_set_len(re) != PAT_COUNT) { passed = false; - goto done1; + rure_set_free(re); + return passed; } if (rure_set_is_match(re, (const uint8_t *)"foobiasdr", 7, 2)) { passed = false; - goto done1; + rure_set_free(re); + return passed; } { bool matches[PAT_COUNT]; if (!rure_set_matches(re, (const uint8_t *)"fooobar", 8, 0, matches)) { passed = false; - goto done1; + rure_set_free(re); + return passed; } const bool match_target[] = { @@ -461,7 +484,8 @@ bool test_regex_set_match_start() { for (i = 0; i < PAT_COUNT; ++i) { if (matches[i] != match_target[i]) { passed = false; - goto done1; + rure_set_free(re); + return passed; } } } @@ -470,7 +494,8 @@ bool test_regex_set_match_start() { bool matches[PAT_COUNT]; if (!rure_set_matches(re, (const uint8_t *)"fooobar", 7, 1, matches)) { passed = false; - goto done1; + rure_set_free(re); + return passed; } const bool match_target[] = { @@ -481,15 +506,11 @@ bool test_regex_set_match_start() { for (i = 0; i < PAT_COUNT; ++i) { if (matches[i] != match_target[i]) { passed = false; - goto done1; + rure_set_free(re); + return passed; } } } - -done1: - rure_set_free(re); -done2: - rure_error_free(err); return passed; #undef PAT_COUNT -- Gitee