From 1b30150ab79ff1338f209a8ddb54b3dc60cfb599 Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 24 Jun 2024 00:06:25 +0800 Subject: fix(SubProcess): fix pipe fs close, add tests. NEED TEST: BufferStream, AutoReadStream, SubProcess. --- test/common/SubProcessTest.cpp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'test/common/SubProcessTest.cpp') diff --git a/test/common/SubProcessTest.cpp b/test/common/SubProcessTest.cpp index e42ee943..03f9d221 100644 --- a/test/common/SubProcessTest.cpp +++ b/test/common/SubProcessTest.cpp @@ -1,15 +1,30 @@ +#include "cru/common/String.h" #include "cru/common/SubProcess.h" #include +using cru::String; using cru::SubProcess; TEST_CASE("SubProcess", "[subprocess]") { - SECTION("should work.") { - SubProcess process = SubProcess::Create(u"echo", {u"abc"}); + SECTION("echo should work.") { + SubProcess process = SubProcess::Create( + String::FromUtf8(CRU_TEST_HELPER_ECHO_LOCATION), {u"abc"}); process.Wait(); REQUIRE(process.GetExitResult().IsSuccess()); auto output = process.GetStdoutStream()->ReadToEndAsUtf8String(); - REQUIRE(output == u"abc\n"); + REQUIRE(output == u"abc"); + } + + SECTION("tee should work.") { + constexpr auto str = "abc"; + SubProcess process = + SubProcess::Create(String::FromUtf8(CRU_TEST_HELPER_TEE_LOCATION)); + process.GetStdinStream()->Write(str, 3); + process.GetStdinStream()->Close(); + process.Wait(); + REQUIRE(process.GetExitResult().IsSuccess()); + auto output = process.GetStdoutStream()->ReadToEndAsUtf8String(); + REQUIRE(output == u"abc"); } } -- cgit v1.2.3