Some more

This commit is contained in:
Gvidas Juknevičius 2025-02-04 15:32:09 +02:00
parent 049b901278
commit 61c25ffcb9
Signed by: MCorange
GPG Key ID: 12B1346D720B7FBB
3 changed files with 73 additions and 29 deletions

View File

@ -14,14 +14,15 @@ typedef struct mcu_test_case_s {
#define RUN_TEST_CASES(cases) \
for (size_t i = 0; i < sizeof(cases)/sizeof(mcu_test_case_t); i++) { \
mcu_test_case_t* test_case = &(cases)[i]; \
printf("(%s): ", test_case->short_name); \
const char* sn = test_case->short_name; \
printf("Running test case: %s\n", test_case->short_name); \
int ret = (test_case->test_fn)(); \
if (ret) { \
printf("FAIL - Returned non zero (%d)\n", ret); \
printf("REASON: %s\n", test_case->error_types[ret]); \
printf("(%s) FAIL - Returned non zero (%d)\n", sn, ret); \
printf("(%s) REASON: %s\n", sn, test_case->error_types[ret]); \
exit(1); \
} else { \
printf("PASS\n"); \
printf("(%s) PASS\n", sn); \
} \
}

View File

@ -43,7 +43,7 @@ MCU_API void mcu_gen_vec_insert_back(mcu_gen_vec_t* gv, void* data) {
MCU_API void* mcu_gen_vec_remove_back(mcu_gen_vec_t *gv) {
assert(gv && "Null ptr passed as mcu_gen_vec_t");
if (gv->count == 0) return NULL;
return gv->inner[gv->count--];
return gv->inner[--gv->count];
}
MCU_API void* mcu_gen_vec_remove_front(mcu_gen_vec_t *gv) {

83
test.c
View File

@ -32,32 +32,75 @@ int test_gen_vec() {
mcu_gen_vec_t vec = {0};
mcu_gen_vec_init(&vec);
mcu_gen_vec_insert_front(&vec, (void*)a);
mcu_gen_vec_insert_back(&vec, (void*)b);
mcu_gen_vec_insert_front(&vec, (void*)c);
mcu_gen_vec_insert_back(&vec, (void*)d);
printf("\nAr: %s\n", (char*) vec.inner[0]);
printf("Br: %s\n", (char*) vec.inner[1]);
printf("Cr: %s\n", (char*) vec.inner[2]);
printf("Dr: %s\n", (char*) vec.inner[3]);
printf("Testing mcu_gen_vec_remove_front:\n");
{
vec.inner[0] = c;
vec.inner[1] = a;
vec.inner[2] = b;
vec.inner[3] = d;
vec.count = 4;
printf("Inserted: [");
printf("\"%s\", ", (char*) vec.inner[0]);
printf("\"%s\", ", (char*) vec.inner[1]);
printf("\"%s\", ", (char*) vec.inner[2]);
printf("\"%s\"]\n", (char*) vec.inner[3]);
char* res_d = mcu_gen_vec_remove_back(&vec);
char* res_c = mcu_gen_vec_remove_front(&vec);
char* res_b = mcu_gen_vec_remove_back(&vec);
char* res_a = mcu_gen_vec_remove_front(&vec);
printf("Got: [");
printf("\"%s\", ", (char*)mcu_gen_vec_remove_front(&vec));
printf("\"%s\", ", (char*)mcu_gen_vec_remove_front(&vec));
printf("\"%s\", ", (char*)mcu_gen_vec_remove_front(&vec));
printf("\"%s\"]\n", (char*)mcu_gen_vec_remove_front(&vec));
}
printf("Testing mcu_gen_vec_remove_back:\n");
{
vec.inner[0] = c;
vec.inner[1] = a;
vec.inner[2] = b;
vec.inner[3] = d;
vec.count = 4;
printf("Inserted: [");
printf("\"%s\", ", (char*) vec.inner[0]);
printf("\"%s\", ", (char*) vec.inner[1]);
printf("\"%s\", ", (char*) vec.inner[2]);
printf("\"%s\"]\n", (char*) vec.inner[3]);
char* v1 = (char*)mcu_gen_vec_remove_back(&vec);
char* v2 = (char*)mcu_gen_vec_remove_back(&vec);
char* v3 = (char*)mcu_gen_vec_remove_back(&vec);
char* v4 = (char*)mcu_gen_vec_remove_back(&vec);
printf("A: %s\n", res_a);
printf("B: %s\n", res_b);
printf("C: %s\n", res_c);
printf("D: %s\n", res_d);
printf("Got: [");
printf("\"%s\", ", v4);
printf("\"%s\", ", v3);
printf("\"%s\", ", v2);
printf("\"%s\"]\n", v1);
}
printf("Testing mcu_gen_vec_insert_front:\n");
{
mcu_gen_vec_insert_front(&vec, d);
mcu_gen_vec_insert_front(&vec, c);
mcu_gen_vec_insert_front(&vec, b);
mcu_gen_vec_insert_front(&vec, a);
printf("Expected: [\"A\", \"B\", \"C\", \"D\"]\n");
printf("Got: [");
printf("\"%s\", ", (char*) vec.inner[0]);
printf("\"%s\", ", (char*) vec.inner[1]);
printf("\"%s\", ", (char*) vec.inner[2]);
printf("\"%s\"]\n", (char*) vec.inner[3]);
}
//printf("A: %s\n", res_a);
//printf("B: %s\n", res_b);
//printf("C: %s\n", res_c);
//printf("D: %s\n", res_d);
if ((
strcmp(res_a, "A") ||
strcmp(res_b, "B") ||
strcmp(res_c, "C") ||
strcmp(res_d, "D")
//strcmp(res_a, "A") ||
//strcmp(res_b, "B") ||
//strcmp(res_c, "C") ||
//strcmp(res_d, "D")
1
)) {
return GEN_VEC_ERR_BAD_ORDER;
}