summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cts/mutex/cts.tasklist1
-rw-r--r--cts/mutex/cts.testlist9
-rw-r--r--cts/mutex/dut.c14
-rw-r--r--cts/mutex/th.c14
-rwxr-xr-xutil/run_ects.sh2
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