diff options
author | bd <bdunahu@operationnull.com> | 2025-03-22 14:19:10 -0400 |
---|---|---|
committer | bd <bdunahu@operationnull.com> | 2025-03-22 14:19:10 -0400 |
commit | 2416cce2eec7ecdf0587896620806c465747eada (patch) | |
tree | abcff26473cc45b23a7b9bd501f2974050479efa /tests | |
parent | b73f7fbe952494e245c44fdd4b6123bac1b4ec97 (diff) |
Add controller.h, implementation and tests.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/cache.cc | 1 | ||||
-rw-r--r-- | tests/controller.cc | 39 | ||||
-rw-r--r-- | tests/dram.cc | 1 |
3 files changed, 39 insertions, 2 deletions
diff --git a/tests/cache.cc b/tests/cache.cc index d1171d1..14459b9 100644 --- a/tests/cache.cc +++ b/tests/cache.cc @@ -1,5 +1,4 @@ #include "cache.h" -#include "definitions.h" #include "dram.h" #include <catch2/catch_test_macros.hpp> diff --git a/tests/controller.cc b/tests/controller.cc new file mode 100644 index 0000000..a1b8123 --- /dev/null +++ b/tests/controller.cc @@ -0,0 +1,39 @@ +#include "controller.h" +#include "cache.h" +#include "dram.h" +#include <algorithm> +#include <catch2/catch_test_macros.hpp> + +class ControllerPipeFixture +{ + public: + ControllerPipeFixture() + { + this->c = new Cache(new Dram(3), 1); + this->ct = new Controller(this->c, true); + } + ~ControllerPipeFixture() + { + delete this->ct; + delete this->c; + }; + + Cache *c; + Controller *ct; +}; + +TEST_CASE_METHOD( + ControllerPipeFixture, + "Contructor resets gettable fields", + "[controller_pipe]") +{ + std::array<int, GPR_NUM> gprs; + + gprs = this->ct->get_gprs(); + + CHECK(this->ct->get_clock_cycle() == 0); + CHECK(std::all_of( + gprs.begin(), gprs.end(), [](int value) { return value == 0; })); + // change me later + CHECK(this->ct->get_pc() == 0); +} diff --git a/tests/dram.cc b/tests/dram.cc index 3397f74..c15c3de 100644 --- a/tests/dram.cc +++ b/tests/dram.cc @@ -1,5 +1,4 @@ #include "dram.h" -#include "definitions.h" #include <array> #include <catch2/catch_test_macros.hpp> |