|
|
@ -11,8 +11,8 @@ |
|
|
|
|
|
|
|
int compar(const void* entry1, const void* entry2) { |
|
|
|
char **pstr1 = (char**)entry1, **pstr2 = (char**)entry2; |
|
|
|
char *str1 = calloc(strlen(*pstr1)+1, sizeof(char)), |
|
|
|
*str2 = calloc(strlen(*pstr2)+1, sizeof(char)); |
|
|
|
char *str1 = calloc(strlen(*pstr1) + 1, sizeof(char)), |
|
|
|
*str2 = calloc(strlen(*pstr2) + 1, sizeof(char)); |
|
|
|
strcpy(str1, *pstr1); |
|
|
|
strcpy(str2, *pstr2); |
|
|
|
|
|
|
@ -25,6 +25,9 @@ int compar(const void* entry1, const void* entry2) { |
|
|
|
rest = strtok(NULL, ""); |
|
|
|
int num2 = atoi(rest); |
|
|
|
|
|
|
|
free(str1); |
|
|
|
free(str2); |
|
|
|
|
|
|
|
return num1 - num2; |
|
|
|
} |
|
|
|
|
|
|
@ -158,17 +161,17 @@ void test_circ_buf_get(void) { |
|
|
|
free(temp); |
|
|
|
|
|
|
|
char* actual = (char *) malloc(BUFFER_ELEMENT_SIZE * sizeof(char)); |
|
|
|
char* test_against = (char *) malloc(BUFFER_ELEMENT_SIZE * sizeof(char)); |
|
|
|
char* expected = (char *) malloc(BUFFER_ELEMENT_SIZE * sizeof(char)); |
|
|
|
|
|
|
|
for(uint8_t i = 0; i < (BUFFER_SIZE - 2); ++i) { |
|
|
|
circ_buf_get(circ_buf, actual); |
|
|
|
snprintf(test_against, BUFFER_ELEMENT_SIZE, "string_%d", i); |
|
|
|
snprintf(expected, BUFFER_ELEMENT_SIZE, "string_%d", i); |
|
|
|
|
|
|
|
TEST_ASSERT_EQUAL_STRING_LEN(test_against, actual, BUFFER_ELEMENT_SIZE); |
|
|
|
TEST_ASSERT_EQUAL_STRING_LEN(expected, actual, BUFFER_ELEMENT_SIZE); |
|
|
|
} |
|
|
|
|
|
|
|
free(actual); |
|
|
|
free(test_against); |
|
|
|
free(expected); |
|
|
|
|
|
|
|
circ_buf_free(circ_buf); |
|
|
|
free_buffer(buffer); |
|
|
@ -193,18 +196,77 @@ void test_circ_buf_read(void) { |
|
|
|
free(temp); |
|
|
|
|
|
|
|
char* actual = (char *) malloc(BUFFER_ELEMENT_SIZE * sizeof(char)); |
|
|
|
char* test_against = (char *) malloc(BUFFER_ELEMENT_SIZE * sizeof(char)); |
|
|
|
char* expected = (char *) malloc(BUFFER_ELEMENT_SIZE * sizeof(char)); |
|
|
|
|
|
|
|
for(uint8_t i = 0; i < (BUFFER_SIZE - 2); ++i) { |
|
|
|
circ_buf_read(circ_buf, i, actual); |
|
|
|
snprintf(test_against, BUFFER_ELEMENT_SIZE, "string_%d", i); |
|
|
|
snprintf(expected, BUFFER_ELEMENT_SIZE, "string_%d", i); |
|
|
|
|
|
|
|
TEST_ASSERT_EQUAL_STRING_LEN(test_against, actual, BUFFER_ELEMENT_SIZE); |
|
|
|
TEST_ASSERT_EQUAL_STRING_LEN(expected, actual, BUFFER_ELEMENT_SIZE); |
|
|
|
TEST_ASSERT_EQUAL_INT8(BUFFER_SIZE - 2, circ_buf_size(circ_buf)); |
|
|
|
} |
|
|
|
|
|
|
|
free(actual); |
|
|
|
free(test_against); |
|
|
|
free(expected); |
|
|
|
|
|
|
|
circ_buf_free(circ_buf); |
|
|
|
free_buffer(buffer); |
|
|
|
free(buffer); |
|
|
|
} |
|
|
|
|
|
|
|
void test_circ_buf_serialize(void) { |
|
|
|
char** buffer = (char **) malloc(BUFFER_SIZE * sizeof(char *)); |
|
|
|
for (uint8_t buff_el = 0; buff_el < BUFFER_SIZE; ++buff_el) { |
|
|
|
buffer[buff_el] = (char *) malloc(BUFFER_ELEMENT_SIZE * sizeof(char)); |
|
|
|
} |
|
|
|
|
|
|
|
cbuf_handle_t circ_buf = circ_buf_init(buffer, BUFFER_SIZE, BUFFER_ELEMENT_SIZE); |
|
|
|
char* temp = (char *) malloc(BUFFER_ELEMENT_SIZE * sizeof(char)); |
|
|
|
|
|
|
|
for(uint8_t i = 0; i < (BUFFER_SIZE - 2); ++i) { |
|
|
|
snprintf(temp, BUFFER_ELEMENT_SIZE, "string_%d", i); |
|
|
|
|
|
|
|
circ_buf_put(circ_buf, temp); |
|
|
|
} |
|
|
|
|
|
|
|
free(temp); |
|
|
|
|
|
|
|
char* serialized; |
|
|
|
uint8_t serialized_length = circ_buf_serialize(circ_buf, &serialized); |
|
|
|
TEST_ASSERT_EQUAL_UINT8(53, serialized_length); |
|
|
|
|
|
|
|
char* expected = "string_0\rstring_1\rstring_2\rstring_3\rstring_4\rstring_5"; |
|
|
|
TEST_ASSERT_EQUAL_STRING_LEN(expected, serialized, 53); |
|
|
|
|
|
|
|
circ_buf_free(circ_buf); |
|
|
|
free_buffer(buffer); |
|
|
|
free(buffer); |
|
|
|
} |
|
|
|
|
|
|
|
void test_circ_buf_deserialize(void) { |
|
|
|
char** buffer = (char **) malloc(BUFFER_SIZE * sizeof(char *)); |
|
|
|
for (uint8_t buff_el = 0; buff_el < BUFFER_SIZE; ++buff_el) { |
|
|
|
buffer[buff_el] = (char *) malloc(BUFFER_ELEMENT_SIZE * sizeof(char)); |
|
|
|
} |
|
|
|
|
|
|
|
cbuf_handle_t circ_buf = circ_buf_init(buffer, BUFFER_SIZE, BUFFER_ELEMENT_SIZE); |
|
|
|
|
|
|
|
char* serialized = "string_0\rstring_1\rstring_2\rstring_3\rstring_4\rstring_5"; |
|
|
|
uint8_t deserialized_size = circ_buf_deserialize(circ_buf, serialized); |
|
|
|
TEST_ASSERT_EQUAL_UINT8(6, deserialized_size); |
|
|
|
|
|
|
|
char* actual = (char *) malloc(BUFFER_ELEMENT_SIZE * sizeof(char)); |
|
|
|
char* expected = (char *) malloc(BUFFER_ELEMENT_SIZE * sizeof(char)); |
|
|
|
|
|
|
|
for(uint8_t i = 0; i < (BUFFER_SIZE - 2); ++i) { |
|
|
|
circ_buf_get(circ_buf, actual); |
|
|
|
snprintf(expected, BUFFER_ELEMENT_SIZE, "string_%d", i); |
|
|
|
|
|
|
|
TEST_ASSERT_EQUAL_STRING_LEN(expected, actual, BUFFER_ELEMENT_SIZE); |
|
|
|
} |
|
|
|
|
|
|
|
free(actual); |
|
|
|
free(expected); |
|
|
|
|
|
|
|
circ_buf_free(circ_buf); |
|
|
|
free_buffer(buffer); |
|
|
|