Porting PicoTCP WIP
This commit is contained in:
84
kernel/picotcp/test/unit/modunit_queue.c
Normal file
84
kernel/picotcp/test/unit/modunit_queue.c
Normal file
@ -0,0 +1,84 @@
|
||||
#include "pico_frame.h"
|
||||
#include "pico_queue.h"
|
||||
#include "stack/pico_frame.c"
|
||||
#include "pico_stack.h"
|
||||
#include "check.h"
|
||||
|
||||
|
||||
Suite *pico_suite(void);
|
||||
|
||||
struct pico_queue q1 = {
|
||||
0
|
||||
}, q2 = {
|
||||
0
|
||||
};
|
||||
|
||||
START_TEST(tc_q)
|
||||
{
|
||||
struct pico_frame *f0 = pico_frame_alloc(100);
|
||||
struct pico_frame *f1 = pico_frame_alloc(100);
|
||||
struct pico_frame *f2 = pico_frame_alloc(100);
|
||||
struct pico_frame *f3 = pico_frame_alloc(100);
|
||||
struct pico_frame *f4 = pico_frame_alloc(100);
|
||||
|
||||
pico_queue_protect(&q1);
|
||||
|
||||
q1.max_frames = 4;
|
||||
q2.max_size = 4 * 100;
|
||||
|
||||
fail_if (pico_enqueue(&q1, pico_frame_copy(f0)) < 0);
|
||||
fail_if (pico_enqueue(&q1, pico_frame_copy(f1)) < 0);
|
||||
fail_if (pico_enqueue(&q1, pico_frame_copy(f2)) < 0);
|
||||
fail_if (pico_enqueue(&q1, pico_frame_copy(f3)) < 0);
|
||||
fail_if (pico_enqueue(&q1, pico_frame_copy(f4)) >= 0);
|
||||
|
||||
fail_if (pico_enqueue(&q2, pico_frame_copy(f0)) < 0);
|
||||
fail_if (pico_enqueue(&q2, pico_frame_copy(f1)) < 0);
|
||||
fail_if (pico_enqueue(&q2, pico_frame_copy(f2)) < 0);
|
||||
fail_if (pico_enqueue(&q2, pico_frame_copy(f3)) < 0);
|
||||
fail_if (pico_enqueue(&q2, pico_frame_copy(f4)) >= 0);
|
||||
|
||||
fail_if((pico_dequeue(&q1))->buffer != f0->buffer);
|
||||
fail_if((pico_dequeue(&q1))->buffer != f1->buffer);
|
||||
fail_if((pico_dequeue(&q1))->buffer != f2->buffer);
|
||||
fail_if((pico_dequeue(&q1))->buffer != f3->buffer);
|
||||
fail_if(pico_queue_peek(&q1) != NULL);
|
||||
fail_if(pico_dequeue(&q1) != NULL);
|
||||
fail_if(q1.size != 0);
|
||||
fail_if(q1.frames != 0);
|
||||
|
||||
|
||||
pico_queue_empty(&q2);
|
||||
fail_if(q2.size != 0);
|
||||
fail_if(q2.frames != 0);
|
||||
fail_if(pico_queue_peek(&q2) != NULL);
|
||||
fail_if(pico_dequeue(&q2) != NULL);
|
||||
|
||||
pico_queue_deinit(&q1);
|
||||
pico_queue_deinit(&q2);
|
||||
|
||||
|
||||
}
|
||||
END_TEST
|
||||
|
||||
|
||||
Suite *pico_suite(void)
|
||||
{
|
||||
Suite *s = suite_create("Packet Queues");
|
||||
|
||||
TCase *TCase_q = tcase_create("Unit test for pico_queue.c");
|
||||
tcase_add_test(TCase_q, tc_q);
|
||||
suite_add_tcase(s, TCase_q);
|
||||
return s;
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int fails;
|
||||
Suite *s = pico_suite();
|
||||
SRunner *sr = srunner_create(s);
|
||||
srunner_run_all(sr, CK_NORMAL);
|
||||
fails = srunner_ntests_failed(sr);
|
||||
srunner_free(sr);
|
||||
return fails;
|
||||
}
|
||||
Reference in New Issue
Block a user