diff --git a/tests/UnitTests/subprocess1.cpp b/tests/UnitTests/subprocess1.cpp index 1ed619b93..e8db524a1 100644 --- a/tests/UnitTests/subprocess1.cpp +++ b/tests/UnitTests/subprocess1.cpp @@ -9,14 +9,16 @@ int main(int argc, char* argv[]) { { - Nz::File file(Nz::Utf8Path("step1_success.txt"), Nz::OpenMode::Write); + Nz::File file(Nz::Utf8Path("step1_success.txt"), Nz::OpenMode::Write | Nz::OpenMode::Unbuffered); file.Write("1"); + file.Flush(); } for (int i = 1; i < argc; ++i) { - Nz::File file(Nz::Utf8Path(Nz::Format("step2_param{}.txt", i)), Nz::OpenMode::Write); + Nz::File file(Nz::Utf8Path(Nz::Format("step2_param{}.txt", i)), Nz::OpenMode::Write | Nz::OpenMode::Unbuffered); file.Write(argv[i]); + file.Flush(); } std::vector parameters; @@ -25,13 +27,15 @@ int main(int argc, char* argv[]) Nz::Result result = Nz::Process::SpawnDetached("../UnitTests_sub2", parameters); if (result) { - Nz::File file(Nz::Utf8Path("step3_pid.txt"), Nz::OpenMode::Write); + Nz::File file(Nz::Utf8Path("step3_pid.txt"), Nz::OpenMode::Write | Nz::OpenMode::Unbuffered); file.Write(std::to_string(result.GetValue())); + file.Flush(); } else { - Nz::File file(Nz::Utf8Path("step3_failure.txt"), Nz::OpenMode::Write); - file.Write(result.GetError()); + Nz::File errFile(Nz::Utf8Path("step3_failure.txt"), Nz::OpenMode::Write | Nz::OpenMode::Unbuffered); + errFile.Write(result.GetError()); + errFile.Flush(); } // Wait for our child process to start and check for our existence diff --git a/tests/UnitTests/subprocess2.cpp b/tests/UnitTests/subprocess2.cpp index 808580346..c823f878e 100644 --- a/tests/UnitTests/subprocess2.cpp +++ b/tests/UnitTests/subprocess2.cpp @@ -12,8 +12,9 @@ int main(int argc, char* argv[]) { if (argc != 2) { - Nz::File errFile(Nz::Utf8Path("step4_failure.txt"), Nz::OpenMode::Write); + Nz::File errFile(Nz::Utf8Path("step4_failure.txt"), Nz::OpenMode::Write | Nz::OpenMode::Unbuffered); errFile.Write(Nz::Format("unexpected argc: {}", argc)); + errFile.Flush(); return EXIT_FAILURE; } @@ -21,34 +22,39 @@ int main(int argc, char* argv[]) Nz::Pid pid; if (auto pidParse = std::from_chars(argv[1], argv[1] + std::strlen(argv[1]), pid); pidParse.ec != std::errc()) { - Nz::File errFile(Nz::Utf8Path("step4_failure.txt"), Nz::OpenMode::Write); + Nz::File errFile(Nz::Utf8Path("step4_failure.txt"), Nz::OpenMode::Write | Nz::OpenMode::Unbuffered); errFile.Write(Nz::Format("invalid pid: {}", argv[1])); + errFile.Flush(); return EXIT_FAILURE; } - Nz::File successFile4(Nz::Utf8Path("step4_success.txt"), Nz::OpenMode::Write); + Nz::File successFile4(Nz::Utf8Path("step4_success.txt"), Nz::OpenMode::Write | Nz::OpenMode::Unbuffered); successFile4.Write("1"); + successFile4.Flush(); Nz::Result result = Nz::Process::Exists(pid); if (!result) { - Nz::File errFile(Nz::Utf8Path("step5_failure.txt"), Nz::OpenMode::Write); + Nz::File errFile(Nz::Utf8Path("step5_failure.txt"), Nz::OpenMode::Write | Nz::OpenMode::Unbuffered); errFile.Write(Nz::Format("failed to retrieve parent process status: {}", result.GetError())); + errFile.Flush(); return EXIT_FAILURE; } if (!result.GetValue()) { - Nz::File file(Nz::Utf8Path("step5_failure.txt"), Nz::OpenMode::Write); - file.Write("parent process is already dead"); + Nz::File errFile(Nz::Utf8Path("step5_failure.txt"), Nz::OpenMode::Write | Nz::OpenMode::Unbuffered); + errFile.Write("parent process is already dead"); + errFile.Flush(); return EXIT_FAILURE; } - Nz::File successFile5(Nz::Utf8Path("step5_success.txt"), Nz::OpenMode::Write); + Nz::File successFile5(Nz::Utf8Path("step5_success.txt"), Nz::OpenMode::Write | Nz::OpenMode::Unbuffered); successFile5.Write("1"); + successFile5.Flush(); // Wait until parent dies std::this_thread::sleep_for(std::chrono::milliseconds(500)); @@ -56,22 +62,25 @@ int main(int argc, char* argv[]) result = Nz::Process::Exists(pid); if (!result) { - Nz::File errFile(Nz::Utf8Path("step6_failure.txt"), Nz::OpenMode::Write); + Nz::File errFile(Nz::Utf8Path("step6_failure.txt"), Nz::OpenMode::Write | Nz::OpenMode::Unbuffered); errFile.Write(Nz::Format("failed to retrieve parent process status after waiting: {}", result.GetError())); + errFile.Flush(); return EXIT_FAILURE; } if (result.GetValue()) { - Nz::File errFile(Nz::Utf8Path("step6_failure.txt"), Nz::OpenMode::Write); + Nz::File errFile(Nz::Utf8Path("step6_failure.txt"), Nz::OpenMode::Write | Nz::OpenMode::Unbuffered); errFile.Write("parent process is still alive"); + errFile.Flush(); return EXIT_FAILURE; } - Nz::File successFile6(Nz::Utf8Path("step6_success.txt"), Nz::OpenMode::Write); + Nz::File successFile6(Nz::Utf8Path("step6_success.txt"), Nz::OpenMode::Write | Nz::OpenMode::Unbuffered); successFile6.Write("1"); + successFile6.Flush(); // Wait for the unit tests process to check our existence std::this_thread::sleep_for(std::chrono::milliseconds(3000));