#include #include #include #include #include #include #include #include #include #include #include #include #include #define GEN_VEC_ERR_BAD_ORDER 1 const char* gen_vec_error_t[] = { [GEN_VEC_ERR_BAD_ORDER] = "Returned items in bad order", }; int test_gen_vec() { char* a = malloc(2); char* b = malloc(2); char* c = malloc(2); char* d = malloc(2); memcpy(a, "A", 2); memcpy(b, "B", 2); memcpy(c, "C", 2); memcpy(d, "D", 2); // C A B D 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]); 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("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") )) { return GEN_VEC_ERR_BAD_ORDER; } return 0; } mcu_test_case_t cases[] = { { .short_name="GEN_VEC", .test_fn=test_gen_vec, .error_types = (char**)gen_vec_error_t, } }; int main(void) { RUN_TEST_CASES(cases); return 0; }