From 560bd5bfa1db7f8ad2566fd31aaad2f9938ac43c Mon Sep 17 00:00:00 2001 From: Amneesh Singh Date: Sat, 23 Sep 2023 23:20:05 +0530 Subject: [PATCH] tests: add tests for bus Signed-off-by: Amneesh Singh --- tests/bus.cc | 45 +++++++++++++++++++++++++++++++++++++++++++++ tests/meson.build | 3 ++- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 tests/bus.cc diff --git a/tests/bus.cc b/tests/bus.cc new file mode 100644 index 0000000..b288103 --- /dev/null +++ b/tests/bus.cc @@ -0,0 +1,45 @@ +#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(3349) == 0); + + bus.write_byte(3349, 0xEC); + CHECK(bus.read_byte(3349) == 0xEC); + CHECK(bus.read_word(3349) == 0xEC); + CHECK(bus.read_halfword(3349) == 0xEC); +} + +TEST_CASE_METHOD(BusFixture, "Halfword", TAG) { + CHECK(bus.read_halfword(33750745) == 0); + + bus.write_halfword(33750745, 0x1A4A); + CHECK(bus.read_halfword(33750745) == 0x1A4A); + CHECK(bus.read_word(33750745) == 0x1A4A); + CHECK(bus.read_byte(33750745) == 0x4A); +} + +TEST_CASE_METHOD(BusFixture, "Word", TAG) { + CHECK(bus.read_word(100724276) == 0); + + bus.write_word(100724276, 0x3ACC491D); + CHECK(bus.read_word(100724276) == 0x3ACC491D); + CHECK(bus.read_halfword(100724276) == 0x491D); + CHECK(bus.read_byte(100724276) == 0x1D); +} + +#undef TAG diff --git a/tests/meson.build b/tests/meson.build index d06ab7c..81007e9 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -5,7 +5,8 @@ tests_deps = [ src = include_directories('../src') tests_sources = files( - 'main.cc' + 'main.cc', + 'bus.cc' ) subdir('cpu')