Format all the code

This commit is contained in:
momo5502
2025-01-06 17:13:33 +01:00
parent 64c2a79f0f
commit bff8420ffd
100 changed files with 16439 additions and 14509 deletions

View File

@@ -2,46 +2,46 @@
namespace test
{
TEST(EmulationTest, BasicEmulationWorks)
{
auto emu = create_sample_emulator();
emu.start();
TEST(EmulationTest, BasicEmulationWorks)
{
auto emu = create_sample_emulator();
emu.start();
ASSERT_TERMINATED_SUCCESSFULLY(emu);
}
ASSERT_TERMINATED_SUCCESSFULLY(emu);
}
TEST(EmulationTest, CountedEmulationWorks)
{
constexpr auto count = 200000;
TEST(EmulationTest, CountedEmulationWorks)
{
constexpr auto count = 200000;
auto emu = create_sample_emulator();
emu.start({}, count);
auto emu = create_sample_emulator();
emu.start({}, count);
ASSERT_EQ(emu.process().executed_instructions, count);
}
ASSERT_EQ(emu.process().executed_instructions, count);
}
TEST(EmulationTest, CountedEmulationIsAccurate)
{
auto emu = create_sample_emulator();
emu.start();
TEST(EmulationTest, CountedEmulationIsAccurate)
{
auto emu = create_sample_emulator();
emu.start();
ASSERT_TERMINATED_SUCCESSFULLY(emu);
ASSERT_TERMINATED_SUCCESSFULLY(emu);
const auto executedInstructions = emu.process().executed_instructions;
const auto executedInstructions = emu.process().executed_instructions;
auto new_emu = create_sample_emulator();
auto new_emu = create_sample_emulator();
constexpr auto offset = 1;
const auto instructionsToExecute = executedInstructions - offset;
constexpr auto offset = 1;
const auto instructionsToExecute = executedInstructions - offset;
new_emu.start({}, instructionsToExecute);
new_emu.start({}, instructionsToExecute);
ASSERT_EQ(new_emu.process().executed_instructions, instructionsToExecute);
ASSERT_NOT_TERMINATED(new_emu);
ASSERT_EQ(new_emu.process().executed_instructions, instructionsToExecute);
ASSERT_NOT_TERMINATED(new_emu);
new_emu.start({}, offset);
new_emu.start({}, offset);
ASSERT_TERMINATED_SUCCESSFULLY(new_emu);
ASSERT_EQ(new_emu.process().executed_instructions, executedInstructions);
}
ASSERT_TERMINATED_SUCCESSFULLY(new_emu);
ASSERT_EQ(new_emu.process().executed_instructions, executedInstructions);
}
}

View File

@@ -3,37 +3,36 @@
#include <gtest/gtest.h>
#include <windows_emulator.hpp>
#define ASSERT_NOT_TERMINATED(win_emu) \
do { \
ASSERT_FALSE((win_emu).process().exit_status.has_value()); \
} while(false)
#define ASSERT_NOT_TERMINATED(win_emu) \
do \
{ \
ASSERT_FALSE((win_emu).process().exit_status.has_value()); \
} while (false)
#define ASSERT_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)
#define ASSERT_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)
#define ASSERT_TERMINATED_SUCCESSFULLY(win_emu) \
ASSERT_TERMINATED_WITH_STATUS(win_emu, STATUS_SUCCESS)
#define ASSERT_TERMINATED_SUCCESSFULLY(win_emu) ASSERT_TERMINATED_WITH_STATUS(win_emu, STATUS_SUCCESS)
namespace test
{
inline windows_emulator create_sample_emulator(emulator_settings settings)
{
settings.application = "./test-sample.exe";
return windows_emulator{std::move(settings)};
}
inline windows_emulator create_sample_emulator(emulator_settings settings)
{
settings.application = "./test-sample.exe";
return windows_emulator{std::move(settings)};
}
inline windows_emulator create_sample_emulator()
{
emulator_settings settings
{
.disable_logging = true,
.use_relative_time = true,
};
inline windows_emulator create_sample_emulator()
{
emulator_settings settings{
.disable_logging = true,
.use_relative_time = true,
};
return create_sample_emulator(std::move(settings));
}
return create_sample_emulator(std::move(settings));
}
}

View File

@@ -2,6 +2,6 @@
int main(int argc, char* argv[])
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}

View File

@@ -2,77 +2,77 @@
namespace test
{
TEST(SerializationTest, SerializedDataIsReproducible)
{
auto emu1 = create_sample_emulator();
emu1.start();
TEST(SerializationTest, SerializedDataIsReproducible)
{
auto emu1 = create_sample_emulator();
emu1.start();
ASSERT_TERMINATED_SUCCESSFULLY(emu1);
ASSERT_TERMINATED_SUCCESSFULLY(emu1);
utils::buffer_serializer serializer1{};
emu1.serialize(serializer1);
utils::buffer_serializer serializer1{};
emu1.serialize(serializer1);
utils::buffer_deserializer deserializer{serializer1.get_buffer()};
utils::buffer_deserializer deserializer{serializer1.get_buffer()};
windows_emulator new_emu{};
new_emu.deserialize(deserializer);
windows_emulator new_emu{};
new_emu.deserialize(deserializer);
utils::buffer_serializer serializer2{};
new_emu.serialize(serializer2);
utils::buffer_serializer serializer2{};
new_emu.serialize(serializer2);
auto buffer1 = serializer1.move_buffer();
auto buffer2 = serializer2.move_buffer();
auto buffer1 = serializer1.move_buffer();
auto buffer2 = serializer2.move_buffer();
ASSERT_EQ(serializer1.get_buffer(), serializer2.get_buffer());
}
ASSERT_EQ(serializer1.get_buffer(), serializer2.get_buffer());
}
TEST(SerializationTest, EmulationIsReproducible)
{
auto emu1 = create_sample_emulator();
emu1.start();
TEST(SerializationTest, EmulationIsReproducible)
{
auto emu1 = create_sample_emulator();
emu1.start();
ASSERT_TERMINATED_SUCCESSFULLY(emu1);
ASSERT_TERMINATED_SUCCESSFULLY(emu1);
utils::buffer_serializer serializer1{};
emu1.serialize(serializer1);
utils::buffer_serializer serializer1{};
emu1.serialize(serializer1);
auto emu2 = create_sample_emulator();
emu2.start();
auto emu2 = create_sample_emulator();
emu2.start();
ASSERT_TERMINATED_SUCCESSFULLY(emu2);
ASSERT_TERMINATED_SUCCESSFULLY(emu2);
utils::buffer_serializer serializer2{};
emu2.serialize(serializer2);
utils::buffer_serializer serializer2{};
emu2.serialize(serializer2);
ASSERT_EQ(serializer1.get_buffer(), serializer2.get_buffer());
}
ASSERT_EQ(serializer1.get_buffer(), serializer2.get_buffer());
}
TEST(SerializationTest, DeserializedEmulatorBehavesLikeSource)
{
auto emu = create_sample_emulator();
emu.start({}, 100);
TEST(SerializationTest, DeserializedEmulatorBehavesLikeSource)
{
auto emu = create_sample_emulator();
emu.start({}, 100);
utils::buffer_serializer serializer{};
emu.serialize(serializer);
utils::buffer_serializer serializer{};
emu.serialize(serializer);
utils::buffer_deserializer deserializer{serializer.get_buffer()};
utils::buffer_deserializer deserializer{serializer.get_buffer()};
windows_emulator new_emu{};
new_emu.log.disable_output(true);
new_emu.deserialize(deserializer);
windows_emulator new_emu{};
new_emu.log.disable_output(true);
new_emu.deserialize(deserializer);
new_emu.start();
ASSERT_TERMINATED_SUCCESSFULLY(new_emu);
new_emu.start();
ASSERT_TERMINATED_SUCCESSFULLY(new_emu);
emu.start();
ASSERT_TERMINATED_SUCCESSFULLY(emu);
emu.start();
ASSERT_TERMINATED_SUCCESSFULLY(emu);
utils::buffer_serializer serializer1{};
utils::buffer_serializer serializer2{};
utils::buffer_serializer serializer1{};
utils::buffer_serializer serializer2{};
emu.serialize(serializer1);
new_emu.serialize(serializer2);
emu.serialize(serializer1);
new_emu.serialize(serializer2);
ASSERT_EQ(serializer1.get_buffer(), serializer2.get_buffer());
}
ASSERT_EQ(serializer1.get_buffer(), serializer2.get_buffer());
}
}

View File

@@ -2,44 +2,41 @@
namespace test
{
TEST(TimeTest, SystemTimeIsAccurate)
{
std::string output_buffer{};
TEST(TimeTest, SystemTimeIsAccurate)
{
std::string output_buffer{};
const emulator_settings settings{
.arguments = {u"-time"},
.stdout_callback = [&output_buffer](const std::string_view data)
{
output_buffer.append(data);
},
.disable_logging = true,
.use_relative_time = false,
};
const emulator_settings settings{
.arguments = {u"-time"},
.stdout_callback = [&output_buffer](const std::string_view data) { output_buffer.append(data); },
.disable_logging = true,
.use_relative_time = false,
};
auto emu = create_sample_emulator(settings);
emu.start();
auto emu = create_sample_emulator(settings);
emu.start();
constexpr auto prefix = "Time: "sv;
constexpr auto prefix = "Time: "sv;
ASSERT_TERMINATED_SUCCESSFULLY(emu);
ASSERT_TRUE(output_buffer.starts_with(prefix));
ASSERT_TERMINATED_SUCCESSFULLY(emu);
ASSERT_TRUE(output_buffer.starts_with(prefix));
output_buffer = output_buffer.substr(prefix.size());
while (!output_buffer.empty() && (output_buffer.back() == '\n' || output_buffer.back() == '\r'))
{
output_buffer.pop_back();
}
output_buffer = output_buffer.substr(prefix.size());
while (!output_buffer.empty() && (output_buffer.back() == '\n' || output_buffer.back() == '\r'))
{
output_buffer.pop_back();
}
const auto time = strtoll(output_buffer.c_str(), nullptr, 10);
const auto time = strtoll(output_buffer.c_str(), nullptr, 10);
using time_point = std::chrono::system_clock::time_point;
using time_point = std::chrono::system_clock::time_point;
const time_point::duration time_duration(time);
const time_point tp(time_duration);
const time_point::duration time_duration(time);
const time_point tp(time_duration);
const auto now = std::chrono::system_clock::now();
const auto diff = now - tp;
const auto now = std::chrono::system_clock::now();
const auto diff = now - tp;
ASSERT_LE(diff, std::chrono::hours(1));
}
ASSERT_LE(diff, std::chrono::hours(1));
}
}