mirror of
https://github.com/momo5502/emulator.git
synced 2026-01-26 15:11:01 +00:00
Initialize emulator using settings struct
This commit is contained in:
@@ -4,8 +4,7 @@ namespace test
|
||||
{
|
||||
TEST(EmulationTest, BasicEmulationWorks)
|
||||
{
|
||||
windows_emulator emu{"./test-sample.exe"};
|
||||
emu.logger.disable_output(true);
|
||||
auto emu = create_sample_emulator();
|
||||
emu.start();
|
||||
|
||||
ASSERT_TERMINATED_SUCCESSFULLY(emu);
|
||||
@@ -15,8 +14,7 @@ namespace test
|
||||
{
|
||||
constexpr auto count = 200000;
|
||||
|
||||
windows_emulator emu{"./test-sample.exe"};
|
||||
emu.logger.disable_output(true);
|
||||
auto emu = create_sample_emulator();
|
||||
emu.start({}, count);
|
||||
|
||||
ASSERT_EQ(emu.process().executed_instructions, count);
|
||||
@@ -24,16 +22,14 @@ namespace test
|
||||
|
||||
TEST(EmulationTest, CountedEmulationIsAccurate)
|
||||
{
|
||||
windows_emulator emu{"./test-sample.exe"};
|
||||
emu.logger.disable_output(true);
|
||||
auto emu = create_sample_emulator();
|
||||
emu.start();
|
||||
|
||||
ASSERT_TERMINATED_SUCCESSFULLY(emu);
|
||||
|
||||
const auto executedInstructions = emu.process().executed_instructions;
|
||||
|
||||
windows_emulator new_emu{"./test-sample.exe"};
|
||||
new_emu.logger.disable_output(true);
|
||||
auto new_emu = create_sample_emulator();
|
||||
|
||||
constexpr auto offset = 1;
|
||||
const auto instructionsToExecute = executedInstructions - offset;
|
||||
|
||||
@@ -17,3 +17,17 @@
|
||||
|
||||
#define ASSERT_TERMINATED_SUCCESSFULLY(win_emu) \
|
||||
ASSERT_TERMINATED_WITH_STATUS(win_emu, STATUS_SUCCESS)
|
||||
|
||||
namespace test
|
||||
{
|
||||
inline windows_emulator create_sample_emulator()
|
||||
{
|
||||
const emulator_settings settings
|
||||
{
|
||||
.application = "./test-sample.exe",
|
||||
.disable_logging = true,
|
||||
};
|
||||
|
||||
return windows_emulator{settings};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,8 +4,7 @@ namespace test
|
||||
{
|
||||
TEST(SerializationTest, SerializedDataIsReproducible)
|
||||
{
|
||||
windows_emulator emu1{"./test-sample.exe"};
|
||||
emu1.logger.disable_output(true);
|
||||
auto emu1 = create_sample_emulator();
|
||||
emu1.start();
|
||||
|
||||
ASSERT_TERMINATED_SUCCESSFULLY(emu1);
|
||||
@@ -29,8 +28,7 @@ namespace test
|
||||
|
||||
TEST(SerializationTest, EmulationIsReproducible)
|
||||
{
|
||||
windows_emulator emu1{"./test-sample.exe"};
|
||||
emu1.logger.disable_output(true);
|
||||
auto emu1 = create_sample_emulator();
|
||||
emu1.start();
|
||||
|
||||
ASSERT_TERMINATED_SUCCESSFULLY(emu1);
|
||||
@@ -38,8 +36,7 @@ namespace test
|
||||
utils::buffer_serializer serializer1{};
|
||||
emu1.serialize(serializer1);
|
||||
|
||||
windows_emulator emu2{"./test-sample.exe"};
|
||||
emu2.logger.disable_output(true);
|
||||
auto emu2 = create_sample_emulator();
|
||||
emu2.start();
|
||||
|
||||
ASSERT_TERMINATED_SUCCESSFULLY(emu2);
|
||||
@@ -52,8 +49,7 @@ namespace test
|
||||
|
||||
TEST(SerializationTest, DeserializedEmulatorBehavesLikeSource)
|
||||
{
|
||||
windows_emulator emu{"./test-sample.exe"};
|
||||
emu.logger.disable_output(true);
|
||||
auto emu = create_sample_emulator();
|
||||
emu.start({}, 100);
|
||||
|
||||
utils::buffer_serializer serializer{};
|
||||
|
||||
Reference in New Issue
Block a user