diff --git a/tests/string.c b/tests/string.c index 6654bdf..06d3ac3 100644 --- a/tests/string.c +++ b/tests/string.c @@ -3,19 +3,51 @@ #include #include +#define COUNT 1024 + +static char aaa[COUNT], bbb[COUNT]; + +#define memcmp LIBCLAYER(memcmp) +#define memcpy LIBCLAYER(memcpy) +#define memmove LIBCLAYER(memmove) +#define memchr LIBCLAYER(memchr) +#define memset LIBCLAYER(memset) + void test_main() { - { - const size_t count = 1024; - char aaa[count]; - char bbb[count]; - for (size_t i = 0; i < count; ++i) aaa[i] = bbb[i] = i*i; - assert(LIBCLAYER(memcmp)(aaa, bbb, count) == 0); + { // memcmp + for (size_t i = 0; i < COUNT; ++i) aaa[i] = bbb[i] = i * i; + assert(memcmp(aaa, bbb, COUNT) == 0); aaa[123] = 1; bbb[123] = 2; - assert(LIBCLAYER(memcmp)(aaa, bbb, count) == -1); + assert(memcmp(aaa, bbb, COUNT) == -1); aaa[123] = 2; bbb[123] = 1; - assert(LIBCLAYER(memcmp)(aaa, bbb, count) == 1); + assert(memcmp(aaa, bbb, COUNT) == 1); + } + + { // memcpy + for (size_t i = 0; i < COUNT; ++i) { aaa[i] = 0; bbb[i] = i * i; } + assert(memcpy(aaa, bbb, COUNT) == aaa); + for (size_t i = 0; i < COUNT; ++i) assert(aaa[i] == (char)(i * i)); + } + + { // memmove + for (size_t i = 0; i < COUNT; ++i) { aaa[i] = 0; bbb[i] = i * i; } + assert(memcpy(aaa, bbb, COUNT) == aaa); + for (size_t i = 0; i < COUNT; ++i) assert(aaa[i] == (char)(i * i)); + } + + { // memchr + for (size_t i = 0; i < COUNT; ++i) aaa[i] = 0; + aaa[256] = 'a'; + assert(memchr(aaa, 'a', COUNT) == &aaa[256]); + } + + { // memset + memset(&aaa[0], 'a', COUNT / 2); + memset(&aaa[COUNT / 2], 'b', COUNT / 2); + for (size_t i = 0; i < COUNT / 2; ++i) assert(aaa[i] == 'a'); + for (size_t i = COUNT / 2; i < COUNT; ++i) assert(aaa[i] == 'b'); } }