blob: 7f479acbe7b75c7f5f4bfae5a32ea64d91bc94ae [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
#ifndef OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_MOCK_SHUTDOWN_H_
#define OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_MOCK_SHUTDOWN_H_
#include "sw/device/lib/base/testing/global_mock.h"
#include "sw/device/silicon_creator/lib/shutdown.h"
#include "sw/device/silicon_creator/testing/mask_rom_test.h"
namespace mask_rom_test {
namespace internal {
/**
* Mock class for shutdown.
*/
class MockShutdown : public global_mock::GlobalMock<MockShutdown> {
public:
MOCK_METHOD(shutdown_error_redact_t, RedactPolicy, ());
MOCK_METHOD(uint32_t, Redact, (rom_error_t, shutdown_error_redact_t));
MOCK_METHOD(void, Finalize, (rom_error_t));
};
} // namespace internal
using MockShutdown = testing::StrictMock<internal::MockShutdown>;
#ifdef IS_MESON_FOR_MIGRATIONS_ONLY
extern "C" {
shutdown_error_redact_t shutdown_redact_policy(void) {
return MockShutdown::Instance().RedactPolicy();
}
uint32_t shutdown_redact(rom_error_t reason, shutdown_error_redact_t severity) {
return MockShutdown::Instance().Redact(reason, severity);
}
void shutdown_finalize(rom_error_t reason) {
return MockShutdown::Instance().Finalize(reason);
}
} // extern "C"
#endif
} // namespace mask_rom_test
#endif // OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_MOCK_SHUTDOWN_H_