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
11namespace rom_test {
12namespace internal {
13
14/**
15 * Mock class for crc32.
16 */
17class 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
29using MockCrc32 = testing::StrictMock<internal::MockCrc32>;
30
31} // namespace rom_test
32
33#endif // OPENTITAN_SW_DEVICE_LIB_BASE_MOCK_CRC32_H_