From 2e9348181de1b5ceb0599e59dff4371d03cf9993 Mon Sep 17 00:00:00 2001 From: apio Date: Sun, 6 Nov 2022 19:51:56 +0100 Subject: [PATCH] Tests: Add tests for strcmp() and strncmp() --- tests/libc/Test.c | 4 ++++ tests/libc/string.c | 48 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/tests/libc/Test.c b/tests/libc/Test.c index ba08faf9..cba4b5bc 100644 --- a/tests/libc/Test.c +++ b/tests/libc/Test.c @@ -8,6 +8,8 @@ DEFINE_TEST(memcmp); DEFINE_TEST(memmove); DEFINE_TEST(strlen); DEFINE_TEST(strnlen); +DEFINE_TEST(strcmp); +DEFINE_TEST(strncmp); DEFINE_TEST(strcspn); DEFINE_TEST(strspn); DEFINE_TEST(strchr); @@ -38,6 +40,8 @@ int main() RUN_TEST(memmove); RUN_TEST(strlen); RUN_TEST(strnlen); + RUN_TEST(strcmp); + RUN_TEST(strncmp); RUN_TEST(strcspn); RUN_TEST(strspn); RUN_TEST(strchr); diff --git a/tests/libc/string.c b/tests/libc/string.c index bd50a930..30a3554e 100644 --- a/tests/libc/string.c +++ b/tests/libc/string.c @@ -166,6 +166,54 @@ DEFINE_TEST(strnlen) TEST_SUCCESS(); } +DEFINE_TEST(strcmp) +{ + START_TEST(strcmp); + + const char* str1 = "Hello, World!"; + const char* str2 = "Hello, Planet!"; + + int rc = strcmp(str1, str1); + + EXPECT_EQ(rc, 0); + + rc = strcmp(str1, str2); + + EXPECT(rc > 0); + + rc = strcmp(str2, str1); + + EXPECT(rc < 0); + + TEST_SUCCESS(); +} + +DEFINE_TEST(strncmp) +{ + START_TEST(strncmp); + + const char* str1 = "Hello, World!"; + const char* str2 = "Hello, Planet!"; + + int rc = strncmp(str1, str1, 14); + + EXPECT_EQ(rc, 0); + + rc = strncmp(str1, str2, 14); + + EXPECT(rc > 0); + + rc = strncmp(str2, str1, 14); + + EXPECT(rc < 0); + + rc = strncmp(str1, str2, 6); + + EXPECT_EQ(rc, 0); + + TEST_SUCCESS(); +} + DEFINE_TEST(strcspn) { START_TEST(strcspn);