diff options
-rw-r--r-- | cts/mutex/cts.tasklist | 1 | ||||
-rw-r--r-- | cts/mutex/cts.testlist | 9 | ||||
-rw-r--r-- | cts/mutex/dut.c | 14 | ||||
-rw-r--r-- | cts/mutex/th.c | 14 | ||||
-rwxr-xr-x | util/run_ects.sh | 2 |
5 files changed, 22 insertions, 18 deletions
diff --git a/cts/mutex/cts.tasklist b/cts/mutex/cts.tasklist index 1c68b8d30a..32cfb865b9 100644 --- a/cts/mutex/cts.tasklist +++ b/cts/mutex/cts.tasklist @@ -19,5 +19,4 @@ TASK_ALWAYS(MTX3B, mutex_random_task, NULL, 384) \ TASK_ALWAYS(MTX3A, mutex_random_task, NULL, 384) \ TASK_ALWAYS(MTX2, mutex_second_task, NULL, 384) \ - TASK_ALWAYS(MTX1, mutex_main_task, NULL, 384) \ TASK_ALWAYS(CTS, cts_task, NULL, TASK_STACK_SIZE) diff --git a/cts/mutex/cts.testlist b/cts/mutex/cts.testlist new file mode 100644 index 0000000000..5b1cdb1dae --- /dev/null +++ b/cts/mutex/cts.testlist @@ -0,0 +1,9 @@ +/* Copyright 2016 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +/* + * Test mutex lock and unlock + */ +CTS_TEST(lock_unlock_test,,,,)
\ No newline at end of file diff --git a/cts/mutex/dut.c b/cts/mutex/dut.c index c70e7df844..4fcea73fdf 100644 --- a/cts/mutex/dut.c +++ b/cts/mutex/dut.c @@ -8,6 +8,7 @@ #include "console.h" #include "common.h" +#include "cts_common.h" #include "task.h" #include "test_util.h" #include "timer.h" @@ -50,7 +51,7 @@ int mutex_second_task(void *unused) ccprintf("MTX2: locking..."); mutex_lock(&mtx); ccprintf("done\n"); - task_wake(TASK_ID_MTX1); + task_wake(TASK_ID_CTS); ccprintf("MTX2: unlocking...\n"); mutex_unlock(&mtx); @@ -59,7 +60,7 @@ int mutex_second_task(void *unused) return EC_SUCCESS; } -int mutex_main_task(void *unused) +static enum cts_rc lock_unlock_test(void) { task_id_t id = task_get_current(); uint32_t rdelay = (uint32_t)0x0bad1dea; @@ -68,8 +69,6 @@ int mutex_main_task(void *unused) ccprintf("\n[Mutex main task %d]\n", id); - task_wait_event(0); - /* --- Lock/Unlock without contention --- */ ccprintf("No contention :"); mutex_lock(&mtx); @@ -103,15 +102,14 @@ int mutex_main_task(void *unused) rdelay = prng(rdelay); } - test_pass(); - task_wait_event(0); - return EC_SUCCESS; } +#include "cts_testlist.h" + void cts_task(void) { wait_for_task_started(); - task_wake(TASK_ID_MTX1); + cts_main_loop(tests, "Mutex"); task_wait_event(-1); } diff --git a/cts/mutex/th.c b/cts/mutex/th.c index c70e7df844..4fcea73fdf 100644 --- a/cts/mutex/th.c +++ b/cts/mutex/th.c @@ -8,6 +8,7 @@ #include "console.h" #include "common.h" +#include "cts_common.h" #include "task.h" #include "test_util.h" #include "timer.h" @@ -50,7 +51,7 @@ int mutex_second_task(void *unused) ccprintf("MTX2: locking..."); mutex_lock(&mtx); ccprintf("done\n"); - task_wake(TASK_ID_MTX1); + task_wake(TASK_ID_CTS); ccprintf("MTX2: unlocking...\n"); mutex_unlock(&mtx); @@ -59,7 +60,7 @@ int mutex_second_task(void *unused) return EC_SUCCESS; } -int mutex_main_task(void *unused) +static enum cts_rc lock_unlock_test(void) { task_id_t id = task_get_current(); uint32_t rdelay = (uint32_t)0x0bad1dea; @@ -68,8 +69,6 @@ int mutex_main_task(void *unused) ccprintf("\n[Mutex main task %d]\n", id); - task_wait_event(0); - /* --- Lock/Unlock without contention --- */ ccprintf("No contention :"); mutex_lock(&mtx); @@ -103,15 +102,14 @@ int mutex_main_task(void *unused) rdelay = prng(rdelay); } - test_pass(); - task_wait_event(0); - return EC_SUCCESS; } +#include "cts_testlist.h" + void cts_task(void) { wait_for_task_started(); - task_wake(TASK_ID_MTX1); + cts_main_loop(tests, "Mutex"); task_wait_event(-1); } diff --git a/util/run_ects.sh b/util/run_ects.sh index 9a74971235..5b0aca5d3e 100755 --- a/util/run_ects.sh +++ b/util/run_ects.sh @@ -13,7 +13,7 @@ RED='\033[0;31m' GRN='\033[0;32m' # List of tests to run. -TESTS=(meta gpio hook interrupt task timer) +TESTS=(meta gpio hook interrupt mutex task timer) usage() { cat <<END |