Implement root fs handling

This commit is contained in:
momo5502
2025-01-22 06:41:39 +01:00
parent b581d74433
commit ec1333278b
17 changed files with 372 additions and 98 deletions

View File

@@ -1,5 +1,6 @@
#pragma once
#include <cstdlib>
#include <gtest/gtest.h>
#include <windows_emulator.hpp>
@@ -20,9 +21,21 @@
namespace test
{
inline std::filesystem::path get_emulator_root()
{
auto* env = getenv("EMULATOR_ROOT");
if (!env)
{
throw std::runtime_error("No EMULATOR_ROOT set!");
}
return env;
}
inline windows_emulator create_sample_emulator(emulator_settings settings, emulator_callbacks callbacks = {})
{
settings.application = "./test-sample.exe";
settings.application = "c:/test-sample.exe";
settings.root_filesystem = get_emulator_root();
return windows_emulator{std::move(settings), std::move(callbacks)};
}

View File

@@ -14,7 +14,7 @@ namespace test
utils::buffer_deserializer deserializer{serializer1.get_buffer()};
windows_emulator new_emu{};
windows_emulator new_emu{get_emulator_root()};
new_emu.deserialize(deserializer);
utils::buffer_serializer serializer2{};
@@ -57,7 +57,7 @@ namespace test
utils::buffer_deserializer deserializer{serializer.get_buffer()};
windows_emulator new_emu{};
windows_emulator new_emu{get_emulator_root()};
new_emu.log.disable_output(true);
new_emu.deserialize(deserializer);