Software APIs
mock_crc32.h
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 #ifndef OPENTITAN_SW_DEVICE_LIB_BASE_MOCK_CRC32_H_
6 #define OPENTITAN_SW_DEVICE_LIB_BASE_MOCK_CRC32_H_
7 
8 #include "sw/device/lib/base/crc32.h"
9 #include "sw/device/lib/base/global_mock.h"
10 
11 namespace rom_test {
12 namespace internal {
13 
14 /**
15  * Mock class for crc32.
16  */
17 class MockCrc32 : public global_mock::GlobalMock<MockCrc32> {
18  public:
19  MOCK_METHOD(void, Init, (uint32_t *));
20  MOCK_METHOD(void, Add8, (uint32_t *, uint8_t));
21  MOCK_METHOD(void, Add32, (uint32_t *, uint32_t));
22  MOCK_METHOD(void, Add, (uint32_t *, const void *, size_t));
23  MOCK_METHOD(uint32_t, Finish, (const uint32_t *));
24  MOCK_METHOD(uint32_t, Crc32, (const void *, size_t));
25 };
26 
27 } // namespace internal
28 
29 using MockCrc32 = testing::StrictMock<internal::MockCrc32>;
30 
31 } // namespace rom_test
32 
33 #endif // OPENTITAN_SW_DEVICE_LIB_BASE_MOCK_CRC32_H_