/** @file This header file describes a library that contains functions to save and restore unit test internal state, in case the test needs to pause and resume (eg. a reboot-based test). Copyright (c) Microsoft Corporation.
Copyright (c) 2019 - 2022, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _UNIT_TEST_PERSISTENCE_LIB_H_ #define _UNIT_TEST_PERSISTENCE_LIB_H_ #include #define UNIT_TEST_PERSISTENCE_LIB_VERSION 1 /** Determines whether a persistence cache already exists for the given framework. @param[in] FrameworkHandle A pointer to the framework that is being persisted. @retval TRUE @retval FALSE Cache doesn't exist or an error occurred. **/ BOOLEAN EFIAPI DoesCacheExist ( IN UNIT_TEST_FRAMEWORK_HANDLE FrameworkHandle ); /** Will save the data associated with an internal Unit Test Framework state in a manner that can persist a Unit Test Application quit or even a system reboot. @param[in] FrameworkHandle A pointer to the framework that is being persisted. @param[in] SaveData A pointer to the buffer containing the serialized framework internal state. @param[in] SaveStateSize The size of SaveData in bytes. @retval EFI_SUCCESS Data is persisted and the test can be safely quit. @retval Others Data is not persisted and test cannot be resumed upon exit. **/ EFI_STATUS EFIAPI SaveUnitTestCache ( IN UNIT_TEST_FRAMEWORK_HANDLE FrameworkHandle, IN VOID *SaveData, IN UINTN SaveStateSize ); /** Will retrieve any cached state associated with the given framework. Will allocate a buffer to hold the loaded data. @param[in] FrameworkHandle A pointer to the framework that is being persisted. @param[out] SaveData A pointer pointer that will be updated with the address of the loaded data buffer. @param[out] SaveStateSize Return the size of SaveData in bytes. @retval EFI_SUCCESS Data has been loaded successfully and SaveData is updated with a pointer to the buffer. @retval Others An error has occurred and no data has been loaded. SaveData is set to NULL. **/ EFI_STATUS EFIAPI LoadUnitTestCache ( IN UNIT_TEST_FRAMEWORK_HANDLE FrameworkHandle, OUT VOID **SaveData, OUT UINTN *SaveStateSize ); #endif