Merge commit '3d4813d99196bb349eccd50a925e2addc8f1622c' into develop

This commit is contained in:
Ameya Keshava Mallya
2026-01-21 20:28:14 +00:00
295 changed files with 27704 additions and 3800 deletions
@@ -402,6 +402,9 @@ bool ProcessIsolatedTestRunner::executeAllTests(const ExecutionOptions& options)
continue;
}
// Flush all output before fork to prevent child from inheriting unflushed buffers
fflush(NULL);
pid_t pid = fork();
if(pid == 0)
@@ -435,6 +438,10 @@ bool ProcessIsolatedTestRunner::executeAllTests(const ExecutionOptions& options)
{
INFO("Running isolated test '%s' (PID: %d)\n", testConfig.name.c_str(), pid);
}
// Flush parent's output before reading from child pipes to ensure proper ordering
fflush(stdout);
fflush(stderr);
int status;
CapturedOutput output = captureProcessOutput(stdout_fd, stderr_fd, pid, &status);
@@ -442,6 +449,9 @@ bool ProcessIsolatedTestRunner::executeAllTests(const ExecutionOptions& options)
auto duration
= std::chrono::duration_cast<std::chrono::milliseconds>(endTime - startTime);
// Display captured output BEFORE status messages for proper sequencing
displayCapturedOutput(output, testConfig.name);
TestResult testResult;
testResult.testName = testConfig.name;
testResult.processId = pid;
@@ -530,8 +540,6 @@ bool ProcessIsolatedTestRunner::executeAllTests(const ExecutionOptions& options)
testResult.errorMessage = "Failed to wait for process";
}
displayCapturedOutput(output, testConfig.name);
recordTestResult(testResult);
// Stop on first failure if requested