diff --git a/include/common.h b/include/common.h index ef375bd..c8db42d 100644 --- a/include/common.h +++ b/include/common.h @@ -11,7 +11,7 @@ #ifndef _COMMON_H_ #define _COMMON_H_ -// #define NDEBUG 1 +#define NDEBUG 1 #include #include diff --git a/src/queue.c b/src/queue.c index 7d665ba..6ec6056 100644 --- a/src/queue.c +++ b/src/queue.c @@ -303,8 +303,8 @@ static void queue2_print(struct _queue* self) bool queue_init(struct _queue * queue, uint32_t obj_size) { - // assert(queue != NULL); - // assert(obj_size > 0); + assert(queue != NULL); + assert(obj_size > 0); if(queue == NULL || obj_size == 0) { return false; @@ -341,9 +341,9 @@ bool queue_init(struct _queue * queue, uint32_t obj_size) bool queue_init2(struct _queue * queue, uint32_t obj_size, uint32_t capacity) { - // assert(queue != NULL); - // assert(obj_size > 0); - // assert(capacity > 0); + assert(queue != NULL); + assert(obj_size > 0); + assert(capacity > 0); if(queue == NULL || obj_size == 0 || capacity == 0) { return false; @@ -398,13 +398,15 @@ done: queue_t queue_new(void) { - // return (struct _queue *)calloc(1, sizeof(struct _queue)); - return (struct _queue *)malloc(sizeof(struct _queue)); + return (struct _queue *)calloc(1, sizeof(struct _queue)); } void queue_free(queue_t* queue) { // assert(queue != NULL); + // assert(*queue != NULL); + // assert((*queue)->destory != NULL); + if(queue != NULL && *queue != NULL) { if((*queue)->destory != NULL) diff --git a/test/test.c b/test/test.c index b8e0bf4..d018b4d 100644 --- a/test/test.c +++ b/test/test.c @@ -73,7 +73,7 @@ int main(int argc, char const *argv[]) printf("----- Unicstl Unit Test -----\n"); UNITY_BEGIN(); - test_stack(); + // test_stack(); test_queue(); return UNITY_END(); diff --git a/test/test_queue.c b/test/test_queue.c index 1a462a6..6182cb4 100644 --- a/test/test_queue.c +++ b/test/test_queue.c @@ -10,52 +10,63 @@ */ #include "test.h" +/** + * @brief + * 每成功init一次,就需要对应的destory一次。否则可能存在内存泄漏 + */ static void test_queue_init(void) { struct _queue queue; + // ------------------------------ +#ifdef NDEBUG TEST_ASSERT_FALSE(queue_init(NULL, sizeof(int))); TEST_ASSERT_FALSE(queue_init(&queue, 0)); +#endif TEST_ASSERT_TRUE(queue_init(&queue, sizeof(int))); queue.destory(&queue); - TEST_ASSERT_TRUE(queue_init(&queue, sizeof(char))); - queue.destory(&queue); - // ------------------------------ +#ifdef NDEBUG TEST_ASSERT_FALSE(queue_init2(NULL, sizeof(int), 1)); TEST_ASSERT_FALSE(queue_init2(&queue, 0, 1)); TEST_ASSERT_FALSE(queue_init2(&queue, sizeof(int), 0)); +#endif TEST_ASSERT_TRUE(queue_init2(&queue, sizeof(int), 1)); queue.destory(&queue); - - TEST_ASSERT_TRUE(queue_init2(&queue, sizeof(int), 5)); - queue.destory(&queue); } +/** + * @brief + * 每成功init一次,就需要对应的free一次。否则可能存在内存泄漏 + */ static void test_queue_new(void) { queue_t queue = NULL; - - // ------------------------------ queue = queue_new(); - TEST_ASSERT_NOT_NULL(queue); - - TEST_ASSERT_FALSE(queue_init(NULL, sizeof(int))); - TEST_ASSERT_FALSE(queue_init(queue, 0)); - TEST_ASSERT_TRUE(queue_init(queue, sizeof(int))); - TEST_ASSERT_TRUE(queue_init(queue, sizeof(char))); queue_free(&queue); // ------------------------------ queue = queue_new(); TEST_ASSERT_NOT_NULL(queue); +#ifdef NDEBUG + TEST_ASSERT_FALSE(queue_init(NULL, sizeof(int))); + TEST_ASSERT_FALSE(queue_init(queue, 0)); +#endif + TEST_ASSERT_TRUE(queue_init(queue, sizeof(int))); + queue_free(&queue); + + // ------------------------------ + queue = queue_new(); + TEST_ASSERT_NOT_NULL(queue); + +#ifdef NDEBUG TEST_ASSERT_FALSE(queue_init2(NULL, sizeof(int), 1)); TEST_ASSERT_FALSE(queue_init2(queue, 0, 1)); TEST_ASSERT_FALSE(queue_init2(queue, sizeof(int), 0)); +#endif TEST_ASSERT_TRUE(queue_init2(queue, sizeof(int), 1)); - TEST_ASSERT_TRUE(queue_init2(queue, sizeof(int), 5)); queue_free(&queue); TEST_ASSERT_NULL(queue);