Software APIs
mock_csr_test.cc
1 // Copyright lowRISC contributors (OpenTitan project).
2 // Licensed under the Apache License, Version 2.0, see LICENSE for details.
3 // SPDX-License-Identifier: Apache-2.0
4 
5 #include "sw/device/silicon_creator/lib/base/mock_csr.h"
6 
7 #include "gtest/gtest.h"
9 
10 namespace mock_csr_test {
11 class MockCsrTest : public testing::Test {
12  protected:
13  mock_csr::MockCsr csr_;
14 };
15 
16 TEST_F(MockCsrTest, Read) {
17  EXPECT_CSR_READ(CSR_REG_PMPCFG0, 1);
18  uint32_t value;
19  CSR_READ(CSR_REG_PMPCFG0, &value);
20  EXPECT_EQ(value, 1);
21 }
22 
23 TEST_F(MockCsrTest, Write) {
24  EXPECT_CSR_WRITE(CSR_REG_PMPADDR0, 0x100);
25  CSR_WRITE(CSR_REG_PMPADDR0, 0x100);
26 }
27 
28 TEST_F(MockCsrTest, Set) {
29  EXPECT_CSR_SET_BITS(CSR_REG_PMPCFG0, 0x1);
30  CSR_SET_BITS(CSR_REG_PMPCFG0, 0x1);
31 }
32 
33 TEST_F(MockCsrTest, Clear) {
34  EXPECT_CSR_CLEAR_BITS(CSR_REG_PMPCFG0, 0x1);
35  CSR_CLEAR_BITS(CSR_REG_PMPCFG0, 0x1);
36 }
37 
38 } // namespace mock_csr_test