diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-09-03 12:42:10 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-09-03 12:42:10 +0800 |
commit | efa1266f10e90c0c46f47cc06645422142cb2d9f (patch) | |
tree | 3d8cfefb81ce4645d150c08fc52ad646b6da80e2 /test/base/SubProcessTest.cpp | |
parent | 5e59a8e38c9f8992e6ffd9dbbde11e1f873780e1 (diff) | |
download | cru-efa1266f10e90c0c46f47cc06645422142cb2d9f.tar.gz cru-efa1266f10e90c0c46f47cc06645422142cb2d9f.tar.bz2 cru-efa1266f10e90c0c46f47cc06645422142cb2d9f.zip |
common -> base in test dir.
Diffstat (limited to 'test/base/SubProcessTest.cpp')
-rw-r--r-- | test/base/SubProcessTest.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/base/SubProcessTest.cpp b/test/base/SubProcessTest.cpp new file mode 100644 index 00000000..d353dec0 --- /dev/null +++ b/test/base/SubProcessTest.cpp @@ -0,0 +1,30 @@ +#include "cru/base/String.h" +#include "cru/base/SubProcess.h" + +#include <catch2/catch_test_macros.hpp> + +using cru::String; +using cru::SubProcess; + +TEST_CASE("SubProcess", "[subprocess]") { + 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"); + } + + 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"); + } +} |