From 7279504bc7565fb161a7927150e5912a77d1548f Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 5 Oct 2021 14:17:18 +0000 Subject: [PATCH] util: Add test for pakfire_string_matches Signed-off-by: Michael Tremer --- src/libpakfire/util.c | 6 ++++++ tests/libpakfire/util.c | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/libpakfire/util.c b/src/libpakfire/util.c index 553c83af..d6529585 100644 --- a/src/libpakfire/util.c +++ b/src/libpakfire/util.c @@ -177,6 +177,12 @@ int pakfire_string_endswith(const char* s, const char* suffix) { } int pakfire_string_matches(const char* s, const char* pattern) { + // Validate input + if (!s || !pattern) { + errno = EINVAL; + return 1; + } + return !!strstr(s, pattern); } diff --git a/tests/libpakfire/util.c b/tests/libpakfire/util.c index ffddc897..4c5b0524 100644 --- a/tests/libpakfire/util.c +++ b/tests/libpakfire/util.c @@ -83,6 +83,27 @@ FAIL: return EXIT_FAILURE; } +static int test_string_matches(const struct test* t) { + ASSERT_TRUE(pakfire_string_matches("ABC", "A")); + ASSERT_TRUE(pakfire_string_matches("ABC", "B")); + ASSERT_TRUE(pakfire_string_matches("ABC", "C")); + ASSERT_TRUE(pakfire_string_matches("ABC", "AB")); + ASSERT_TRUE(pakfire_string_matches("ABC", "BC")); + ASSERT_TRUE(pakfire_string_matches("ABC", "ABC")); + ASSERT_FALSE(pakfire_string_matches("ABC", "D")); + ASSERT_FALSE(pakfire_string_matches("ABC", "ABCD")); + + // Check for invalid inputs + ASSERT_ERRNO(pakfire_string_matches("ABC", NULL), EINVAL); + ASSERT_ERRNO(pakfire_string_matches(NULL, "ABC"), EINVAL); + ASSERT_ERRNO(pakfire_string_matches(NULL, NULL), EINVAL); + + return EXIT_SUCCESS; + +FAIL: + return EXIT_FAILURE; +} + static int test_string_partition(const struct test* t) { char* part1; char* part2; @@ -190,6 +211,7 @@ int main(int argc, char** argv) { testsuite_add_test(test_dirname); testsuite_add_test(test_string_startswith); testsuite_add_test(test_string_endswith); + testsuite_add_test(test_string_matches); testsuite_add_test(test_string_partition); testsuite_add_test(test_string_replace); testsuite_add_test(test_string_split); -- 2.39.2