aboutsummaryrefslogtreecommitdiff
path: root/test/common/SubProcessTest.cpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2024-06-24 00:06:25 +0800
committercrupest <crupest@outlook.com>2024-08-18 16:50:20 +0800
commit1b30150ab79ff1338f209a8ddb54b3dc60cfb599 (patch)
tree97e183587b293ecf768476da0edf3fdcf86e4543 /test/common/SubProcessTest.cpp
parentb756bf519cda0684ec46d0d9404cbc59741ec0cb (diff)
downloadcru-1b30150ab79ff1338f209a8ddb54b3dc60cfb599.tar.gz
cru-1b30150ab79ff1338f209a8ddb54b3dc60cfb599.tar.bz2
cru-1b30150ab79ff1338f209a8ddb54b3dc60cfb599.zip
fix(SubProcess): fix pipe fs close, add tests.
NEED TEST: BufferStream, AutoReadStream, SubProcess.
Diffstat (limited to 'test/common/SubProcessTest.cpp')
-rw-r--r--test/common/SubProcessTest.cpp21
1 files changed, 18 insertions, 3 deletions
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 <catch2/catch_test_macros.hpp>
+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");
}
}