From fd2e8b5619f9433c188b63125283ceced222bead Mon Sep 17 00:00:00 2001 From: jf-home Date: Sat, 22 Jun 2024 16:58:19 +0800 Subject: [PATCH] =?UTF-8?q?queue=E6=B5=8B=E8=AF=95=E6=A1=88=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/test_queue.c | 88 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 87 insertions(+), 1 deletion(-) diff --git a/test/test_queue.c b/test/test_queue.c index 9c078a0..140dfd8 100644 --- a/test/test_queue.c +++ b/test/test_queue.c @@ -233,9 +233,95 @@ static void queue_test_num(void) queue.destory(&queue); } + +static void queue_test_char(void) +{ + uint32_t i = 0; + char data[] = "abcdefghijk"; + char temp = 0; + uint32_t len = sizeof(data) / sizeof(data[0]); + + struct _queue queue; + queue2_init(&queue, sizeof(char), 64); + queue.print_obj = print_char; + + printf("\n\n----- queue_test_char -----\n"); + + printf("----- after push-----\n"); + for (i = 0; i < len; i++) + { + queue.push(&queue, &data[i]); + + queue.front(&queue, &temp); + printf("front = "); + queue.print_obj(&temp); + + queue.back(&queue, &temp); + printf("\tback = "); + queue.print_obj(&temp); + + printf("\tsize = %2d\n", queue.size(&queue)); + } + printf("----- print -----\n"); + queue.print(&queue); + printf("\n"); + + queue.clear(&queue); + if (queue.empty(&queue)) + { + printf("----- empty -----\n"); + } + + printf("----- push -----\n"); + for (i = 0; i < len; i++) + { + queue.push(&queue, &data[i]); + } + + printf("----- after pop -----\n"); + for (i = 0; i < len + 1; i++) + { + if (true == queue.pop(&queue, &temp)) + { + printf("pop = "); + queue.print_obj(&temp); + + if (true == queue.front(&queue, &temp)) + { + printf("front = "); + queue.print_obj(&temp); + } + + if (queue.back(&queue, &temp)) + { + printf("back = "); + queue.print_obj(&temp); + } + + printf("size = %2d\n", queue.size(&queue)); + } + else + { + printf("pop failed! because it is empty\n"); + } + + if (queue.empty(&queue)) + { + printf("----- empty -----\n"); + } + } + + printf("----- print -----\n"); + queue.print(&queue); + printf("\n"); + + queue.destory(&queue); +} + void queue_test(void) { - queue_test_num(); + // queue_test_num(); + queue_test_char(); } #endif