#include "bus.hh" #include #define TAG "[bus]" using namespace matar; class BusFixture { public: BusFixture() : bus(Memory(std::array(), std::vector(Header::HEADER_SIZE))) {} protected: Bus bus; }; TEST_CASE_METHOD(BusFixture, "Byte", TAG) { CHECK(bus.read_byte(0x30001A9) == 0); bus.write_byte(0x30001A9, 0xEC); CHECK(bus.read_byte(0x30001A9) == 0xEC); CHECK(bus.read_word(0x30001A9) == 0xEC); CHECK(bus.read_halfword(0x30001A9) == 0xEC); } TEST_CASE_METHOD(BusFixture, "Halfword", TAG) { CHECK(bus.read_halfword(0x202FED9) == 0); bus.write_halfword(0x202FED9, 0x1A4A); CHECK(bus.read_halfword(0x202FED9) == 0x1A4A); CHECK(bus.read_word(0x202FED9) == 0x1A4A); CHECK(bus.read_byte(0x202FED9) == 0x4A); } TEST_CASE_METHOD(BusFixture, "Word", TAG) { CHECK(bus.read_word(0x600EE34) == 0); bus.write_word(0x600EE34, 0x3ACC491D); CHECK(bus.read_word(0x600EE34) == 0x3ACC491D); CHECK(bus.read_halfword(0x600EE34) == 0x491D); CHECK(bus.read_byte(0x600EE34) == 0x1D); } #undef TAG