This adds a new INF for BaseCryptLib suitable for host based environments. It adds a host based unit test for BaseCryptLib that can also be built as a shell based Unit Test. In addition, this also adds a UnitTestHostCrtWrapper.c file, which provides some of the functionality not provided by the default host based unit test system that OpenSSL expects. This is used by UnitTestHostBaseCryptLib, a version of the BaseCryptLib meant specifically for host based unit testing. Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Xiaoyu Lu <xiaoyux.lu@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Guomin Jiang <guomin.jiang@intel.com> Signed-off-by: Matthew Carlson <matthewfcarlson@gmail.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
		
			
				
	
	
		
			82 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  This is a sample to demostrate the usage of the Unit Test Library that
 | 
						|
  supports the PEI, DXE, SMM, UEFI SHell, and host execution environments.
 | 
						|
 | 
						|
  Copyright (c) Microsoft Corporation.<BR>
 | 
						|
  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
**/
 | 
						|
#include "TestBaseCryptLib.h"
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
  Initialize the unit test framework, suite, and unit tests for the
 | 
						|
  sample unit tests and run the unit tests.
 | 
						|
 | 
						|
  @retval  EFI_SUCCESS           All test cases were dispatched.
 | 
						|
  @retval  EFI_OUT_OF_RESOURCES  There are not enough resources available to
 | 
						|
                                 initialize the unit tests.
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
UefiTestMain (
 | 
						|
  VOID
 | 
						|
  )
 | 
						|
{
 | 
						|
  EFI_STATUS                  Status;
 | 
						|
  UNIT_TEST_FRAMEWORK_HANDLE  Framework;
 | 
						|
 | 
						|
  DEBUG(( DEBUG_INFO, "%a v%a\n", UNIT_TEST_NAME, UNIT_TEST_VERSION ));
 | 
						|
  CreateUnitTest(UNIT_TEST_NAME, UNIT_TEST_VERSION, &Framework);
 | 
						|
 | 
						|
  //
 | 
						|
  // Execute the tests.
 | 
						|
  //
 | 
						|
  Status = RunAllTestSuites (Framework);
 | 
						|
 | 
						|
  if (Framework) {
 | 
						|
    FreeUnitTestFramework (Framework);
 | 
						|
  }
 | 
						|
 | 
						|
  return Status;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  Standard PEIM entry point for target based unit test execution from PEI.
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
PeiEntryPoint (
 | 
						|
  IN EFI_PEI_FILE_HANDLE     FileHandle,
 | 
						|
  IN CONST EFI_PEI_SERVICES  **PeiServices
 | 
						|
  )
 | 
						|
{
 | 
						|
  return UefiTestMain ();
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  Standard UEFI entry point for target based unit test execution from DXE, SMM,
 | 
						|
  UEFI Shell.
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
DxeEntryPoint (
 | 
						|
  IN EFI_HANDLE        ImageHandle,
 | 
						|
  IN EFI_SYSTEM_TABLE  *SystemTable
 | 
						|
  )
 | 
						|
{
 | 
						|
  return UefiTestMain ();
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  Standard POSIX C entry point for host based unit test execution.
 | 
						|
**/
 | 
						|
int
 | 
						|
main (
 | 
						|
  int argc,
 | 
						|
  char *argv[]
 | 
						|
  )
 | 
						|
{
 | 
						|
  return UefiTestMain ();
 | 
						|
}
 |