summaryrefslogtreecommitdiff
path: root/cts/task/dut.c
diff options
context:
space:
mode:
Diffstat (limited to 'cts/task/dut.c')
-rw-r--r--cts/task/dut.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/cts/task/dut.c b/cts/task/dut.c
index ff1407a00b..e34dd0babb 100644
--- a/cts/task/dut.c
+++ b/cts/task/dut.c
@@ -117,8 +117,27 @@ enum cts_rc test_task_priority(void)
return CTS_RC_SUCCESS;
}
+static void recurse(int x)
+{
+ CPRINTS("+%d", x);
+ msleep(1);
+ recurse(x + 1);
+ CPRINTS("-%d", x);
+}
+
+enum cts_rc test_stack_overflow(void);
+
#include "cts_testlist.h"
+enum cts_rc test_stack_overflow(void)
+{
+ /* recurse() is expected to overflow the stack, which leads to reboot.
+ * So, we print output proactively. */
+ CPRINTF("\n%s %d\n", tests[CTS_TEST_ID_COUNT - 1].name, CTS_RC_SUCCESS);
+ recurse(0);
+ return CTS_RC_FAILURE;
+}
+
void cts_task(void)
{
enum cts_rc rc;