Commit 736e5860 authored by Rusty Russell's avatar Rusty Russell

failtest: fix silent exit when top-level return FAIL_PROBE

We were missing failed tests: if the top-level returns FAIL_PROBE, we would
exit; this should only apply to children.
parent c9ae1892
...@@ -362,7 +362,7 @@ static bool should_fail(struct failtest_call *call) ...@@ -362,7 +362,7 @@ static bool should_fail(struct failtest_call *call)
struct saved_file *files; struct saved_file *files;
/* Are we probing? */ /* Are we probing? */
if (probe_count && --probe_count == 0) if (probe_count && --probe_count == 0 && control_fd != -1)
failtest_cleanup(true, 0); failtest_cleanup(true, 0);
if (call == &unrecorded_call) if (call == &unrecorded_call)
...@@ -412,17 +412,22 @@ static bool should_fail(struct failtest_call *call) ...@@ -412,17 +412,22 @@ static bool should_fail(struct failtest_call *call)
switch (failtest_hook(history, history_num)) { switch (failtest_hook(history, history_num)) {
case FAIL_OK: case FAIL_OK:
break; break;
case FAIL_PROBE:
/* Already down probe path? Stop now. */
if (!probe_count) {
/* FIXME: We should run *parent* and
* run probe until calls match up again. */
probe_count = 3;
break;
} else {
/* Child should give up now. */
if (control_fd != -1)
failtest_cleanup(true, 0);
/* Parent, don't fail again. */
}
case FAIL_DONT_FAIL: case FAIL_DONT_FAIL:
call->fail = false; call->fail = false;
return false; return false;
case FAIL_PROBE:
/* Already down probe path? Stop now. */
if (probe_count)
failtest_cleanup(true, 0);
/* FIXME: We should run *parent* and run probe until
* calls match up again. */
probe_count = 3;
break;
default: default:
abort(); abort();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment