Tests: Add tests for strchrnul, strdup and strndup
This commit is contained in:
parent
cf94ca2a4e
commit
6d4d2579ab
@ -11,8 +11,11 @@ DEFINE_TEST(strnlen);
|
||||
DEFINE_TEST(strcspn);
|
||||
DEFINE_TEST(strspn);
|
||||
DEFINE_TEST(strchr);
|
||||
DEFINE_TEST(strchrnul);
|
||||
DEFINE_TEST(strrchr);
|
||||
DEFINE_TEST(strpbrk);
|
||||
DEFINE_TEST(strdup);
|
||||
DEFINE_TEST(strndup);
|
||||
|
||||
// stdlib.h
|
||||
DEFINE_TEST(atoi);
|
||||
@ -35,8 +38,11 @@ int main()
|
||||
RUN_TEST(strcspn);
|
||||
RUN_TEST(strspn);
|
||||
RUN_TEST(strchr);
|
||||
RUN_TEST(strchrnul);
|
||||
RUN_TEST(strrchr);
|
||||
RUN_TEST(strpbrk);
|
||||
RUN_TEST(strdup);
|
||||
RUN_TEST(strndup);
|
||||
|
||||
START_TEST_CASE(stdlib.h);
|
||||
RUN_TEST(atoi);
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include "Test.h"
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
DEFINE_TEST(memset)
|
||||
@ -229,6 +230,27 @@ DEFINE_TEST(strchr)
|
||||
TEST_SUCCESS();
|
||||
}
|
||||
|
||||
DEFINE_TEST(strchrnul)
|
||||
{
|
||||
START_TEST(strchrnul);
|
||||
|
||||
const char* str = "Hello, world!";
|
||||
|
||||
char* ptr = strchrnul(str, 'l');
|
||||
|
||||
EXPECT_EQ(ptr, str + 2);
|
||||
|
||||
ptr = strchrnul(str, 'u');
|
||||
|
||||
EXPECT_EQ(ptr, str + 13);
|
||||
|
||||
ptr = strchrnul(str, '!');
|
||||
|
||||
EXPECT_EQ(ptr, str + 12);
|
||||
|
||||
TEST_SUCCESS();
|
||||
}
|
||||
|
||||
DEFINE_TEST(strrchr)
|
||||
{
|
||||
START_TEST(strrchr);
|
||||
@ -271,5 +293,45 @@ DEFINE_TEST(strpbrk)
|
||||
|
||||
EXPECT_EQ(ptr, NULL);
|
||||
|
||||
TEST_SUCCESS();
|
||||
}
|
||||
|
||||
DEFINE_TEST(strdup)
|
||||
{
|
||||
START_TEST(strdup);
|
||||
|
||||
const char* orig = "Well hello there!";
|
||||
|
||||
char* copy = strdup(orig);
|
||||
if (!copy) { TEST_NOT_SURE(copy); }
|
||||
|
||||
EXPECT(memcmp(orig, copy, 17) == 0);
|
||||
|
||||
free(copy);
|
||||
|
||||
TEST_SUCCESS();
|
||||
}
|
||||
|
||||
DEFINE_TEST(strndup)
|
||||
{
|
||||
START_TEST(strndup);
|
||||
|
||||
const char* orig = "Well hello there!";
|
||||
|
||||
char* copy = strndup(orig, 17);
|
||||
if (!copy) { TEST_NOT_SURE(copy); }
|
||||
|
||||
EXPECT(memcmp(orig, copy, 17) == 0);
|
||||
|
||||
free(copy);
|
||||
|
||||
copy = strndup(orig, 12);
|
||||
if (!copy) { TEST_NOT_SURE(copy); }
|
||||
|
||||
EXPECT_NOT_EQ(memcmp(orig, copy, 14),
|
||||
0); // FIXME: This is undefined behaviour and the memory could also be by chance identical.
|
||||
|
||||
free(copy);
|
||||
|
||||
TEST_SUCCESS();
|
||||
}
|
Loading…
Reference in New Issue
Block a user