summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-08-04 12:27:54 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-08-04 15:48:32 +0200
commit81631dea2ee08ab0bf8a1e353b452076c85b3d3d (patch)
tree7284b41c161c37bd67811bc4aaeeff4415b1e186
parent9566538823b2ae00e8c7a60fd704a0d05d80a35f (diff)
downloadrtems-81631dea2ee08ab0bf8a1e353b452076c85b3d3d.tar.bz2
smpschededf02: Document reset() function
-rw-r--r--testsuites/smptests/smpschededf02/init.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/testsuites/smptests/smpschededf02/init.c b/testsuites/smptests/smpschededf02/init.c
index cd8895edd5..fae2d76bf3 100644
--- a/testsuites/smptests/smpschededf02/init.c
+++ b/testsuites/smptests/smpschededf02/init.c
@@ -216,6 +216,12 @@ static void set_affinity(rtems_id id, uint32_t cpu_set_32)
rtems_test_assert(sc == RTEMS_SUCCESSFUL);
}
+/*
+ * The goal of the reset() function is to bring back a defined initial system
+ * state for each test case. All tasks of the test shall be suspended. The
+ * idle threads shall be ordered in the scheduled chain according to the CPU
+ * index.
+ */
static void reset(test_context *ctx)
{
rtems_status_code sc;
@@ -236,7 +242,13 @@ static void reset(test_context *ctx)
rtems_test_assert(sc == RTEMS_SUCCESSFUL || sc == RTEMS_INCORRECT_STATE);
}
- /* Order the idle threads explicitly */
+ /*
+ * Order the idle threads explicitly. Test cases may move the idle threads
+ * around. We have to ensure that the idle threads are ordered according to
+ * the CPU index, otherwise the processor allocations cannot be specified for
+ * a test case. The idle threads of a scheduler have all the same priority,
+ * so we have to take the FIFO ordering within a priority group into account.
+ */
for (i = 0; i < CPU_COUNT; ++i) {
const Per_CPU_Control *c;
const Thread_Control *h;