Files
windows-user-space-emulator/src/windows-emulator-test/emulation_test.cpp
2025-03-19 18:05:27 +01:00

48 lines
1.2 KiB
C++

#include "emulation_test_utils.hpp"
namespace test
{
TEST(EmulationTest, BasicEmulationWorks)
{
auto emu = create_sample_emulator();
emu.start();
ASSERT_TERMINATED_SUCCESSFULLY(emu);
}
TEST(EmulationTest, CountedEmulationWorks)
{
constexpr auto count = 200000;
auto emu = create_sample_emulator();
emu.start({}, count);
ASSERT_EQ(emu.get_executed_instructions(), count);
}
TEST(EmulationTest, CountedEmulationIsAccurate)
{
auto emu = create_reproducible_sample_emulator();
emu.start();
ASSERT_TERMINATED_SUCCESSFULLY(emu);
const auto executedInstructions = emu.get_executed_instructions();
auto new_emu = create_reproducible_sample_emulator();
constexpr auto offset = 1;
const auto instructionsToExecute = executedInstructions - offset;
new_emu.start({}, instructionsToExecute);
ASSERT_EQ(new_emu.get_executed_instructions(), instructionsToExecute);
ASSERT_NOT_TERMINATED(new_emu);
new_emu.start({}, offset);
ASSERT_TERMINATED_SUCCESSFULLY(new_emu);
ASSERT_EQ(new_emu.get_executed_instructions(), executedInstructions);
}
}