Prepare support for serialization of non-default-constructible objects

This commit is contained in:
momo5502
2024-10-25 18:56:16 +02:00
parent d29e4a811f
commit d782c80f3f
9 changed files with 112 additions and 46 deletions

View File

@@ -8,7 +8,7 @@ namespace test
emu.logger.disable_output(true);
emu.start();
assert_terminated_successfully(emu);
ASSER_TERMINATED_SUCCESSFULLY(emu);
}
TEST(EmulationTest, CountedEmulationWorks)

View File

@@ -3,16 +3,11 @@
#include <gtest/gtest.h>
#include <windows_emulator.hpp>
namespace test
{
inline void assert_terminated_with_status(const windows_emulator& win_emu, const NTSTATUS status)
{
ASSERT_TRUE(win_emu.process().exit_status.has_value());
ASSERT_EQ(*win_emu.process().exit_status, status);
}
#define ASSER_TERMINATED_WITH_STATUS(win_emu, status) \
do { \
ASSERT_TRUE(win_emu.process().exit_status.has_value()); \
ASSERT_EQ(*win_emu.process().exit_status, status); \
} while(false)
inline void assert_terminated_successfully(const windows_emulator& win_emu)
{
assert_terminated_with_status(win_emu, STATUS_SUCCESS);
}
}
#define ASSER_TERMINATED_SUCCESSFULLY(win_emu) \
ASSER_TERMINATED_WITH_STATUS(win_emu, STATUS_SUCCESS)

View File

@@ -2,13 +2,13 @@
namespace test
{
TEST(SerializationTest, DISABLED_SerializedDataIsReproducible)
TEST(SerializationTest, SerializedDataIsReproducible)
{
windows_emulator emu1{ "./test-sample.exe" };
emu1.logger.disable_output(true);
emu1.start();
assert_terminated_successfully(emu1);
ASSER_TERMINATED_SUCCESSFULLY(emu1);
utils::buffer_serializer serializer1{};
emu1.serialize(serializer1);
@@ -30,7 +30,7 @@ namespace test
emu1.logger.disable_output(true);
emu1.start();
assert_terminated_successfully(emu1);
ASSER_TERMINATED_SUCCESSFULLY(emu1);
utils::buffer_serializer serializer1{};
emu1.serialize(serializer1);
@@ -39,7 +39,7 @@ namespace test
emu2.logger.disable_output(true);
emu2.start();
assert_terminated_successfully(emu2);
ASSER_TERMINATED_SUCCESSFULLY(emu2);
utils::buffer_serializer serializer2{};
emu2.serialize(serializer2);
@@ -63,10 +63,10 @@ namespace test
new_emu.deserialize(deserializer);
new_emu.start();
assert_terminated_successfully(new_emu);
ASSER_TERMINATED_SUCCESSFULLY(new_emu);
emu.start();
assert_terminated_successfully(emu);
ASSER_TERMINATED_SUCCESSFULLY(emu);
utils::buffer_serializer serializer1{};
utils::buffer_serializer serializer2{};