1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include "dram.h"
#include "definitions.h"
#include <catch2/catch_test_macros.hpp>
#include <array>
TEST_CASE("Construct singleton dram", "[dram]")
{
Dram *d = new Dram(1, 1);
std::array<signed int, LINE_SIZE> expected = {0, 0, 0, 0};
std::array<signed int, LINE_SIZE> actual = d->view(0, 1)[0];
REQUIRE(expected == actual);
delete d;
}
TEST_CASE("Construct ingleton dram, store 0th element in zero cycles", "[dram]")
{
Dram *d = new Dram(1, 0);
std::array<signed int, LINE_SIZE> expected = {0, 0, 0, 0};
std::array<signed int, LINE_SIZE> actual = d->view(0, 1)[0];
CHECK(expected == actual);
signed int w = 0x11223344;
Response *r = d->write(MEMORY, w, 0x00000000);
REQUIRE(r->status == OK);
expected.at(0) = w;
actual = d->view(0, 1)[0];
REQUIRE(expected == actual);
delete r;
delete d;
}
|