Mercurial > hg > GearsTemplate
view src/parallel_execution/test/cbc_stack_test.c @ 278:23767f714f4a
fix generate_stub
author | mir3636 |
---|---|
date | Thu, 02 Feb 2017 20:27:56 +0900 |
parents | 4ccf776db994 |
children |
line wrap: on
line source
#include "../context.h" #include <assert.h> __code stack_test1(struct Context* context, struct Task* task, struct Stack* stack) { task->code = C_stack_test1; stack->next = C_stack_test2; stack->data = (union Data*)task; goto meta(context, stack->stack->Stack.push); } __code stack_test1_stub(struct Context* context) { Task* task = &ALLOCATE(context, Task)->Task; struct Stack* stack = &(createSingleLinkedStack(context)->Stack); assert(stack->stack->SingleLinkedStack.top == NULL); context->data[D_Stack]->Stack.stack = (union Data*)stack; goto stack_test1(context, task, &context->data[D_Stack]->Stack); } __code stack_test2(struct Context* context, struct Task* task, struct Stack* stack) { task->code = C_stack_test2; stack->next = C_stack_test3; stack->data = (union Data*)task; goto meta(context, stack->stack->Stack.push); } __code stack_test2_stub(struct Context* context) { assert(context->data[D_Stack]->Stack.stack->Stack.stack->SingleLinkedStack.top->data->Task.code == C_stack_test1); Task* task = &ALLOCATE(context, Task)->Task; goto stack_test2(context, task, &context->data[D_Stack]->Stack); } __code stack_test3(struct Context* context, struct Stack* stack) { stack->next = C_stack_test4; goto meta(context, stack->stack->Stack.pop); } __code stack_test3_stub(struct Context* context) { assert(context->data[D_Stack]->Stack.stack->Stack.stack->SingleLinkedStack.top->data->Task.code == C_stack_test2); goto stack_test3(context, &context->data[D_Stack]->Stack); } __code stack_test4(struct Context* context) { goto meta(context, C_exit_code); } __code stack_test4_stub(struct Context* context) { assert(context->data[D_Stack]->Stack.data->Task.code == C_stack_test2); assert(context->data[D_Stack]->Stack.stack->Stack.stack->SingleLinkedStack.top->data->Task.code == C_stack_test1); goto stack_test4(context); } int main(int argc, char const* argv[]) { struct Context* main_context = NEW(struct Context); initContext(main_context); main_context->next = C_stack_test1; goto start_code(main_context); }