aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/base/CMakeLists.txt3
-rw-r--r--test/base/SubProcessTest.cpp4
-rw-r--r--test/base/platform/win/StreamConvertTest.cpp40
-rw-r--r--test/base/platform/win/StreamTest.cpp67
-rw-r--r--test/base/platform/win/Win32FileStreamTest.cpp38
5 files changed, 68 insertions, 84 deletions
diff --git a/test/base/CMakeLists.txt b/test/base/CMakeLists.txt
index f0a7f272..731f268c 100644
--- a/test/base/CMakeLists.txt
+++ b/test/base/CMakeLists.txt
@@ -32,8 +32,7 @@ endif()
if (WIN32)
target_sources(CruBaseTest PRIVATE
- platform/win/StreamConvertTest.cpp
- platform/win/Win32FileStreamTest.cpp
+ platform/win/StreamTest.cpp
)
endif()
diff --git a/test/base/SubProcessTest.cpp b/test/base/SubProcessTest.cpp
index f241c125..192fdfcb 100644
--- a/test/base/SubProcessTest.cpp
+++ b/test/base/SubProcessTest.cpp
@@ -5,10 +5,6 @@
using cru::SubProcess;
TEST_CASE("SubProcess", "[subprocess]") {
-#ifdef _WIN32
- SKIP("SubProcess is not implemented on Windows for now.");
-#endif
-
SECTION("echo should work.") {
SubProcess process =
SubProcess::Create(CRU_TEST_HELPER_ECHO_LOCATION, {"abc"});
diff --git a/test/base/platform/win/StreamConvertTest.cpp b/test/base/platform/win/StreamConvertTest.cpp
deleted file mode 100644
index b16aa7b6..00000000
--- a/test/base/platform/win/StreamConvertTest.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-#include "cru/base/StringUtil.h"
-#include "cru/base/io/OpenFileFlag.h"
-#include "cru/base/platform/win/Base.h"
-#include "cru/base/platform/win/StreamConvert.h"
-#include "cru/base/platform/win/Win32FileStream.h"
-
-#include <catch2/catch_test_macros.hpp>
-
-#include <cstdio>
-#include <filesystem>
-
-TEST_CASE("StreamConvert FileStreamWork", "[stream]") {
- using namespace cru;
- using namespace cru::io;
- using namespace cru::platform::win;
-
- auto temp_file_path =
- (std::filesystem::temp_directory_path() / "cru_test_temp.XXXXXX")
- .native();
- _wmktemp(temp_file_path.data());
-
- std::string path = string::ToUtf8(temp_file_path);
-
- Win32FileStream file(path, OpenFileFlags::Write | OpenFileFlags::Create);
- file.Write("abc", 3);
- file.Close();
-
- Win32FileStream file2(path, OpenFileFlags::Read);
- IStream* com_stream = ConvertStreamToComStream(&file2);
- LARGE_INTEGER position;
- position.QuadPart = 0;
- ThrowIfFailed(com_stream->Seek(position, SEEK_SET, nullptr));
- auto buffer = std::make_unique<char[]>(3);
- ThrowIfFailed(com_stream->Read(buffer.get(), 3, nullptr));
- REQUIRE(std::string_view(buffer.get(), 3) == "abc");
- com_stream->Release();
- file2.Close();
-
- std::filesystem::remove(temp_file_path);
-}
diff --git a/test/base/platform/win/StreamTest.cpp b/test/base/platform/win/StreamTest.cpp
new file mode 100644
index 00000000..e1a6e4fe
--- /dev/null
+++ b/test/base/platform/win/StreamTest.cpp
@@ -0,0 +1,67 @@
+#include "cru/base/StringUtil.h"
+#include "cru/base/platform/win/Stream.h"
+
+#include <catch2/catch_test_macros.hpp>
+
+#include <cstdio>
+#include <filesystem>
+
+TEST_CASE("StreamConvert FileStreamWork", "[stream]") {
+ using namespace cru;
+ using namespace cru::io;
+ using namespace cru::platform::win;
+
+ auto temp_file_path =
+ (std::filesystem::temp_directory_path() / "cru_test_temp.XXXXXX")
+ .native();
+ _wmktemp(temp_file_path.data());
+
+ std::string path = string::ToUtf8(temp_file_path);
+
+ ComStream file(path, OpenFileFlags::Write | OpenFileFlags::Create);
+ file.Write("abc", 3);
+ file.Close();
+
+ ComStream file2(path, OpenFileFlags::Read);
+ IStream* com_stream = ToComStream(&file2);
+ LARGE_INTEGER position;
+ position.QuadPart = 0;
+ CheckHResult(com_stream->Seek(position, SEEK_SET, nullptr));
+ auto buffer = std::make_unique<char[]>(3);
+ CheckHResult(com_stream->Read(buffer.get(), 3, nullptr));
+ REQUIRE(std::string_view(buffer.get(), 3) == "abc");
+ com_stream->Release();
+ file2.Close();
+
+ std::filesystem::remove(temp_file_path);
+}
+
+TEST_CASE("ComStream Work", "[stream]") {
+ using namespace cru;
+ using namespace cru::io;
+ using namespace cru::platform::win;
+
+ auto temp_file_path =
+ (std::filesystem::temp_directory_path() / "cru_test_temp.XXXXXX")
+ .native();
+ _wmktemp(temp_file_path.data());
+
+ std::string path = string::ToUtf8(temp_file_path);
+
+ ComStream file(path, OpenFileFlags::Write | OpenFileFlags::Create);
+ auto write_count = file.Write("abc", 3);
+ REQUIRE(write_count == 3);
+ file.Close();
+
+ REQUIRE(std::filesystem::file_size(path) == 3);
+
+ ComStream file2(path, OpenFileFlags::Read);
+ auto buffer = std::make_unique<std::byte[]>(3);
+ auto read_count = file2.Read(buffer.get(), 3);
+ REQUIRE(read_count == 3);
+ REQUIRE(std::string_view(reinterpret_cast<const char*>(buffer.get()), 3) ==
+ "abc");
+ file2.Close();
+
+ std::filesystem::remove(temp_file_path);
+}
diff --git a/test/base/platform/win/Win32FileStreamTest.cpp b/test/base/platform/win/Win32FileStreamTest.cpp
deleted file mode 100644
index 798320f7..00000000
--- a/test/base/platform/win/Win32FileStreamTest.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-#include "cru/base/StringUtil.h"
-#include "cru/base/io/OpenFileFlag.h"
-#include "cru/base/platform/win/Win32FileStream.h"
-
-#include <catch2/catch_test_macros.hpp>
-
-#include <cstdio>
-#include <filesystem>
-
-TEST_CASE("Win32FileStream Work", "[stream]") {
- using namespace cru;
- using namespace cru::io;
- using namespace cru::platform::win;
-
- auto temp_file_path =
- (std::filesystem::temp_directory_path() / "cru_test_temp.XXXXXX")
- .native();
- _wmktemp(temp_file_path.data());
-
- std::string path = string::ToUtf8(temp_file_path);
-
- Win32FileStream file(path, OpenFileFlags::Write | OpenFileFlags::Create);
- auto write_count = file.Write("abc", 3);
- REQUIRE(write_count == 3);
- file.Close();
-
- REQUIRE(std::filesystem::file_size(path) == 3);
-
- Win32FileStream file2(path, OpenFileFlags::Read);
- auto buffer = std::make_unique<std::byte[]>(3);
- auto read_count = file2.Read(buffer.get(), 3);
- REQUIRE(read_count == 3);
- REQUIRE(std::string_view(reinterpret_cast<const char*>(buffer.get()), 3) ==
- "abc");
- file2.Close();
-
- std::filesystem::remove(temp_file_path);
-}