annotate src/parallel_execution/test/stack_test.c @ 233:06133afb3b5b

create worker start_code
author mir3636
date Sun, 22 Jan 2017 20:02:21 +0900
parents 50d0d1b468aa
children 421ea91dd76c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
202
42dbe54332a0 add test
mir3636
parents: 182
diff changeset
1 #include "../stack.h"
182
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #include "../context.h"
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 #include "../origin_cs.h"
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #include <assert.h>
215
50d0d1b468aa Fix stack_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 208
diff changeset
5
207
7470b8382672 Fix compile error to stack_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 205
diff changeset
6 extern __code initContext(struct Context* context);
182
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7
202
42dbe54332a0 add test
mir3636
parents: 182
diff changeset
8 __code stack_test1(struct Context* context, struct Task* task, struct Stack* stack) {
205
1b15f02ec713 Fix queue test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 202
diff changeset
9 task->code = C_stack_test1;
1b15f02ec713 Fix queue test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 202
diff changeset
10 stack->next = C_stack_test2;
202
42dbe54332a0 add test
mir3636
parents: 182
diff changeset
11 stack->data = (union Data*)task;
215
50d0d1b468aa Fix stack_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 208
diff changeset
12 goto meta(context, stack->stack->Stack.push);
182
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 }
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14
202
42dbe54332a0 add test
mir3636
parents: 182
diff changeset
15 __code stack_test1_stub(struct Context* context) {
182
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 Task* task = &ALLOCATE(context, Task)->Task;
205
1b15f02ec713 Fix queue test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 202
diff changeset
17 struct Stack* stack = &(createSingleLinkedStack(context)->Stack);
1b15f02ec713 Fix queue test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 202
diff changeset
18 assert(stack->stack->SingleLinkedStack.top == NULL);
1b15f02ec713 Fix queue test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 202
diff changeset
19 context->data[D_Stack]->Stack.stack = (union Data*)stack;
202
42dbe54332a0 add test
mir3636
parents: 182
diff changeset
20 goto stack_test1(context,
182
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 task,
215
50d0d1b468aa Fix stack_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 208
diff changeset
22 &context->data[D_Stack]->Stack);
182
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 }
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
202
42dbe54332a0 add test
mir3636
parents: 182
diff changeset
25 __code stack_test2(struct Context* context, struct Task* task, struct Stack* stack) {
205
1b15f02ec713 Fix queue test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 202
diff changeset
26 task->code = C_stack_test2;
1b15f02ec713 Fix queue test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 202
diff changeset
27 stack->next = C_stack_test3;
202
42dbe54332a0 add test
mir3636
parents: 182
diff changeset
28 stack->data = (union Data*)task;
215
50d0d1b468aa Fix stack_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 208
diff changeset
29 goto meta(context, stack->stack->Stack.push);
182
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 }
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31
202
42dbe54332a0 add test
mir3636
parents: 182
diff changeset
32 __code stack_test2_stub(struct Context* context) {
207
7470b8382672 Fix compile error to stack_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 205
diff changeset
33 assert(context->data[D_Stack]->Stack.stack->Stack.stack->SingleLinkedStack.top->data->Task.code == C_stack_test1);
182
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 Task* task = &ALLOCATE(context, Task)->Task;
202
42dbe54332a0 add test
mir3636
parents: 182
diff changeset
35 goto stack_test2(context,
182
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 task,
215
50d0d1b468aa Fix stack_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 208
diff changeset
37 &context->data[D_Stack]->Stack);
182
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 }
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39
202
42dbe54332a0 add test
mir3636
parents: 182
diff changeset
40 __code stack_test3(struct Context* context, struct Stack* stack) {
205
1b15f02ec713 Fix queue test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 202
diff changeset
41 stack->next = C_stack_test4;
215
50d0d1b468aa Fix stack_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 208
diff changeset
42 goto meta(context, stack->stack->Stack.pop);
182
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 }
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44
202
42dbe54332a0 add test
mir3636
parents: 182
diff changeset
45 __code stack_test3_stub(struct Context* context) {
207
7470b8382672 Fix compile error to stack_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 205
diff changeset
46 assert(context->data[D_Stack]->Stack.stack->Stack.stack->SingleLinkedStack.top->data->Task.code == C_stack_test2);
202
42dbe54332a0 add test
mir3636
parents: 182
diff changeset
47 goto stack_test3(context,
215
50d0d1b468aa Fix stack_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 208
diff changeset
48 &context->data[D_Stack]->Stack);
182
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 }
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50
202
42dbe54332a0 add test
mir3636
parents: 182
diff changeset
51 __code stack_test4(struct Context* context) {
215
50d0d1b468aa Fix stack_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 208
diff changeset
52 goto meta(context, C_exit_code);
182
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 }
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54
202
42dbe54332a0 add test
mir3636
parents: 182
diff changeset
55 __code stack_test4_stub(struct Context* context) {
215
50d0d1b468aa Fix stack_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 208
diff changeset
56 assert(context->data[D_Stack]->Stack.data->Task.code == C_stack_test2);
207
7470b8382672 Fix compile error to stack_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 205
diff changeset
57 assert(context->data[D_Stack]->Stack.stack->Stack.stack->SingleLinkedStack.top->data->Task.code == C_stack_test1);
205
1b15f02ec713 Fix queue test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 202
diff changeset
58 goto stack_test4(context);
182
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 }
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 int main(int argc, char const* argv[]) {
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 struct Context* main_context = NEW(struct Context);
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 initContext(main_context);
205
1b15f02ec713 Fix queue test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 202
diff changeset
64 main_context->next = C_stack_test1;
182
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 goto start_code(main_context);
57a11c15ff4c Add queue_test
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 }