## @file
# This Package provides all definitions (including functions, MACROs,
# structures library classes, and PCDs) and libraries instances, which are used
# to support unit testing and interface testing.
#
# Copyright (c) Microsoft Corporation.<BR>
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  DEC_SPECIFICATION = 0x00010005
  PACKAGE_NAME      = UnitTestFrameworkPkg
  PACKAGE_UNI_FILE  = UnitTestFrameworkPkg.uni
  PACKAGE_GUID      = 4A70C4A0-D72C-4D3F-9943-BE7C41C50BA3
  PACKAGE_VERSION   = 1.00

[Includes]
  Include
  Library/CmockaLib/cmocka/include
  Library/GoogleTestLib/googletest/googletest/include
  Library/GoogleTestLib/googletest/googlemock/include

[Includes.Common.Private]
  PrivateInclude
  Library/CmockaLib/cmocka/include/cmockery
  Library/GoogleTestLib/googletest/googletest

[LibraryClasses]
  ## @libraryclass Allows save and restore unit test internal state
  #
  UnitTestPersistenceLib|Include/Library/UnitTestPersistenceLib.h

  ## @libraryclass GoogleTest infrastructure
  #
  GoogleTestLib|Include/Library/GoogleTestLib.h

[LibraryClasses.Common.Private]
  ## @libraryclass Provides a unit test result report
  #
  UnitTestResultReportLib|PrivateInclude/Library/UnitTestResultReportLib.h

  ## @libraryclass Provides boot-option routines useful in shell-based tests.
  #
  UnitTestBootLib|PrivateInclude/Library/UnitTestBootLib.h

[Guids]
  gUnitTestFrameworkPkgTokenSpaceGuid = { 0x833d3aba, 0x39b4, 0x43a2, { 0xb9, 0x30, 0x7a, 0x34, 0x53, 0x39, 0x31, 0xb3 } }

[PcdsFixedAtBuild]
  ## This flag is used to control build time optimization based on unit test
  #  log level.  The default value is 0xFFFFFFFF to enable all unit test log
  #  messages.
  #  BIT0 - Error unit test log messages.<BR>
  #  BIT1 - Warning unit test log messages.<BR>
  #  BIT2 - Informational unit test log messages.<BR>
  #  BIT3 - Verbose unit test log messages.<BR>
  # @Prompt  Unit Test Log Message Level
  gUnitTestFrameworkPkgTokenSpaceGuid.PcdUnitTestLogLevel|0xFFFFFFFF|UINT32|0x00000001
