aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/test/alloc_SUITE_data/testcase_driver.c
diff options
context:
space:
mode:
Diffstat (limited to 'erts/emulator/test/alloc_SUITE_data/testcase_driver.c')
-rw-r--r--erts/emulator/test/alloc_SUITE_data/testcase_driver.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/erts/emulator/test/alloc_SUITE_data/testcase_driver.c b/erts/emulator/test/alloc_SUITE_data/testcase_driver.c
index bc674c56b7..d04eb1bcb0 100644
--- a/erts/emulator/test/alloc_SUITE_data/testcase_driver.c
+++ b/erts/emulator/test/alloc_SUITE_data/testcase_driver.c
@@ -39,6 +39,7 @@
#define TESTCASE_FAILED 0
#define TESTCASE_SKIPPED 1
#define TESTCASE_SUCCEEDED 2
+#define TESTCASE_CONTINUE 3
typedef struct {
TestCaseState_t visible;
@@ -129,6 +130,12 @@ testcase_drv_run(ErlDrvData drv_data, char *buf, ErlDrvSizeT len)
}
switch (itcs->result) {
+ case TESTCASE_CONTINUE:
+ msg[0] = ERL_DRV_ATOM;
+ msg[1] = driver_mk_atom("continue");
+ erl_drv_output_term(itcs->port_id, msg, 2);
+ return;
+
case TESTCASE_SUCCEEDED:
result_atom = driver_mk_atom("succeeded");
break;
@@ -239,6 +246,13 @@ void testcase_skipped(TestCaseState_t *tcs, char *frmt, ...)
longjmp(itcs->done_jmp_buf, 1);
}
+void testcase_continue(TestCaseState_t *tcs)
+{
+ InternalTestCaseState_t *itcs = (InternalTestCaseState_t *) tcs;
+ itcs->result = TESTCASE_CONTINUE;
+ longjmp(itcs->done_jmp_buf, 1);
+}
+
void testcase_failed(TestCaseState_t *tcs, char *frmt, ...)
{
InternalTestCaseState_t *itcs = (InternalTestCaseState_t *) tcs;