Module: xenomai-forge Branch: master Commit: 07f0be5f7a41209f83e4a93f7dd82055a78b355b URL: http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=07f0be5f7a41209f83e4a93f7dd82055a78b355b
Author: Philippe Gerum <r...@xenomai.org> Date: Wed May 8 17:06:34 2013 +0200 alchemy/testsuite: check exec sequence in heap-1 --- lib/alchemy/testsuite/heap-1.c | 30 +++++++++++++++++++++++++----- 1 files changed, 25 insertions(+), 5 deletions(-) diff --git a/lib/alchemy/testsuite/heap-1.c b/lib/alchemy/testsuite/heap-1.c index c626d5d..7b002da 100644 --- a/lib/alchemy/testsuite/heap-1.c +++ b/lib/alchemy/testsuite/heap-1.c @@ -5,6 +5,12 @@ #include <alchemy/task.h> #include <alchemy/heap.h> +static int tseq[] = { + 7, 1, 2, 3, 4, + 8, 9, 5, 6, 10, + 11, 12, +}; + static struct traceobj trobj; static RT_TASK t_bgnd, t_fgnd; @@ -15,18 +21,24 @@ static void background_task(void *arg) RT_HEAP heap; int ret; + traceobj_enter(&trobj); + + traceobj_mark(&trobj, 7); ret = rt_heap_bind(&heap, "HEAP", TM_INFINITE); traceobj_assert(&trobj, ret == 0); - - traceobj_enter(&trobj); + traceobj_mark(&trobj, 8); ret = rt_heap_alloc(&heap, 8192, TM_NONBLOCK, &p1); + traceobj_mark(&trobj, 9); traceobj_assert(&trobj, ret == -EWOULDBLOCK); ret = rt_heap_alloc(&heap, 8192, TM_INFINITE, &p1); + traceobj_mark(&trobj, 10); traceobj_assert(&trobj, ret == 0); ret = rt_heap_alloc(&heap, 8192, TM_NONBLOCK, &p2); + traceobj_mark(&trobj, 11); traceobj_assert(&trobj, ret == 0); ret = rt_heap_alloc(&heap, 8192, TM_INFINITE, &p1); + traceobj_mark(&trobj, 12); traceobj_assert(&trobj, ret == -EIDRM); traceobj_exit(&trobj); @@ -38,20 +50,26 @@ static void foreground_task(void *arg) RT_HEAP heap; int ret; + traceobj_enter(&trobj); + + traceobj_mark(&trobj, 1); ret = rt_heap_bind(&heap, "HEAP", TM_INFINITE); traceobj_assert(&trobj, ret == 0); - - traceobj_enter(&trobj); + traceobj_mark(&trobj, 2); ret = rt_heap_alloc(&heap, 8192, TM_NONBLOCK, &p1); traceobj_assert(&trobj, ret == 0); + traceobj_mark(&trobj, 3); ret = rt_heap_alloc(&heap, 8192, TM_NONBLOCK, &p2); traceobj_assert(&trobj, ret == 0); + traceobj_mark(&trobj, 4); ret = rt_task_set_priority(NULL, 19); traceobj_assert(&trobj, ret == 0); + traceobj_mark(&trobj, 5); ret = rt_task_set_priority(NULL, 21); traceobj_assert(&trobj, ret == 0); + traceobj_mark(&trobj, 6); ret = rt_heap_free(&heap, p1); traceobj_assert(&trobj, ret == 0); @@ -73,7 +91,7 @@ int main(int argc, char *const argv[]) copperplate_init(&argc, &argv); - traceobj_init(&trobj, argv[0], 0); + traceobj_init(&trobj, argv[0], sizeof(tseq) / sizeof(int)); ret = rt_task_create(&t_bgnd, "BGND", 0, 20, 0); traceobj_assert(&trobj, ret == 0); @@ -92,5 +110,7 @@ int main(int argc, char *const argv[]) traceobj_join(&trobj); + traceobj_verify(&trobj, tseq, sizeof(tseq) / sizeof(int)); + exit(0); } _______________________________________________ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git