13 #include "gtest/gtest.h"
15 #include "sw/device/lib/base/mock_mmio.h"
18 #include "rv_dm_regs.h"
20 namespace dif_rv_dm_unittest {
22 using ::mock_mmio::LeInt;
23 using ::mock_mmio::MmioTest;
24 using ::mock_mmio::MockDevice;
25 using ::testing::Each;
26 using ::testing::ElementsAre;
28 class RvDmTest :
public testing::Test,
public MmioTest {
30 dif_rv_dm_t rv_dm_ = {.base_addr = dev().region()};
35 RV_DM_LATE_DEBUG_ENABLE_REGWEN_REG_OFFSET,
36 {{RV_DM_LATE_DEBUG_ENABLE_REGWEN_LATE_DEBUG_ENABLE_REGWEN_BIT,
true}});
37 EXPECT_WRITE32(RV_DM_LATE_DEBUG_ENABLE_REG_OFFSET, kMultiBitBool32True);
41 RV_DM_LATE_DEBUG_ENABLE_REGWEN_REG_OFFSET,
42 {{RV_DM_LATE_DEBUG_ENABLE_REGWEN_LATE_DEBUG_ENABLE_REGWEN_BIT,
true}});
43 EXPECT_WRITE32(RV_DM_LATE_DEBUG_ENABLE_REG_OFFSET, kMultiBitBool32False);
47 TEST_F(RvDmTest, LateDebugEnableErrorDifLocked) {
49 RV_DM_LATE_DEBUG_ENABLE_REGWEN_REG_OFFSET,
50 {{RV_DM_LATE_DEBUG_ENABLE_REGWEN_LATE_DEBUG_ENABLE_REGWEN_BIT,
false}});
54 TEST_F(RvDmTest, LockLateDebug) {
56 RV_DM_LATE_DEBUG_ENABLE_REGWEN_REG_OFFSET,
57 {{RV_DM_LATE_DEBUG_ENABLE_REGWEN_LATE_DEBUG_ENABLE_REGWEN_BIT,
false}});
61 TEST_F(RvDmTest, BadArgs) {
73 TEST_F(RvDmTest, IsLateDebugLocked) {
75 RV_DM_LATE_DEBUG_ENABLE_REGWEN_REG_OFFSET,
76 {{RV_DM_LATE_DEBUG_ENABLE_REGWEN_LATE_DEBUG_ENABLE_REGWEN_BIT,
true}});
83 RV_DM_LATE_DEBUG_ENABLE_REGWEN_REG_OFFSET,
84 {{RV_DM_LATE_DEBUG_ENABLE_REGWEN_LATE_DEBUG_ENABLE_REGWEN_BIT,
false}});