mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-05-18 03:51:35 +08:00
init也要加单元测试,但是推荐使用new接口。另外关于内存溢出问题交给使用者吧。new和free必须成对,init和destory必须成对出现
This commit is contained in:
parent
d8012720b6
commit
e8c5a06fa4
4
.vscode/launch.json
vendored
4
.vscode/launch.json
vendored
@ -8,8 +8,8 @@
|
|||||||
"name": "unicstl",
|
"name": "unicstl",
|
||||||
"type": "cppdbg",
|
"type": "cppdbg",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
// "program": "${workspaceFolder}/build/release/bin/test.exe",
|
"program": "${workspaceFolder}/build/release/bin/test.exe",
|
||||||
"program": "${workspaceFolder}/build/release/bin/demo.exe",
|
// "program": "${workspaceFolder}/build/release/bin/demo.exe",
|
||||||
"args": [],
|
"args": [],
|
||||||
"stopAtEntry": false,
|
"stopAtEntry": false,
|
||||||
"cwd": "${fileDirname}",
|
"cwd": "${fileDirname}",
|
||||||
|
11
src/queue.c
11
src/queue.c
@ -332,9 +332,6 @@ bool queue_init(struct _queue * queue, uint32_t obj_size)
|
|||||||
queue->destory = queue_destory;
|
queue->destory = queue_destory;
|
||||||
queue->print = queue_print;
|
queue->print = queue_print;
|
||||||
|
|
||||||
// 防止多次调用init导致内存泄漏
|
|
||||||
queue->destory(queue);
|
|
||||||
|
|
||||||
// init front & back
|
// init front & back
|
||||||
queue->_front = NULL;
|
queue->_front = NULL;
|
||||||
queue->_back = NULL;
|
queue->_back = NULL;
|
||||||
@ -374,11 +371,6 @@ bool queue_init2(struct _queue * queue, uint32_t obj_size, uint32_t capacity)
|
|||||||
queue->destory = queue2_destory;
|
queue->destory = queue2_destory;
|
||||||
queue->print = queue2_print;
|
queue->print = queue2_print;
|
||||||
|
|
||||||
// 防止多次调用init导致内存泄漏
|
|
||||||
queue->_front = NULL;
|
|
||||||
queue->_back = NULL;
|
|
||||||
queue->destory(queue);
|
|
||||||
|
|
||||||
// init front & back
|
// init front & back
|
||||||
queue->_front = (struct _queue_node *)malloc(sizeof(struct _queue_node));
|
queue->_front = (struct _queue_node *)malloc(sizeof(struct _queue_node));
|
||||||
if(queue->_front == NULL)
|
if(queue->_front == NULL)
|
||||||
@ -406,7 +398,8 @@ done:
|
|||||||
|
|
||||||
queue_t queue_new(void)
|
queue_t queue_new(void)
|
||||||
{
|
{
|
||||||
return (struct _queue *)calloc(1, sizeof(struct _queue));
|
// return (struct _queue *)calloc(1, sizeof(struct _queue));
|
||||||
|
return (struct _queue *)malloc(sizeof(struct _queue));
|
||||||
}
|
}
|
||||||
|
|
||||||
void queue_free(queue_t* queue)
|
void queue_free(queue_t* queue)
|
||||||
|
@ -10,26 +10,37 @@
|
|||||||
*/
|
*/
|
||||||
#include "test.h"
|
#include "test.h"
|
||||||
|
|
||||||
static void test_queue_new(void)
|
static void test_queue_init(void)
|
||||||
{
|
{
|
||||||
queue_t queue = NULL;
|
struct _queue queue;
|
||||||
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)));
|
||||||
|
queue.destory(&queue);
|
||||||
|
|
||||||
queue_free(&queue);
|
TEST_ASSERT_TRUE(queue_init(&queue, sizeof(char)));
|
||||||
TEST_ASSERT_NULL(queue);
|
queue.destory(&queue);
|
||||||
|
|
||||||
TEST_ASSERT_NOT_NULL(&queue);
|
// ------------------------------
|
||||||
queue_free(&queue);
|
TEST_ASSERT_FALSE(queue_init2(NULL, sizeof(int), 1));
|
||||||
queue_free(NULL);
|
TEST_ASSERT_FALSE(queue_init2(&queue, 0, 1));
|
||||||
|
TEST_ASSERT_FALSE(queue_init2(&queue, sizeof(int), 0));
|
||||||
|
TEST_ASSERT_TRUE(queue_init2(&queue, sizeof(int), 1));
|
||||||
|
queue.destory(&queue);
|
||||||
|
|
||||||
|
TEST_ASSERT_TRUE(queue_init2(&queue, sizeof(int), 5));
|
||||||
|
queue.destory(&queue);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_queue_init(void)
|
static void test_queue_new(void)
|
||||||
{
|
{
|
||||||
queue_t queue = NULL;
|
queue_t queue = NULL;
|
||||||
|
|
||||||
// ------------------------------
|
// ------------------------------
|
||||||
queue = queue_new();
|
queue = queue_new();
|
||||||
|
TEST_ASSERT_NOT_NULL(queue);
|
||||||
|
|
||||||
TEST_ASSERT_FALSE(queue_init(NULL, sizeof(int)));
|
TEST_ASSERT_FALSE(queue_init(NULL, sizeof(int)));
|
||||||
TEST_ASSERT_FALSE(queue_init(queue, 0));
|
TEST_ASSERT_FALSE(queue_init(queue, 0));
|
||||||
TEST_ASSERT_TRUE(queue_init(queue, sizeof(int)));
|
TEST_ASSERT_TRUE(queue_init(queue, sizeof(int)));
|
||||||
@ -38,12 +49,17 @@ static void test_queue_init(void)
|
|||||||
|
|
||||||
// ------------------------------
|
// ------------------------------
|
||||||
queue = queue_new();
|
queue = queue_new();
|
||||||
|
TEST_ASSERT_NOT_NULL(queue);
|
||||||
|
|
||||||
TEST_ASSERT_FALSE(queue_init2(NULL, sizeof(int), 1));
|
TEST_ASSERT_FALSE(queue_init2(NULL, sizeof(int), 1));
|
||||||
TEST_ASSERT_FALSE(queue_init2(queue, 0, 1));
|
TEST_ASSERT_FALSE(queue_init2(queue, 0, 1));
|
||||||
TEST_ASSERT_FALSE(queue_init2(queue, sizeof(int), 0));
|
TEST_ASSERT_FALSE(queue_init2(queue, sizeof(int), 0));
|
||||||
TEST_ASSERT_TRUE(queue_init2(queue, sizeof(int), 1));
|
TEST_ASSERT_TRUE(queue_init2(queue, sizeof(int), 1));
|
||||||
TEST_ASSERT_TRUE(queue_init2(queue, sizeof(int), 5));
|
TEST_ASSERT_TRUE(queue_init2(queue, sizeof(int), 5));
|
||||||
queue_free(&queue);
|
queue_free(&queue);
|
||||||
|
|
||||||
|
TEST_ASSERT_NULL(queue);
|
||||||
|
queue_free(&queue); // queue_free(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -607,8 +623,8 @@ static void test_queue2_struct(void)
|
|||||||
void test_queue(void)
|
void test_queue(void)
|
||||||
{
|
{
|
||||||
// TEST_MESSAGE("----- test_queue -----");
|
// TEST_MESSAGE("----- test_queue -----");
|
||||||
RUN_TEST(test_queue_new);
|
|
||||||
RUN_TEST(test_queue_init);
|
RUN_TEST(test_queue_init);
|
||||||
|
RUN_TEST(test_queue_new);
|
||||||
RUN_TEST(test_queue_push);
|
RUN_TEST(test_queue_push);
|
||||||
RUN_TEST(test_queue_pop);
|
RUN_TEST(test_queue_pop);
|
||||||
RUN_TEST(test_queue_clear);
|
RUN_TEST(test_queue_clear);
|
||||||
|
Loading…
Reference in New Issue
Block a user