Repository: incubator-mynewt-core Updated Branches: refs/heads/develop e582f6784 -> b774aa1b1
Use correct stacksize for OS test handlers An incorrect value was being used for stacksize when calling init_task in mutex & sem testcases. Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/b774aa1b Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/b774aa1b Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/b774aa1b Branch: refs/heads/develop Commit: b774aa1b1b0b32dc74eeb84b84b8d9d960063b9b Parents: e582f67 Author: Peter Snyder <[email protected]> Authored: Thu Jan 12 14:42:36 2017 -0800 Committer: Peter Snyder <[email protected]> Committed: Thu Jan 12 14:42:36 2017 -0800 ---------------------------------------------------------------------- apps/testbench/src/testbench.c | 27 ++++++-------------- apps/testbench/src/testbench.h | 15 ++++++++--- kernel/os/test/src/mutex_test.c | 4 +++ kernel/os/test/src/os_test.c | 5 ++++ kernel/os/test/src/os_test_priv.h | 4 +++ kernel/os/test/src/sem_test.c | 4 +++ .../os/test/src/testcases/os_mutex_test_basic.c | 2 +- .../test/src/testcases/os_mutex_test_case_1.c | 10 ++++---- .../test/src/testcases/os_mutex_test_case_2.c | 16 ++++++------ .../os/test/src/testcases/os_sem_test_basic.c | 3 +-- .../os/test/src/testcases/os_sem_test_case_1.c | 9 +++---- .../os/test/src/testcases/os_sem_test_case_2.c | 12 +++------ .../os/test/src/testcases/os_sem_test_case_3.c | 12 +++------ .../os/test/src/testcases/os_sem_test_case_4.c | 12 +++------ 14 files changed, 66 insertions(+), 69 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/b774aa1b/apps/testbench/src/testbench.c ---------------------------------------------------------------------- diff --git a/apps/testbench/src/testbench.c b/apps/testbench/src/testbench.c index f563638..47bddb4 100644 --- a/apps/testbench/src/testbench.c +++ b/apps/testbench/src/testbench.c @@ -125,25 +125,10 @@ char runtest_token[RUNTEST_REQ_SIZE]; static int testbench_runtests(struct os_event *ev); static void testbench_test_complete(); -#if 0 -void -testbench_ts_init(void *arg) -{ - return; -} - -void -testbench_ts_pretest(void* arg) -{ - return; -} - -void -testbench_ts_posttest(void* arg) -{ - return; -} -#endif +extern uint32_t stack1_size; +extern uint32_t stack2_size; +extern uint32_t stack3_size; +extern uint32_t stack4_size; void testbench_ts_pass(char *msg, int msg_len, void *arg) @@ -324,15 +309,19 @@ init_tasks(void) */ stack1 = malloc(sizeof(os_stack_t) * TASK1_STACK_SIZE); assert(stack1); + stack1_size = TASK1_STACK_SIZE; stack2 = malloc(sizeof(os_stack_t) * TASK2_STACK_SIZE); assert(stack2); + stack2_size = TASK2_STACK_SIZE; stack3 = malloc(sizeof(os_stack_t) * TASK3_STACK_SIZE); assert(stack3); + stack3_size = TASK3_STACK_SIZE; stack4 = malloc(sizeof(os_stack_t) * TASK4_STACK_SIZE); assert(stack4); + stack4_size = TASK4_STACK_SIZE; teststack = malloc(sizeof(os_stack_t) * NMGRTASK_STACK_SIZE); assert(teststack); http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/b774aa1b/apps/testbench/src/testbench.h ---------------------------------------------------------------------- diff --git a/apps/testbench/src/testbench.h b/apps/testbench/src/testbench.h index 85b6470..4c15b5d 100644 --- a/apps/testbench/src/testbench.h +++ b/apps/testbench/src/testbench.h @@ -146,17 +146,24 @@ struct os_task task3; struct os_task task4; #endif +/* + * stacks are re-used to minimize space on the target + * Set the size to the biggest we'll need to run tests + * We assume that no more than 4 test tasks are needed + */ +#define TESTHANDLER_STACK_SIZE OS_STACK_ALIGN(256) + extern os_stack_t *stack1; -#define TASK1_STACK_SIZE TESTTASK_STACK_SIZE +#define TASK1_STACK_SIZE TESTHANDLER_STACK_SIZE extern os_stack_t *stack2; -#define TASK2_STACK_SIZE TESTTASK_STACK_SIZE +#define TASK2_STACK_SIZE TESTHANDLER_STACK_SIZE extern os_stack_t *stack3; -#define TASK3_STACK_SIZE TESTTASK_STACK_SIZE +#define TASK3_STACK_SIZE TESTHANDLER_STACK_SIZE extern os_stack_t *stack4; -#define TASK4_STACK_SIZE TESTTASK_STACK_SIZE +#define TASK4_STACK_SIZE TESTHANDLER_STACK_SIZE /* * Generic routines for testsuite and testcase callbacks http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/b774aa1b/kernel/os/test/src/mutex_test.c ---------------------------------------------------------------------- diff --git a/kernel/os/test/src/mutex_test.c b/kernel/os/test/src/mutex_test.c index feef13c..6f8ee69 100644 --- a/kernel/os/test/src/mutex_test.c +++ b/kernel/os/test/src/mutex_test.c @@ -363,12 +363,16 @@ os_mutex_test_init(void *arg) #if MYNEWT_VAL(SELFTEST) stack1 = malloc(sizeof(os_stack_t) * MUTEX_TEST_STACK_SIZE); assert(stack1); + stack1_size = MUTEX_TEST_STACK_SIZE; stack2 = malloc(sizeof(os_stack_t) * MUTEX_TEST_STACK_SIZE); assert(stack2); + stack2_size = MUTEX_TEST_STACK_SIZE; stack3 = malloc(sizeof(os_stack_t) * MUTEX_TEST_STACK_SIZE); assert(stack3); + stack3_size = MUTEX_TEST_STACK_SIZE; stack4 = malloc(sizeof(os_stack_t) * MUTEX_TEST_STACK_SIZE); assert(stack4); + stack4_size = MUTEX_TEST_STACK_SIZE; #endif } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/b774aa1b/kernel/os/test/src/os_test.c ---------------------------------------------------------------------- diff --git a/kernel/os/test/src/os_test.c b/kernel/os/test/src/os_test.c index 7bb5028..2e5bf9d 100644 --- a/kernel/os/test/src/os_test.c +++ b/kernel/os/test/src/os_test.c @@ -30,6 +30,11 @@ #include <sys/time.h> #include "os/os.h" +uint32_t stack1_size; +uint32_t stack2_size; +uint32_t stack3_size; +uint32_t stack4_size; + /* * Most of this file is the driver for the kernel selftest running in sim * In the sim environment, we can initialize and restart mynewt at will http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/b774aa1b/kernel/os/test/src/os_test_priv.h ---------------------------------------------------------------------- diff --git a/kernel/os/test/src/os_test_priv.h b/kernel/os/test/src/os_test_priv.h index dc676ff..c892ec8 100644 --- a/kernel/os/test/src/os_test_priv.h +++ b/kernel/os/test/src/os_test_priv.h @@ -42,18 +42,22 @@ extern "C" { */ extern struct os_task task1; extern os_stack_t *stack1; +extern uint32_t stack1_size; #define TASK1_PRIO (20) extern struct os_task task2; extern os_stack_t *stack2; +extern uint32_t stack2_size; #define TASK2_PRIO (21) extern struct os_task task3; extern os_stack_t *stack3; +extern uint32_t stack3_size; #define TASK3_PRIO (22) extern struct os_task task4; extern os_stack_t *stack4; +extern uint32_t stack4_size; #define TASK4_PRIO (23) void os_test_restart(void); http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/b774aa1b/kernel/os/test/src/sem_test.c ---------------------------------------------------------------------- diff --git a/kernel/os/test/src/sem_test.c b/kernel/os/test/src/sem_test.c index 1daf49f..98348b4 100644 --- a/kernel/os/test/src/sem_test.c +++ b/kernel/os/test/src/sem_test.c @@ -303,12 +303,16 @@ os_sem_test_init(void *arg) #if MYNEWT_VAL(SELFTEST) stack1 = malloc(sizeof(os_stack_t) * SEM_TEST_STACK_SIZE); assert(stack1); + stack1_size = SEM_TEST_STACK_SIZE; stack2 = malloc(sizeof(os_stack_t) * SEM_TEST_STACK_SIZE); assert(stack2); + stack2_size = SEM_TEST_STACK_SIZE; stack3 = malloc(sizeof(os_stack_t) * SEM_TEST_STACK_SIZE); assert(stack3); + stack3_size = SEM_TEST_STACK_SIZE; stack4 = malloc(sizeof(os_stack_t) * SEM_TEST_STACK_SIZE); assert(stack4); + stack4_size = SEM_TEST_STACK_SIZE; #endif } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/b774aa1b/kernel/os/test/src/testcases/os_mutex_test_basic.c ---------------------------------------------------------------------- diff --git a/kernel/os/test/src/testcases/os_mutex_test_basic.c b/kernel/os/test/src/testcases/os_mutex_test_basic.c index 9fa1d9d..a0c63e4 100644 --- a/kernel/os/test/src/testcases/os_mutex_test_basic.c +++ b/kernel/os/test/src/testcases/os_mutex_test_basic.c @@ -23,5 +23,5 @@ TEST_CASE(os_mutex_test_basic) os_mutex_init(&g_mutex1); os_task_init(&task1, "task1", mutex_test_basic_handler, NULL, - TASK1_PRIO, OS_WAIT_FOREVER, stack1, sizeof(stack1)); + TASK1_PRIO, OS_WAIT_FOREVER, stack1, stack1_size); } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/b774aa1b/kernel/os/test/src/testcases/os_mutex_test_case_1.c ---------------------------------------------------------------------- diff --git a/kernel/os/test/src/testcases/os_mutex_test_case_1.c b/kernel/os/test/src/testcases/os_mutex_test_case_1.c index ee326e8..a84549d 100644 --- a/kernel/os/test/src/testcases/os_mutex_test_case_1.c +++ b/kernel/os/test/src/testcases/os_mutex_test_case_1.c @@ -33,11 +33,11 @@ TEST_CASE(os_mutex_test_case_1) TEST_ASSERT(rc == 0); os_task_init(&task1, "task1", mutex_test1_task1_handler, NULL, - TASK1_PRIO, OS_WAIT_FOREVER, stack1, sizeof(stack1)); + TASK1_PRIO, OS_WAIT_FOREVER, stack1, stack1_size); - os_task_init(&task2, "task2", mutex_task2_handler, NULL, TASK2_PRIO, - OS_WAIT_FOREVER, stack2, sizeof(stack2)); + os_task_init(&task2, "task2", mutex_task2_handler, NULL, + TASK2_PRIO, OS_WAIT_FOREVER, stack2, stack2_size); - os_task_init(&task3, "task3", mutex_task3_handler, NULL, TASK3_PRIO, - OS_WAIT_FOREVER, stack3, sizeof(stack3)); + os_task_init(&task3, "task3", mutex_task3_handler, NULL, + TASK3_PRIO, OS_WAIT_FOREVER, stack3, stack3_size); } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/b774aa1b/kernel/os/test/src/testcases/os_mutex_test_case_2.c ---------------------------------------------------------------------- diff --git a/kernel/os/test/src/testcases/os_mutex_test_case_2.c b/kernel/os/test/src/testcases/os_mutex_test_case_2.c index 757dd4c..eb806dd 100644 --- a/kernel/os/test/src/testcases/os_mutex_test_case_2.c +++ b/kernel/os/test/src/testcases/os_mutex_test_case_2.c @@ -27,15 +27,15 @@ TEST_CASE(os_mutex_test_case_2) os_mutex_init(&g_mutex1); os_mutex_init(&g_mutex2); - os_task_init(&task1, "task1", mutex_test2_task1_handler, NULL, - TASK1_PRIO, OS_WAIT_FOREVER, stack1, sizeof(stack1)); + os_task_init(&task1, "task1", mutex_test2_task1_handler, NULL, TASK1_PRIO, + OS_WAIT_FOREVER, stack1, stack1_size); - os_task_init(&task2, "task2", mutex_task2_handler, NULL, TASK2_PRIO, - OS_WAIT_FOREVER, stack2, sizeof(stack2)); + os_task_init(&task2, "task2", mutex_task2_handler, NULL, TASK2_PRIO, + OS_WAIT_FOREVER, stack2, stack2_size); - os_task_init(&task3, "task3", mutex_task3_handler, NULL, TASK3_PRIO, - OS_WAIT_FOREVER, stack3, sizeof(stack3)); + os_task_init(&task3, "task3", mutex_task3_handler, NULL, TASK3_PRIO, + OS_WAIT_FOREVER, stack3, stack3_size); - os_task_init(&task4, "task4", mutex_task4_handler, NULL, TASK4_PRIO, - OS_WAIT_FOREVER, stack4, sizeof(stack4)); + os_task_init(&task4, "task4", mutex_task4_handler, NULL, TASK4_PRIO, + OS_WAIT_FOREVER, stack4, stack4_size); } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/b774aa1b/kernel/os/test/src/testcases/os_sem_test_basic.c ---------------------------------------------------------------------- diff --git a/kernel/os/test/src/testcases/os_sem_test_basic.c b/kernel/os/test/src/testcases/os_sem_test_basic.c index 7715f7d..bee6675 100644 --- a/kernel/os/test/src/testcases/os_sem_test_basic.c +++ b/kernel/os/test/src/testcases/os_sem_test_basic.c @@ -26,6 +26,5 @@ TEST_CASE(os_sem_test_basic) TEST_ASSERT(err == OS_OK); os_task_init(&task1, "task1", sem_test_basic_handler, NULL, - TASK1_PRIO, OS_WAIT_FOREVER, stack1, - sizeof(stack1)); + TASK1_PRIO, OS_WAIT_FOREVER, stack1, stack1_size); } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/b774aa1b/kernel/os/test/src/testcases/os_sem_test_case_1.c ---------------------------------------------------------------------- diff --git a/kernel/os/test/src/testcases/os_sem_test_case_1.c b/kernel/os/test/src/testcases/os_sem_test_case_1.c index c736e99..2417365 100644 --- a/kernel/os/test/src/testcases/os_sem_test_case_1.c +++ b/kernel/os/test/src/testcases/os_sem_test_case_1.c @@ -26,14 +26,11 @@ TEST_CASE(os_sem_test_case_1) TEST_ASSERT(err == OS_OK); os_task_init(&task1, "task1", sem_test_1_task1_handler, NULL, - TASK1_PRIO, OS_WAIT_FOREVER, stack1, - sizeof(stack1)); + TASK1_PRIO, OS_WAIT_FOREVER, stack1, stack1_size); os_task_init(&task2, "task2", sem_test_1_task2_handler, NULL, - TASK2_PRIO, OS_WAIT_FOREVER, stack2, - sizeof(stack2)); + TASK2_PRIO, OS_WAIT_FOREVER, stack2, stack2_size); os_task_init(&task3, "task3", sem_test_1_task3_handler, NULL, - TASK3_PRIO, OS_WAIT_FOREVER, stack3, - sizeof(stack3)); + TASK3_PRIO, OS_WAIT_FOREVER, stack3, stack3_size); } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/b774aa1b/kernel/os/test/src/testcases/os_sem_test_case_2.c ---------------------------------------------------------------------- diff --git a/kernel/os/test/src/testcases/os_sem_test_case_2.c b/kernel/os/test/src/testcases/os_sem_test_case_2.c index a816e06..47b838e 100644 --- a/kernel/os/test/src/testcases/os_sem_test_case_2.c +++ b/kernel/os/test/src/testcases/os_sem_test_case_2.c @@ -26,18 +26,14 @@ TEST_CASE(os_sem_test_case_2) TEST_ASSERT(err == OS_OK); os_task_init(&task1, "task1", sem_test_sleep_task_handler, NULL, - TASK1_PRIO, OS_WAIT_FOREVER, stack1, - sizeof(stack1)); + TASK1_PRIO, OS_WAIT_FOREVER, stack1, stack1_size); os_task_init(&task2, "task2", sem_test_2_task2_handler, NULL, - TASK2_PRIO, OS_WAIT_FOREVER, stack2, - sizeof(stack2)); + TASK2_PRIO, OS_WAIT_FOREVER, stack2, stack2_size); os_task_init(&task3, "task3", sem_test_2_task3_handler, NULL, - TASK3_PRIO, OS_WAIT_FOREVER, stack3, - sizeof(stack3)); + TASK3_PRIO, OS_WAIT_FOREVER, stack3, stack3_size); os_task_init(&task4, "task4", sem_test_2_task4_handler, NULL, - TASK4_PRIO, OS_WAIT_FOREVER, stack4, - sizeof(stack4)); + TASK4_PRIO, OS_WAIT_FOREVER, stack4, stack4_size); } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/b774aa1b/kernel/os/test/src/testcases/os_sem_test_case_3.c ---------------------------------------------------------------------- diff --git a/kernel/os/test/src/testcases/os_sem_test_case_3.c b/kernel/os/test/src/testcases/os_sem_test_case_3.c index 3b0a0ea..2108491 100644 --- a/kernel/os/test/src/testcases/os_sem_test_case_3.c +++ b/kernel/os/test/src/testcases/os_sem_test_case_3.c @@ -26,18 +26,14 @@ TEST_CASE(os_sem_test_case_3) TEST_ASSERT(err == OS_OK); os_task_init(&task1, "task1", sem_test_sleep_task_handler, NULL, - TASK1_PRIO, OS_WAIT_FOREVER, stack1, - sizeof(stack1)); + TASK1_PRIO, OS_WAIT_FOREVER, stack1, stack1_size); os_task_init(&task2, "task2", sem_test_3_task2_handler, NULL, - TASK2_PRIO, OS_WAIT_FOREVER, stack2, - sizeof(stack2)); + TASK2_PRIO, OS_WAIT_FOREVER, stack2, stack2_size); os_task_init(&task3, "task3", sem_test_3_task3_handler, NULL, - TASK3_PRIO, OS_WAIT_FOREVER, stack3, - sizeof(stack3)); + TASK3_PRIO, OS_WAIT_FOREVER, stack3, stack3_size); os_task_init(&task4, "task4", sem_test_3_task4_handler, NULL, - TASK4_PRIO, OS_WAIT_FOREVER, stack4, - sizeof(stack4)); + TASK4_PRIO, OS_WAIT_FOREVER, stack4, stack4_size); } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/b774aa1b/kernel/os/test/src/testcases/os_sem_test_case_4.c ---------------------------------------------------------------------- diff --git a/kernel/os/test/src/testcases/os_sem_test_case_4.c b/kernel/os/test/src/testcases/os_sem_test_case_4.c index 3a04a19..0ddd9b7 100644 --- a/kernel/os/test/src/testcases/os_sem_test_case_4.c +++ b/kernel/os/test/src/testcases/os_sem_test_case_4.c @@ -26,18 +26,14 @@ TEST_CASE(os_sem_test_case_4) TEST_ASSERT(err == OS_OK); os_task_init(&task1, "task1", sem_test_sleep_task_handler, NULL, - TASK1_PRIO, OS_WAIT_FOREVER, stack1, - sizeof(stack1)); + TASK1_PRIO, OS_WAIT_FOREVER, stack1, stack1_size); os_task_init(&task2, "task2", sem_test_4_task2_handler, NULL, - TASK2_PRIO, OS_WAIT_FOREVER, stack2, - sizeof(stack2)); + TASK2_PRIO, OS_WAIT_FOREVER, stack2, stack2_size); os_task_init(&task3, "task3", sem_test_4_task3_handler, NULL, - TASK3_PRIO, OS_WAIT_FOREVER, stack3, - sizeof(stack3)); + TASK3_PRIO, OS_WAIT_FOREVER, stack3, stack3_size); os_task_init(&task4, "task4", sem_test_4_task4_handler, NULL, - TASK4_PRIO, OS_WAIT_FOREVER, stack4, - sizeof(stack4)); + TASK4_PRIO, OS_WAIT_FOREVER, stack4, stack4_size); }
