From b91eb002d4e6b2dc0c51b03df57c5089659ac669 Mon Sep 17 00:00:00 2001 From: bd Date: Sat, 12 Apr 2025 01:36:59 -0400 Subject: Add C11 test class header as base cache fixture class --- tests/c11.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 tests/c11.h (limited to 'tests/c11.h') diff --git a/tests/c11.h b/tests/c11.h new file mode 100644 index 0000000..eb59cc0 --- /dev/null +++ b/tests/c11.h @@ -0,0 +1,47 @@ +#include "cache.h" +#include "dram.h" +#include "storage.h" +#include +#include +#include +#include + +class C11 +{ + public: + C11() : m_delay(4), c_delay(2), mem(new int), fetch(new int) + { + this->c = new Cache(new Dram(this->m_delay), this->c_delay); + this->expected = {0, 0, 0, 0}; + this->actual = this->c->view(0, 1)[0]; + } + + ~C11() + { + delete this->c; + delete this->mem; + delete this->fetch; + } + + void + wait_then_do(int delay, std::function f) + { + for (int i = 0; i < delay; ++i) { + int r = f(); + + // check response + CHECK(!r); + // check for early modifications + actual = c->view(0, 1)[0]; + REQUIRE(this->expected == this->actual); + } + } + + int m_delay; + int c_delay; + Cache *c; + int *mem; + int *fetch; + std::array expected; + std::array actual; +}; -- cgit v1.2.3