REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4183 UnitTestPersistenceLib now consumes private struct definition. Modify APIs in UnitTestPersistenceLib to make it easy to become a public library. Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Michael Kubacki <mikuback@linux.microsoft.com> Cc: Sean Brogan <sean.brogan@microsoft.com> Reviewed-by: Ray Ni <ray.ni@intel.com> Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @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.<BR>
 | |
|   Copyright (c) 2019 - 2022, Intel Corporation. All rights reserved.<BR>
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef _UNIT_TEST_PERSISTENCE_LIB_H_
 | |
| #define _UNIT_TEST_PERSISTENCE_LIB_H_
 | |
| 
 | |
| #include <Library/UnitTestLib.h>
 | |
| 
 | |
| #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
 |