## @file
# edk2 package declaration for the test helper UEFI applications that run in
# guests.
#
# Copyright (C) 2019, Red Hat, Inc.
#
# This program and the accompanying materials are licensed and made available
# under the terms and conditions of the BSD License that accompanies this
# distribution. The full text of the license may be found at
# <http://opensource.org/licenses/bsd-license.php>.
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT
# WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
##

[Defines]
  DEC_SPECIFICATION = 1.27
  PACKAGE_NAME      = UefiTestToolsPkg
  PACKAGE_GUID      = 7b3f1794-0c85-4b27-a536-44dbf0b0669c
  PACKAGE_VERSION   = 0.1

[Includes]
  Include

[Guids]
  gBiosTablesTestGuid = {0x5478594e, 0xdfcb, 0x425f, {0x8e, 0x42, 0xc8, 0xaf, 0xf8, 0x8a, 0x88, 0x7a}}

