mirror_edk2/MdePkg/Library/BaseLib
Michael D Kinney 540fd45f75 MdePkg/Library/BaseLib: Add BaseLib instance for host based unit tests
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2800

Add a new version of BaseLib that is safe for use from host based
unit test applications.  Host based unit test applications may need
to provide implementations of some BaseLib functions that provide
simple emulation to exercise the code under test.  The structure
UNIT_TEST_HOST_BASE_LIB is filled in with services that provide
default emulation for BaseLib APIs that would normally generate
exceptions in a host based unit test application.  This structure
allows an individual unit test to replace the default emulation of
a BaseLib service with an alternate version that is required by a
specific unit test.  A global variable of type UNIT_TEST_HOST_BASE_LIB
is provided through the new UnitTestHostBaseLib library class.

Normally cmocka would be used to mock services the code under
test calls.  However, the BaseLib is used by the Unit Test
Framework itself, so using a mocked interface is not possible.
The use of a structure to provide hooks for unit test is not
expected to be a common feature.  It should only be required
for libraries that are used by both the Unit Test Framework and
the code under test where the code under test requires a
different behavior than the Unit Test Framework.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Sean Brogan <sean.brogan@microsoft.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2020-07-15 05:25:21 +00:00
..
AArch64 MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
Arm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
Ebc MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
Ia32 MdePkg/BaseLib: Break out IA32/X64 GCC inline privileged functions 2020-07-15 05:25:21 +00:00
RiscV64 MdePkg/BaseLib: BaseLib for RISCV64 architecture 2020-05-07 03:17:15 +00:00
X64 MdePkg/BaseLib: Break out IA32/X64 GCC inline privileged functions 2020-07-15 05:25:21 +00:00
ARShiftU64.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseLib.inf MdePkg/BaseLib: Break out IA32/X64 GCC inline privileged functions 2020-07-15 05:25:21 +00:00
BaseLib.uni MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BaseLibInternals.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
BitField.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
CheckSum.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ChkStkGcc.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
Cpu.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
CpuDeadLoop.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
DivS64x64Remainder.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
DivU64x32.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
DivU64x32Remainder.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
DivU64x64Remainder.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
FilePaths.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
GetPowerOfTwo32.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
GetPowerOfTwo64.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
HighBitSet32.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
HighBitSet64.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
LinkedList.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
LongJump.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
LowBitSet32.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
LowBitSet64.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
LRotU32.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
LRotU64.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
LShiftU64.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
Math64.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ModU64x32.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
MultS64x64.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
MultU64x32.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
MultU64x64.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
RRotU32.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
RRotU64.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
RShiftU64.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SafeString.c MdePkg: Fix SafeString performing assertions on runtime checks 2020-05-22 00:03:14 +00:00
SetJump.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
String.c MdePkg/BaseLib: Base64Decode(): don't declare variables in nested blocks 2019-07-17 16:36:57 +02:00
SwapBytes16.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SwapBytes32.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SwapBytes64.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SwitchStack.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
Unaligned.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UnitTestHost.c MdePkg/Library/BaseLib: Add BaseLib instance for host based unit tests 2020-07-15 05:25:21 +00:00
UnitTestHost.h MdePkg/Library/BaseLib: Add BaseLib instance for host based unit tests 2020-07-15 05:25:21 +00:00
UnitTestHostBaseLib.inf MdePkg/Library/BaseLib: Add BaseLib instance for host based unit tests 2020-07-15 05:25:21 +00:00
UnitTestHostBaseLib.uni MdePkg/Library/BaseLib: Add BaseLib instance for host based unit tests 2020-07-15 05:25:21 +00:00
X86DisablePaging32.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
X86DisablePaging64.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
X86EnablePaging32.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
X86EnablePaging64.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
X86FxRestore.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
X86FxSave.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
X86GetInterruptState.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
X86MemoryFence.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
X86Msr.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
X86PatchInstruction.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
X86RdRand.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
X86ReadGdtr.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
X86ReadIdtr.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
X86SpeculationBarrier.c MdePkg/BaseLib: Use PcdSpeculationBarrierType 2019-04-30 16:39:15 -07:00
X86Thunk.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
X86UnitTestHost.c MdePkg/Library/BaseLib: Add BaseLib instance for host based unit tests 2020-07-15 05:25:21 +00:00
X86WriteGdtr.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
X86WriteIdtr.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00