public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Wu, Hao A" <hao.a.wu@intel.com>
To: "Kinney, Michael D" <michael.d.kinney@intel.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: Sean Brogan <sean.brogan@microsoft.com>,
	Bret Barkelew <Bret.Barkelew@microsoft.com>,
	"Gao, Liming" <liming.gao@intel.com>
Subject: Re: [Patch 09/11] MdeModulePkg: Add DxeResetSystemLib unit test
Date: Fri, 7 Feb 2020 01:25:44 +0000	[thread overview]
Message-ID: <B80AF82E9BFB8E4FBD8C89DA810C6A093C9A4E5E@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <20200124021032.13808-10-michael.d.kinney@intel.com>

> -----Original Message-----
> From: Kinney, Michael D
> Sent: Friday, January 24, 2020 10:11 AM
> To: devel@edk2.groups.io
> Cc: Sean Brogan; Bret Barkelew; Gao, Liming; Wu, Hao A
> Subject: [Patch 09/11] MdeModulePkg: Add DxeResetSystemLib unit test
> 
> * Add unit test of DxeResetSystemLib library
>   instance that uses cmocka interfaces to mock the
>   UEFI Runtime Services Table and its ResetSystem()
>   service.  When a unit test uses the cmocka
>   interfaces, the unit test does not support being
>   run from target environments.
> 
>   cmocka APIs: https://api.cmocka.org/index.html
> 
>   This example puts the unit test in a UnitTest
>   directory below the library INF file and this location
>   means the unit test is only designed to work this
>   this one library instance.
> 
> * Add Test/MdeModulePkgHostTest.dsc to build host
>   based unit tests


Acked-by: Hao A Wu <hao.a.wu@intel.com>

Best Regards,
Hao Wu


> 
> Cc: Sean Brogan <sean.brogan@microsoft.com>
> Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Hao A Wu <hao.a.wu@intel.com>
> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
> ---
>  .../UnitTest/DxeResetSystemLibUnitTest.c      | 312 ++++++++++++++++++
>  .../DxeResetSystemLibUnitTestHost.inf         |  34 ++
>  .../MockUefiRuntimeServicesTableLib.c         |  13 +
>  .../MockUefiRuntimeServicesTableLib.inf       |  25 ++
>  MdeModulePkg/MdeModulePkg.ci.yaml             |  13 +-
>  MdeModulePkg/Test/MdeModulePkgHostTest.dsc    |  32 ++
>  6 files changed, 428 insertions(+), 1 deletion(-)
>  create mode 100644
> MdeModulePkg/Library/DxeResetSystemLib/UnitTest/DxeResetSystemLibUn
> itTest.c
>  create mode 100644
> MdeModulePkg/Library/DxeResetSystemLib/UnitTest/DxeResetSystemLibUn
> itTestHost.inf
>  create mode 100644
> MdeModulePkg/Library/DxeResetSystemLib/UnitTest/MockUefiRuntimeServ
> icesTableLib.c
>  create mode 100644
> MdeModulePkg/Library/DxeResetSystemLib/UnitTest/MockUefiRuntimeServ
> icesTableLib.inf
>  create mode 100644 MdeModulePkg/Test/MdeModulePkgHostTest.dsc
> 
> diff --git
> a/MdeModulePkg/Library/DxeResetSystemLib/UnitTest/DxeResetSystemLib
> UnitTest.c
> b/MdeModulePkg/Library/DxeResetSystemLib/UnitTest/DxeResetSystemLib
> UnitTest.c
> new file mode 100644
> index 0000000000..5f7cedb61b
> --- /dev/null
> +++
> b/MdeModulePkg/Library/DxeResetSystemLib/UnitTest/DxeResetSystemLib
> UnitTest.c
> @@ -0,0 +1,312 @@
> +/** @file
> +  Unit tests of the DxeResetSystemLib instance of the ResetSystemLib class
> +
> +  Copyright (C) Microsoft Corporation.
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +#include <stdio.h>
> +#include <string.h>
> +#include <stdarg.h>
> +#include <stddef.h>
> +#include <setjmp.h>
> +#include <cmocka.h>
> +
> +#include <Uefi.h>
> +#include <Library/BaseLib.h>
> +#include <Library/BaseMemoryLib.h>
> +#include <Library/DebugLib.h>
> +#include <Library/MemoryAllocationLib.h>
> +
> +#include <Library/UnitTestLib.h>
> +#include <Library/ResetSystemLib.h>
> +
> +#define UNIT_TEST_APP_NAME        "DxeResetSystemLib Unit Tests"
> +#define UNIT_TEST_APP_VERSION     "1.0"
> +
> +/**
> +  Resets the entire platform.
> +
> +  @param[in]  ResetType         The type of reset to perform.
> +  @param[in]  ResetStatus       The status code for the reset.
> +  @param[in]  DataSize          The size, in bytes, of ResetData.
> +  @param[in]  ResetData         For a ResetType of EfiResetCold,
> EfiResetWarm, or
> +                                EfiResetShutdown the data buffer starts with a Null-
> terminated
> +                                string, optionally followed by additional binary data.
> +                                The string is a description that the caller may use to
> further
> +                                indicate the reason for the system reset.
> +                                For a ResetType of EfiResetPlatformSpecific the data
> buffer
> +                                also starts with a Null-terminated string that is followed
> +                                by an EFI_GUID that describes the specific type of reset to
> perform.
> +**/
> +STATIC
> +VOID
> +EFIAPI
> +MockResetSystem (
> +  IN EFI_RESET_TYPE           ResetType,
> +  IN EFI_STATUS               ResetStatus,
> +  IN UINTN                    DataSize,
> +  IN VOID                     *ResetData OPTIONAL
> +  )
> +{
> +  check_expected_ptr (ResetType);
> +  check_expected_ptr (ResetStatus);
> +
> +  //
> +  // NOTE: Mocked functions can also return values, but that
> +  //       is for another demo.
> +}
> +
> +///
> +/// Mock version of the UEFI Runtime Services Table
> +///
> +EFI_RUNTIME_SERVICES  MockRuntime = {
> +  {
> +    EFI_RUNTIME_SERVICES_SIGNATURE,     // Signature
> +    EFI_RUNTIME_SERVICES_REVISION,      // Revision
> +    sizeof (EFI_RUNTIME_SERVICES),      // HeaderSize
> +    0,                                  // CRC32
> +    0                                   // Reserved
> +  },
> +  NULL,               // GetTime
> +  NULL,               // SetTime
> +  NULL,               // GetWakeupTime
> +  NULL,               // SetWakeupTime
> +  NULL,               // SetVirtualAddressMap
> +  NULL,               // ConvertPointer
> +  NULL,               // GetVariable
> +  NULL,               // GetNextVariableName
> +  NULL,               // SetVariable
> +  NULL,               // GetNextHighMonotonicCount
> +  MockResetSystem,    // ResetSystem
> +  NULL,               // UpdateCapsule
> +  NULL,               // QueryCapsuleCapabilities
> +  NULL                // QueryVariableInfo
> +};
> +
> +/**
> +  Unit test for ColdReset () API of the ResetSystemLib.
> +
> +  @param[in]  Context    [Optional] An optional paramter that enables:
> +                         1) test-case reuse with varied parameters and
> +                         2) test-case re-entry for Target tests that need a
> +                         reboot.  This parameter is a VOID* and it is the
> +                         responsibility of the test author to ensure that the
> +                         contents are well understood by all test cases that may
> +                         consume it.
> +
> +  @retval  UNIT_TEST_PASSED             The Unit test has completed and the
> test
> +                                        case was successful.
> +  @retval  UNIT_TEST_ERROR_TEST_FAILED  A test case assertion has failed.
> +**/
> +UNIT_TEST_STATUS
> +EFIAPI
> +ResetColdShouldIssueAColdReset (
> +  IN UNIT_TEST_CONTEXT  Context
> +  )
> +{
> +  expect_value (MockResetSystem, ResetType, EfiResetCold);
> +  expect_value (MockResetSystem, ResetStatus, EFI_SUCCESS);
> +
> +  ResetCold ();
> +
> +  return UNIT_TEST_PASSED;
> +}
> +
> +/**
> +  Unit test for WarmReset () API of the ResetSystemLib.
> +
> +  @param[in]  Context    [Optional] An optional paramter that enables:
> +                         1) test-case reuse with varied parameters and
> +                         2) test-case re-entry for Target tests that need a
> +                         reboot.  This parameter is a VOID* and it is the
> +                         responsibility of the test author to ensure that the
> +                         contents are well understood by all test cases that may
> +                         consume it.
> +
> +  @retval  UNIT_TEST_PASSED             The Unit test has completed and the
> test
> +                                        case was successful.
> +  @retval  UNIT_TEST_ERROR_TEST_FAILED  A test case assertion has failed.
> +**/
> +UNIT_TEST_STATUS
> +EFIAPI
> +ResetWarmShouldIssueAWarmReset (
> +  IN UNIT_TEST_CONTEXT  Context
> +  )
> +{
> +  expect_value (MockResetSystem, ResetType, EfiResetWarm);
> +  expect_value (MockResetSystem, ResetStatus, EFI_SUCCESS);
> +
> +  ResetWarm ();
> +
> +  return UNIT_TEST_PASSED;
> +}
> +
> +/**
> +  Unit test for ResetShutdown () API of the ResetSystemLib.
> +
> +  @param[in]  Context    [Optional] An optional paramter that enables:
> +                         1) test-case reuse with varied parameters and
> +                         2) test-case re-entry for Target tests that need a
> +                         reboot.  This parameter is a VOID* and it is the
> +                         responsibility of the test author to ensure that the
> +                         contents are well understood by all test cases that may
> +                         consume it.
> +
> +  @retval  UNIT_TEST_PASSED             The Unit test has completed and the
> test
> +                                        case was successful.
> +  @retval  UNIT_TEST_ERROR_TEST_FAILED  A test case assertion has failed.
> +**/
> +UNIT_TEST_STATUS
> +EFIAPI
> +ResetShutdownShouldIssueAShutdown (
> +  IN UNIT_TEST_CONTEXT  Context
> +  )
> +{
> +  expect_value (MockResetSystem, ResetType, EfiResetShutdown);
> +  expect_value (MockResetSystem, ResetStatus, EFI_SUCCESS);
> +
> +  ResetShutdown ();
> +
> +  return UNIT_TEST_PASSED;
> +}
> +
> +/**
> +  Unit test for ResetPlatformSpecific () API of the ResetSystemLib.
> +
> +  @param[in]  Context    [Optional] An optional paramter that enables:
> +                         1) test-case reuse with varied parameters and
> +                         2) test-case re-entry for Target tests that need a
> +                         reboot.  This parameter is a VOID* and it is the
> +                         responsibility of the test author to ensure that the
> +                         contents are well understood by all test cases that may
> +                         consume it.
> +
> +  @retval  UNIT_TEST_PASSED             The Unit test has completed and the
> test
> +                                        case was successful.
> +  @retval  UNIT_TEST_ERROR_TEST_FAILED  A test case assertion has failed.
> +**/
> +UNIT_TEST_STATUS
> +EFIAPI
> +ResetPlatformSpecificShouldIssueAPlatformSpecificReset (
> +  IN UNIT_TEST_CONTEXT  Context
> +  )
> +{
> +  expect_value (MockResetSystem, ResetType, EfiResetPlatformSpecific);
> +  expect_value (MockResetSystem, ResetStatus, EFI_SUCCESS);
> +
> +  ResetPlatformSpecific (0, NULL);
> +
> +  return UNIT_TEST_PASSED;
> +}
> +
> +/**
> +  Unit test for ResetSystem () API of the ResetSystemLib.
> +
> +  @param[in]  Context    [Optional] An optional paramter that enables:
> +                         1) test-case reuse with varied parameters and
> +                         2) test-case re-entry for Target tests that need a
> +                         reboot.  This parameter is a VOID* and it is the
> +                         responsibility of the test author to ensure that the
> +                         contents are well understood by all test cases that may
> +                         consume it.
> +
> +  @retval  UNIT_TEST_PASSED             The Unit test has completed and the
> test
> +                                        case was successful.
> +  @retval  UNIT_TEST_ERROR_TEST_FAILED  A test case assertion has failed.
> +**/
> +UNIT_TEST_STATUS
> +EFIAPI
> +ResetSystemShouldPassTheParametersThrough (
> +  IN UNIT_TEST_CONTEXT  Context
> +  )
> +{
> +  expect_value (MockResetSystem, ResetType, EfiResetCold);
> +  expect_value (MockResetSystem, ResetStatus, EFI_SUCCESS);
> +
> +  ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL);
> +
> +  expect_value (MockResetSystem, ResetType, EfiResetShutdown);
> +  expect_value (MockResetSystem, ResetStatus, EFI_SUCCESS);
> +
> +  ResetSystem (EfiResetShutdown, EFI_SUCCESS, 0, NULL);
> +
> +  return UNIT_TEST_PASSED;
> +}
> +
> +/**
> +  Initialze the unit test framework, suite, and unit tests for the
> +  ResetSystemLib and run the ResetSystemLib unit test.
> +
> +  @retval  EFI_SUCCESS           All test cases were dispached.
> +  @retval  EFI_OUT_OF_RESOURCES  There are not enough resources
> available to
> +                                 initialize the unit tests.
> +**/
> +STATIC
> +EFI_STATUS
> +EFIAPI
> +UnitTestingEntry (
> +  VOID
> +  )
> +{
> +  EFI_STATUS                  Status;
> +  UNIT_TEST_FRAMEWORK_HANDLE  Framework;
> +  UNIT_TEST_SUITE_HANDLE      ResetTests;
> +
> +  Framework = NULL;
> +
> +  DEBUG(( DEBUG_INFO, "%a v%a\n", UNIT_TEST_APP_NAME,
> UNIT_TEST_APP_VERSION ));
> +
> +  //
> +  // Start setting up the test framework for running the tests.
> +  //
> +  Status = InitUnitTestFramework (&Framework, UNIT_TEST_APP_NAME,
> gEfiCallerBaseName, UNIT_TEST_APP_VERSION);
> +  if (EFI_ERROR (Status)) {
> +      DEBUG ((DEBUG_ERROR, "Failed in InitUnitTestFramework. Status
> = %r\n", Status));
> +      goto EXIT;
> +  }
> +
> +  //
> +  // Populate the ResetSytemLib Unit Test Suite.
> +  //
> +  Status = CreateUnitTestSuite (&ResetTests, Framework,
> "DxeResetSystemLib Reset Tests", "ResetSystemLib.Reset", NULL, NULL);
> +  if (EFI_ERROR (Status)) {
> +    DEBUG ((DEBUG_ERROR, "Failed in CreateUnitTestSuite for
> ResetTests\n"));
> +    Status = EFI_OUT_OF_RESOURCES;
> +    goto EXIT;
> +  }
> +
> +  //
> +  // --------------Suite-----------Description--------------Name----------Function-
> -------Pre---Post-------------------Context-----------
> +  //
> +  AddTestCase (ResetTests, "ResetCold should issue a cold reset", "Cold",
> ResetColdShouldIssueAColdReset, NULL, NULL, NULL);
> +  AddTestCase (ResetTests, "ResetWarm should issue a warm reset",
> "Warm", ResetWarmShouldIssueAWarmReset, NULL, NULL, NULL);
> +  AddTestCase (ResetTests, "ResetShutdown should issue a shutdown",
> "Shutdown", ResetShutdownShouldIssueAShutdown, NULL, NULL, NULL);
> +  AddTestCase (ResetTests, "ResetPlatformSpecific should issue a platform-
> specific reset", "Platform",
> ResetPlatformSpecificShouldIssueAPlatformSpecificReset, NULL, NULL,
> NULL);
> +  AddTestCase (ResetTests, "ResetSystem should pass all parameters
> through", "Parameters", ResetSystemShouldPassTheParametersThrough,
> NULL, NULL, NULL);
> +
> +  //
> +  // Execute the tests.
> +  //
> +  Status = RunAllTestSuites (Framework);
> +
> +EXIT:
> +  if (Framework) {
> +    FreeUnitTestFramework (Framework);
> +  }
> +
> +  return Status;
> +}
> +
> +/**
> +  Standard POSIX C entry point for host based unit test execution.
> +**/
> +int
> +main (
> +  int argc,
> +  char *argv[]
> +  )
> +{
> +  return UnitTestingEntry ();
> +}
> diff --git
> a/MdeModulePkg/Library/DxeResetSystemLib/UnitTest/DxeResetSystemLib
> UnitTestHost.inf
> b/MdeModulePkg/Library/DxeResetSystemLib/UnitTest/DxeResetSystemLib
> UnitTestHost.inf
> new file mode 100644
> index 0000000000..54f968e810
> --- /dev/null
> +++
> b/MdeModulePkg/Library/DxeResetSystemLib/UnitTest/DxeResetSystemLib
> UnitTestHost.inf
> @@ -0,0 +1,34 @@
> +## @file
> +# Unit tests of the DxeResetSystemLib instance of the ResetSystemLib class
> +#
> +# Copyright (C) Microsoft Corporation.
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
> +##
> +
> +[Defines]
> +  INF_VERSION                    = 0x00010006
> +  BASE_NAME                      = DxeResetSystemLibUnitTestHost
> +  FILE_GUID                      = 83E35653-B943-4C5F-BA08-9B2996AE9273
> +  MODULE_TYPE                    = HOST_APPLICATION
> +  VERSION_STRING                 = 1.0
> +
> +#
> +# The following information is for reference only and not required by the
> build tools.
> +#
> +#  VALID_ARCHITECTURES           = IA32 X64
> +#
> +
> +[Sources]
> +  DxeResetSystemLibUnitTest.c
> +
> +[Packages]
> +  MdePkg/MdePkg.dec
> +  MdeModulePkg/MdeModulePkg.dec
> +  UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> +
> +[LibraryClasses]
> +  ResetSystemLib
> +  BaseLib
> +  BaseMemoryLib
> +  DebugLib
> +  UnitTestLib
> diff --git
> a/MdeModulePkg/Library/DxeResetSystemLib/UnitTest/MockUefiRuntimeSe
> rvicesTableLib.c
> b/MdeModulePkg/Library/DxeResetSystemLib/UnitTest/MockUefiRuntimeSe
> rvicesTableLib.c
> new file mode 100644
> index 0000000000..3540e1c039
> --- /dev/null
> +++
> b/MdeModulePkg/Library/DxeResetSystemLib/UnitTest/MockUefiRuntimeSe
> rvicesTableLib.c
> @@ -0,0 +1,13 @@
> +/** @file
> +  Mock implementation of the UEFI Runtime Services Table Library.
> +
> +  Copyright (C) Microsoft Corporation.
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +#include <Uefi.h>
> +
> +extern EFI_RUNTIME_SERVICES  MockRuntime;
> +
> +EFI_RUNTIME_SERVICES  *gRT = &MockRuntime;
> diff --git
> a/MdeModulePkg/Library/DxeResetSystemLib/UnitTest/MockUefiRuntimeSe
> rvicesTableLib.inf
> b/MdeModulePkg/Library/DxeResetSystemLib/UnitTest/MockUefiRuntimeSe
> rvicesTableLib.inf
> new file mode 100644
> index 0000000000..e716b855a3
> --- /dev/null
> +++
> b/MdeModulePkg/Library/DxeResetSystemLib/UnitTest/MockUefiRuntimeSe
> rvicesTableLib.inf
> @@ -0,0 +1,25 @@
> +## @file
> +#  Mock implementation of the UEFI Runtime Services Table Library.
> +#
> +#  Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
> +#  SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +[Defines]
> +  INF_VERSION                    = 0x00010005
> +  BASE_NAME                      = MockUefiRuntimeServicesTableLib
> +  FILE_GUID                      = 4EA215EE-85C1-4A0A-847F-D2A8DE20805F
> +  MODULE_TYPE                    = UEFI_DRIVER
> +  VERSION_STRING                 = 1.0
> +  LIBRARY_CLASS                  =
> UefiRuntimeServicesTableLib|HOST_APPLICATION
> +
> +#
> +#  VALID_ARCHITECTURES           = IA32 X64 EBC
> +#
> +
> +[Sources]
> +  MockUefiRuntimeServicesTableLib.c
> +
> +[Packages]
> +  MdePkg/MdePkg.dec
> diff --git a/MdeModulePkg/MdeModulePkg.ci.yaml
> b/MdeModulePkg/MdeModulePkg.ci.yaml
> index 0bf149f205..3b6e747075 100644
> --- a/MdeModulePkg/MdeModulePkg.ci.yaml
> +++ b/MdeModulePkg/MdeModulePkg.ci.yaml
> @@ -9,6 +9,10 @@
>      "CompilerPlugin": {
>          "DscPath": "MdeModulePkg.dsc"
>      },
> +    ## options defined ci/Plugin/HostUnitTestCompilerPlugin
> +    "HostUnitTestCompilerPlugin": {
> +        "DscPath": "Test/MdeModulePkgHostTest.dsc"
> +    },
> 
>      ## options defined ci/Plugin/CharEncodingCheck
>      "CharEncodingCheck": {
> @@ -24,7 +28,9 @@
>              "ArmPkg/ArmPkg.dec"  # this should be fixed by promoting an
> abstraction
>          ],
>          # For host based unit tests
> -        "AcceptableDependencies-HOST_APPLICATION":[],
> +        "AcceptableDependencies-HOST_APPLICATION":[
> +            "UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec"
> +        ],
>          # For UEFI shell based apps
>          "AcceptableDependencies-UEFI_APPLICATION":[],
>          "IgnoreInf": []
> @@ -35,6 +41,11 @@
>          "IgnoreInf": [],
>          "DscPath": "MdeModulePkg.dsc"
>      },
> +    ## options defined ci/Plugin/HostUnitTestDscCompleteCheck
> +    "HostUnitTestDscCompleteCheck": {
> +        "IgnoreInf": [""],
> +        "DscPath": "Test/MdeModulePkgHostTest.dsc"
> +    },
> 
>      ## options defined ci/Plugin/GuidCheck
>      "GuidCheck": {
> diff --git a/MdeModulePkg/Test/MdeModulePkgHostTest.dsc
> b/MdeModulePkg/Test/MdeModulePkgHostTest.dsc
> new file mode 100644
> index 0000000000..72a119db45
> --- /dev/null
> +++ b/MdeModulePkg/Test/MdeModulePkgHostTest.dsc
> @@ -0,0 +1,32 @@
> +## @file
> +# MdeModulePkg DSC file used to build host-based unit tests.
> +#
> +# Copyright (c) 2019 - 2020, Intel Corporation. All rights reserved.<BR>
> +# Copyright (C) Microsoft Corporation.
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +[Defines]
> +  PLATFORM_NAME           = MdeModulePkgHostTest
> +  PLATFORM_GUID           = F74AF7C6-698C-4EBA-BA49-FF6816916354
> +  PLATFORM_VERSION        = 0.1
> +  DSC_SPECIFICATION       = 0x00010005
> +  OUTPUT_DIRECTORY        = Build/MdeModulePkg/HostTest
> +  SUPPORTED_ARCHITECTURES = IA32|X64
> +  BUILD_TARGETS           = NOOPT
> +  SKUID_IDENTIFIER        = DEFAULT
> +
> +!include UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc
> +
> +[Components]
> +
> MdeModulePkg/Library/DxeResetSystemLib/UnitTest/MockUefiRuntimeServ
> icesTableLib.inf
> +
> +  #
> +  # Build MdeModulePkg HOST_APPLICATION Tests
> +  #
> +
> MdeModulePkg/Library/DxeResetSystemLib/UnitTest/DxeResetSystemLibUn
> itTestHost.inf {
> +    <LibraryClasses>
> +
> ResetSystemLib|MdeModulePkg/Library/DxeResetSystemLib/DxeResetSyste
> mLib.inf
> +
> UefiRuntimeServicesTableLib|MdeModulePkg/Library/DxeResetSystemLib/U
> nitTest/MockUefiRuntimeServicesTableLib.inf
> +  }
> --
> 2.21.0.windows.1


  parent reply	other threads:[~2020-02-07  1:25 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-24  2:10 [Patch 00/11] Add Unit Test Framework Michael D Kinney
2020-01-24  2:10 ` [Patch 01/11] .pytool: Add CI support for host based unit tests with results Michael D Kinney
2020-01-27 23:28   ` [edk2-devel] " brbarkel
2020-01-24  2:10 ` [Patch 02/11] BaseTools/Plugin: Add HostBasedUnitTestRunner plugin Michael D Kinney
2020-01-27 23:29   ` [edk2-devel] " brbarkel
2020-02-07  2:32   ` Bob Feng
2020-01-24  2:10 ` [Patch 03/11] MdePkg/Include/Library: Add UnitTestLib class Michael D Kinney
2020-01-27 23:42   ` [edk2-devel] " brbarkel
2020-02-07  0:49   ` Michael D Kinney
2020-02-07  1:22   ` Wu, Hao A
2020-02-07  5:43     ` Bret Barkelew
2020-01-24  2:10 ` [Patch 04/11] UnitTestFrameworkPkg: Add public and private interfaces Michael D Kinney
2020-01-27 23:42   ` [edk2-devel] " brbarkel
2020-01-24  2:10 ` [Patch 05/11] UnitTestFrameworkPkg/Library: Add library instances Michael D Kinney
2020-01-27 23:43   ` [edk2-devel] " brbarkel
2020-01-24  2:10 ` [Patch 06/11] UnitTestFrameworkPkg/Test: Add unit test samples Michael D Kinney
2020-01-27 23:43   ` [edk2-devel] " brbarkel
2020-01-24  2:10 ` [Patch 07/11] UnitTestFrameworkPkg: Add DSC, DSC INC, and YAML files Michael D Kinney
2020-01-27 23:43   ` [edk2-devel] " brbarkel
2020-01-24  2:10 ` [Patch 08/11] MdePkg/Test: Add SafeIntLib and BaseLib Base64 unit tests Michael D Kinney
2020-01-27 23:43   ` [edk2-devel] " brbarkel
2020-02-07  1:27   ` Wu, Hao A
2020-02-07  7:56   ` Liming Gao
2020-02-07 16:05     ` Michael D Kinney
2020-01-24  2:10 ` [Patch 09/11] MdeModulePkg: Add DxeResetSystemLib unit test Michael D Kinney
2020-01-27 23:43   ` [edk2-devel] " brbarkel
2020-02-07  1:25   ` Wu, Hao A [this message]
2020-01-24  2:10 ` [Patch 10/11] .azurepipelines: Enable CI for UnitTestFrameworkPkg and host tests Michael D Kinney
2020-01-27 23:44   ` [edk2-devel] " brbarkel
2020-01-24  2:10 ` [Patch 11/11] Maintainers.txt: Add UnitTestFrameworkPkg Michael D Kinney
2020-01-24 10:22   ` Laszlo Ersek
2020-01-27 23:44     ` [edk2-devel] " brbarkel
2020-01-27 23:28 ` [edk2-devel] [Patch 00/11] Add Unit Test Framework brbarkel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=B80AF82E9BFB8E4FBD8C89DA810C6A093C9A4E5E@SHSMSX104.ccr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox