From 9266e977a07de6d7249a2bbe02cd6e54d6a3e38d Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 5 Oct 2021 14:13:55 +0000 Subject: [PATCH] util: Add test for pakfire_string_endswith Signed-off-by: Michael Tremer --- src/libpakfire/util.c | 6 ++++++ tests/libpakfire/util.c | 16 ++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/libpakfire/util.c b/src/libpakfire/util.c index f9d89d07..553c83af 100644 --- a/src/libpakfire/util.c +++ b/src/libpakfire/util.c @@ -167,6 +167,12 @@ int pakfire_string_startswith(const char* s, const char* prefix) { } int pakfire_string_endswith(const char* s, const char* suffix) { + // Validate input + if (!s || !suffix) { + errno = EINVAL; + return 1; + } + return !strcmp(s + strlen(s) - strlen(suffix), suffix); } diff --git a/tests/libpakfire/util.c b/tests/libpakfire/util.c index c7fd4b37..ffddc897 100644 --- a/tests/libpakfire/util.c +++ b/tests/libpakfire/util.c @@ -68,6 +68,21 @@ FAIL: return EXIT_FAILURE; } +static int test_string_endswith(const struct test* t) { + ASSERT_TRUE(pakfire_string_endswith("ABC", "C")); + ASSERT_FALSE(pakfire_string_endswith("ABC", "B")); + + // Check for invalid inputs + ASSERT_ERRNO(pakfire_string_endswith("ABC", NULL), EINVAL); + ASSERT_ERRNO(pakfire_string_endswith(NULL, "ABC"), EINVAL); + ASSERT_ERRNO(pakfire_string_endswith(NULL, NULL), EINVAL); + + return EXIT_SUCCESS; + +FAIL: + return EXIT_FAILURE; +} + static int test_string_partition(const struct test* t) { char* part1; char* part2; @@ -174,6 +189,7 @@ int main(int argc, char** argv) { testsuite_add_test(test_basename); testsuite_add_test(test_dirname); testsuite_add_test(test_string_startswith); + testsuite_add_test(test_string_endswith); testsuite_add_test(test_string_partition); testsuite_add_test(test_string_replace); testsuite_add_test(test_string_split); -- 2.39.2