Consider a failed process as a failed test in pg_regress

Commit 55de145d1c added reporting of child process failures, but the
test suite is still allowed to pass even if the process failed. Since
regress tests are higher level tests, a false positive is more likely
in this case so report failed test processes as failed tests.

Reported-by: Andres Freund <andres@anarazel.de>
Discussion: https://postgr.es/m/82C46B5E-1821-4039-82C2-56BCA5992989@yesql.se
Discussion: https://postgr.es/m/20221122235636.4frx7hjterq6bmls@awork3.anarazel.de
This commit is contained in:
Daniel Gustafsson 2023-02-23 09:25:47 +01:00
parent 78be04e4c6
commit 337903a16f

View file

@ -1697,19 +1697,26 @@ run_schedule(const char *schedule, test_start_function startfunc,
differ |= newdiff;
}
if (differ)
if (statuses[i] != 0)
{
status(_("FAILED"));
log_child_failure(statuses[i]);
fail_count++;
}
else
{
status(_("ok ")); /* align with FAILED */
success_count++;
}
if (statuses[i] != 0)
log_child_failure(statuses[i]);
if (differ)
{
status(_("FAILED"));
fail_count++;
}
else
{
status(_("ok ")); /* align with FAILED */
success_count++;
}
}
INSTR_TIME_SUBTRACT(stoptimes[i], starttimes[i]);
status(_(" %8.0f ms"), INSTR_TIME_GET_MILLISEC(stoptimes[i]));
@ -1778,20 +1785,26 @@ run_single_test(const char *test, test_start_function startfunc,
differ |= newdiff;
}
if (differ)
if (exit_status != 0)
{
status(_("FAILED"));
fail_count++;
log_child_failure(exit_status);
}
else
{
status(_("ok ")); /* align with FAILED */
success_count++;
if (differ)
{
status(_("FAILED"));
fail_count++;
}
else
{
status(_("ok ")); /* align with FAILED */
success_count++;
}
}
if (exit_status != 0)
log_child_failure(exit_status);
INSTR_TIME_SUBTRACT(stoptime, starttime);
status(_(" %8.0f ms"), INSTR_TIME_GET_MILLISEC(stoptime));