summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-03-08 22:50:57 -0500
committerbd <bdunahu@operationnull.com>2025-03-08 22:50:57 -0500
commitebbbf190825d6d098116f6bdd5245a4498b17815 (patch)
treec4b51a7f89969fcbd92e9d49d0d8407c11d3b35b /tests
parent212a47482c5c037720aef726fcb2b7bb3a3acd67 (diff)
Add get_bit_fields, which parses cache fields from a memory address
Diffstat (limited to 'tests')
-rw-r--r--tests/utils.cc23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/utils.cc b/tests/utils.cc
new file mode 100644
index 0000000..5368204
--- /dev/null
+++ b/tests/utils.cc
@@ -0,0 +1,23 @@
+#include "utils.h"
+#include "definitions.h"
+#include <catch2/catch_test_macros.hpp>
+
+TEST_CASE("Parse arbitrary fields # one", "[cache]")
+{
+ int tag, index, offset;
+ int address = 0b111110001010101;
+ get_bit_fields(address, &tag, &index, &offset);
+ CHECK(tag == 0b11111000);
+ CHECK(index == 0b10101);
+ CHECK(offset == 0b01);
+}
+
+TEST_CASE("Parse arbitrary fields # two", "[cache]")
+{
+ int tag, index, offset;
+ int address = 0b000110100111011;
+ get_bit_fields(address, &tag, &index, &offset);
+ CHECK(tag == 0b00011010);
+ CHECK(index == 0b01110);
+ CHECK(offset == 0b11);
+}