Fixing test.h, fixing warnings and deque tests
This commit is contained in:
1 parent
181a8999a7
commit
980fb6d432
3 files changed
+98
-36
No files matched your search
+8
-1
@@ -114,7 +114,14 @@ static inline int cmc_str_cmp(char *ch1, char *ch2)
|
||||
|
||||
static inline char *cmc_str_cpy(char *str)
|
||||
{
|
||||
return strdup(str);
|
||||
size_t len = strlen(str) + 1;
|
||||
|
||||
char *result = malloc(len);
|
||||
|
||||
if (!result)
|
||||
return NULL;
|
||||
|
||||
return memcpy(result, str, len);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+29
-29
@@ -95,7 +95,7 @@ static void cmc_test_log(const char *unit_name, const char *current_test,
|
||||
size_t str_len = strlen(current_test);
|
||||
if (str_len < 53)
|
||||
{
|
||||
printf(cmc_test_color(3));
|
||||
printf("%s", cmc_test_color(3));
|
||||
for (size_t i = 0; i < 53 - str_len; i++)
|
||||
putchar('.');
|
||||
}
|
||||
@@ -118,22 +118,22 @@ static void cmc_test_log(const char *unit_name, const char *current_test,
|
||||
tinfo.assert_total = cmc_assert_total; \
|
||||
tinfo.assert_failed = cmc_assert_failed; \
|
||||
\
|
||||
/* Tests */ \
|
||||
cmc_timer_start(timer); \
|
||||
\
|
||||
printf(cmc_test_color(3)); \
|
||||
printf("%s", cmc_test_color(3)); \
|
||||
printf( \
|
||||
" +---------------------------------------------------------------+\n"); \
|
||||
printf(" | "); \
|
||||
printf(cmc_test_color(0)); \
|
||||
printf("%s", cmc_test_color(0)); \
|
||||
printf("Unit "); \
|
||||
printf(cmc_test_color(4)); \
|
||||
printf("%s", cmc_test_color(4)); \
|
||||
printf("%-56s", unit_name); \
|
||||
printf(cmc_test_color(3)); \
|
||||
printf("%s", cmc_test_color(3)); \
|
||||
printf( \
|
||||
" |\n +---------------------------------------------------------------+"); \
|
||||
printf("%s\n", cmc_test_color(0)); \
|
||||
\
|
||||
/* Tests */ \
|
||||
cmc_timer_start(timer); \
|
||||
\
|
||||
BODY; \
|
||||
\
|
||||
cmc_timer_stop(timer); \
|
||||
@@ -147,57 +147,57 @@ static void cmc_test_log(const char *unit_name, const char *current_test,
|
||||
tinfo.assert_total = cmc_assert_total - tinfo.assert_total; \
|
||||
tinfo.assert_failed = cmc_assert_failed - tinfo.assert_failed; \
|
||||
\
|
||||
printf(cmc_test_color(3)); \
|
||||
printf("%s", cmc_test_color(3)); \
|
||||
printf( \
|
||||
" +---------------------------------------------------------------+\n | "); \
|
||||
printf(cmc_test_color(0)); \
|
||||
printf("%s", cmc_test_color(0)); \
|
||||
printf("Summary : "); \
|
||||
printf(cmc_test_color(4)); \
|
||||
printf("%s", cmc_test_color(4)); \
|
||||
printf("%-52s", unit_name); \
|
||||
printf("%s|\n", cmc_test_color(3)); \
|
||||
printf( \
|
||||
" +---------++----------------+-----------------+-----------------+\n | "); \
|
||||
printf(cmc_test_color(0)); \
|
||||
printf("%s", cmc_test_color(0)); \
|
||||
printf("Tests "); \
|
||||
printf(cmc_test_color(3)); \
|
||||
printf("%s", cmc_test_color(3)); \
|
||||
printf("||"); \
|
||||
printf(cmc_test_color(5)); \
|
||||
printf("%s", cmc_test_color(5)); \
|
||||
printf(" Total %8" PRIuMAX "", tinfo.total); \
|
||||
printf(cmc_test_color(3)); \
|
||||
printf("%s", cmc_test_color(3)); \
|
||||
printf(" | "); \
|
||||
printf(cmc_test_color(2)); \
|
||||
printf("%s", cmc_test_color(2)); \
|
||||
printf("Passed %8" PRIuMAX "", tinfo.passed); \
|
||||
printf(cmc_test_color(3)); \
|
||||
printf("%s", cmc_test_color(3)); \
|
||||
printf(" | "); \
|
||||
printf(cmc_test_color(1)); \
|
||||
printf("%s", cmc_test_color(1)); \
|
||||
printf("Failed %8" PRIuMAX "", tinfo.failed); \
|
||||
printf(cmc_test_color(3)); \
|
||||
printf("%s", cmc_test_color(3)); \
|
||||
printf(" |\n | "); \
|
||||
printf(cmc_test_color(0)); \
|
||||
printf("%s", cmc_test_color(0)); \
|
||||
printf("Asserts "); \
|
||||
printf(cmc_test_color(3)); \
|
||||
printf("%s", cmc_test_color(3)); \
|
||||
printf("||"); \
|
||||
printf(cmc_test_color(5)); \
|
||||
printf("%s", cmc_test_color(5)); \
|
||||
printf(" Total %8" PRIuMAX "", tinfo.assert_total); \
|
||||
printf(cmc_test_color(3)); \
|
||||
printf("%s", cmc_test_color(3)); \
|
||||
printf(" | "); \
|
||||
printf(cmc_test_color(2)); \
|
||||
printf("%s", cmc_test_color(2)); \
|
||||
printf("Passed %8" PRIuMAX "", \
|
||||
tinfo.assert_total - tinfo.assert_failed); \
|
||||
printf(cmc_test_color(3)); \
|
||||
printf("%s", cmc_test_color(3)); \
|
||||
printf(" | "); \
|
||||
printf(cmc_test_color(1)); \
|
||||
printf("%s", cmc_test_color(1)); \
|
||||
printf("Failed %8" PRIuMAX "", tinfo.assert_failed); \
|
||||
printf(cmc_test_color(3)); \
|
||||
printf("%s", cmc_test_color(3)); \
|
||||
printf(" |\n"); \
|
||||
printf( \
|
||||
" +---------++----------------+-----------------+-----------------+\n | "); \
|
||||
printf(cmc_test_color(0)); \
|
||||
printf("%s", cmc_test_color(0)); \
|
||||
printf("Total Runtime : %32.0f milliseconds", timer.result); \
|
||||
printf(" %s|\n", cmc_test_color(3)); \
|
||||
printf( \
|
||||
" +---------------------------------------------------------------+\n"); \
|
||||
printf(cmc_test_color(0)); \
|
||||
printf("%s", cmc_test_color(0)); \
|
||||
printf("\n\n"); \
|
||||
\
|
||||
return tinfo.failed; \
|
||||
|
||||
+61
-6
@@ -38,6 +38,10 @@ CMC_CREATE_UNIT(Deque, true, {
|
||||
|
||||
cmc_assert_equals(ptr, NULL, d);
|
||||
|
||||
d = d_new(1000, NULL);
|
||||
|
||||
cmc_assert_equals(ptr, NULL, d);
|
||||
|
||||
d = d_new(UINT64_MAX, d_fval);
|
||||
|
||||
cmc_assert_equals(ptr, NULL, d);
|
||||
@@ -59,9 +63,16 @@ CMC_CREATE_UNIT(Deque, true, {
|
||||
|
||||
cmc_assert_equals(ptr, NULL, d);
|
||||
|
||||
d = d_new_custom(1000, NULL, d_alloc_node, callbacks);
|
||||
|
||||
cmc_assert_equals(ptr, NULL, d);
|
||||
|
||||
d = d_new_custom(UINT64_MAX, d_fval, d_alloc_node, callbacks);
|
||||
|
||||
cmc_assert_equals(ptr, NULL, d);
|
||||
|
||||
if (d)
|
||||
d_free(d);
|
||||
});
|
||||
|
||||
CMC_CREATE_TEST(PFX##_clear(), {
|
||||
@@ -76,9 +87,11 @@ CMC_CREATE_UNIT(Deque, true, {
|
||||
|
||||
cmc_assert_equals(size_t, 50, d_count(d));
|
||||
|
||||
d->flag = cmc_flags.ERROR;
|
||||
d_clear(d);
|
||||
|
||||
cmc_assert_equals(size_t, 50, v_total_free);
|
||||
cmc_assert_equals(int32_t, cmc_flags.OK, d->flag);
|
||||
|
||||
cmc_assert_equals(size_t, 0, d_count(d));
|
||||
cmc_assert_equals(size_t, 100, d_capacity(d));
|
||||
@@ -100,6 +113,18 @@ CMC_CREATE_UNIT(Deque, true, {
|
||||
|
||||
cmc_assert_equals(size_t, 500500, sum);
|
||||
|
||||
d->flag = cmc_flags.ERROR;
|
||||
d_clear(d);
|
||||
|
||||
cmc_assert_equals(size_t, 1050, v_total_free);
|
||||
cmc_assert_equals(int32_t, cmc_flags.OK, d->flag);
|
||||
|
||||
sum = 0;
|
||||
for (size_t i = 0; i < d->capacity; i++)
|
||||
sum += d->buffer[i];
|
||||
|
||||
cmc_assert_equals(size_t, 0, sum);
|
||||
|
||||
d_free(d);
|
||||
|
||||
cmc_assert_equals(size_t, 1050, v_total_free);
|
||||
@@ -141,26 +166,40 @@ CMC_CREATE_UNIT(Deque, true, {
|
||||
CMC_CREATE_TEST(PFX##_customize(), {
|
||||
struct deque *d = d_new(100, d_fval);
|
||||
|
||||
d->flag = cmc_flags.ERROR;
|
||||
d_customize(d, d_alloc_node, callbacks);
|
||||
|
||||
cmc_assert_equals(ptr, d_alloc_node, d->alloc);
|
||||
cmc_assert_equals(ptr, callbacks, d->callbacks);
|
||||
cmc_assert_equals(int32_t, cmc_flags.OK, d->flag);
|
||||
|
||||
d->flag = cmc_flags.ERROR;
|
||||
d_customize(d, NULL, NULL);
|
||||
|
||||
cmc_assert_equals(ptr, &cmc_alloc_node_default, d->alloc);
|
||||
cmc_assert_equals(ptr, NULL, d->callbacks);
|
||||
cmc_assert_equals(int32_t, cmc_flags.OK, d->flag);
|
||||
|
||||
d_free(d);
|
||||
});
|
||||
|
||||
CMC_CREATE_TEST(PFX##_push_front(), {
|
||||
struct deque *d = d_new(100, d_fval);
|
||||
total_create = 0;
|
||||
struct deque *d = d_new_custom(100, d_fval, NULL, callbacks);
|
||||
|
||||
cmc_assert_not_equals(ptr, NULL, d);
|
||||
|
||||
cmc_assert(d_push_front(d, 10));
|
||||
cmc_assert_equals(size_t, 1, d_count(d));
|
||||
|
||||
cmc_assert_equals(int32_t, 1, total_create);
|
||||
|
||||
d_customize(d, NULL, NULL);
|
||||
|
||||
d_clear(d);
|
||||
|
||||
for (size_t i = 0; i < 150; i++)
|
||||
cmc_assert(d_push_front(d, i));
|
||||
d_push_front(d, i);
|
||||
|
||||
cmc_assert_equals(size_t, 150, d_count(d));
|
||||
cmc_assert_greater(size_t, 100, d_capacity(d));
|
||||
@@ -172,7 +211,7 @@ CMC_CREATE_UNIT(Deque, true, {
|
||||
cmc_assert_not_equals(ptr, NULL, d);
|
||||
|
||||
for (size_t i = 1; i <= 1000; i++)
|
||||
cmc_assert(d_push_front(d, i));
|
||||
d_push_front(d, i);
|
||||
|
||||
size_t sum = 0;
|
||||
|
||||
@@ -185,15 +224,28 @@ CMC_CREATE_UNIT(Deque, true, {
|
||||
cmc_assert_equals(size_t, 500500, sum);
|
||||
|
||||
d_free(d);
|
||||
|
||||
cmc_assert_equals(int32_t, 1, total_create);
|
||||
total_create = 0;
|
||||
});
|
||||
|
||||
CMC_CREATE_TEST(PFX##_push_back(), {
|
||||
struct deque *d = d_new(100, d_fval);
|
||||
total_create = 0;
|
||||
struct deque *d = d_new_custom(100, d_fval, NULL, callbacks);
|
||||
|
||||
cmc_assert_not_equals(ptr, NULL, d);
|
||||
|
||||
cmc_assert(d_push_front(d, 10));
|
||||
cmc_assert_equals(size_t, 1, d_count(d));
|
||||
|
||||
cmc_assert_equals(int32_t, 1, total_create);
|
||||
|
||||
d_customize(d, NULL, NULL);
|
||||
|
||||
d_clear(d);
|
||||
|
||||
for (size_t i = 0; i < 150; i++)
|
||||
cmc_assert(d_push_back(d, i));
|
||||
d_push_back(d, i);
|
||||
|
||||
cmc_assert_equals(size_t, 150, d_count(d));
|
||||
cmc_assert_greater(size_t, 100, d_capacity(d));
|
||||
@@ -205,7 +257,7 @@ CMC_CREATE_UNIT(Deque, true, {
|
||||
cmc_assert_not_equals(ptr, NULL, d);
|
||||
|
||||
for (size_t i = 1; i <= 1000; i++)
|
||||
cmc_assert(d_push_back(d, i));
|
||||
d_push_back(d, i);
|
||||
|
||||
size_t sum = 0;
|
||||
|
||||
@@ -218,6 +270,9 @@ CMC_CREATE_UNIT(Deque, true, {
|
||||
cmc_assert_equals(size_t, 500500, sum);
|
||||
|
||||
d_free(d);
|
||||
|
||||
cmc_assert_equals(int32_t, 1, total_create);
|
||||
total_create = 0;
|
||||
});
|
||||
|
||||
CMC_CREATE_TEST(PFX##_pop_front(), {
|
||||
|
||||
Reference in new issue
Block a user