public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "wenyi,xie" <xiewenyi2@huawei.com>
To: "Wu, Hao A" <hao.a.wu@intel.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "songdongkuang@huawei.com" <songdongkuang@huawei.com>,
	"Wang, Jian J" <jian.j.wang@intel.com>
Subject: Re: [edk2-devel] [PATCH EDK2 v2 1/1] MdeModulePkg/UefiSortLib:Add UefiSortLib unit test
Date: Wed, 4 Aug 2021 16:04:47 +0800	[thread overview]
Message-ID: <d1daa964-a8ce-6dff-5e0a-90e4e605c0b4@huawei.com> (raw)
In-Reply-To: <BN8PR11MB3666AFEADD0326F65C542F16CAEF9@BN8PR11MB3666.namprd11.prod.outlook.com>



On 2021/8/2 9:56, Wu, Hao A wrote:
>> -----Original Message-----
>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Wu, Hao
>> A
>> Sent: Thursday, July 29, 2021 4:26 PM
>> To: Wenyi Xie <xiewenyi2@huawei.com>; devel@edk2.groups.io; Wang, Jian
>> J <jian.j.wang@intel.com>
>> Cc: songdongkuang@huawei.com
>> Subject: Re: [edk2-devel] [PATCH EDK2 v2 1/1]
>> MdeModulePkg/UefiSortLib:Add UefiSortLib unit test
>>
>>> -----Original Message-----
>>> From: Wenyi Xie <xiewenyi2@huawei.com>
>>> Sent: Thursday, July 29, 2021 4:01 PM
>>> To: devel@edk2.groups.io; Wang, Jian J <jian.j.wang@intel.com>; Wu,
>>> Hao A <hao.a.wu@intel.com>
>>> Cc: songdongkuang@huawei.com; xiewenyi2@huawei.com
>>> Subject: [PATCH EDK2 v2 1/1] MdeModulePkg/UefiSortLib:Add UefiSortLib
>>> unit test
>>>
>>> Adding two unit test case for UefiSortLib. One is a test on sorting an
>>> array of
>>> UINT32 by using PerformQuickSort, another is a test on comparing the
>>> same buffer by using StringCompare.
>>
>>
>> Thanks.
>> Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
> 
> 
> Sorry, I found that there are a couple of coding format style check failures when merging the patch.
> Could you help to resolve them and then create a test pull request on the GitHub for verification? Thanks in advance.
> (I think you can take the case under MdeModulePkg/Universal/Variable/RuntimeDxe/RuntimeDxeUnitTest/ for reference.)
> 

Hi, Wu Hao

I try to deal with the coding format style check failures, and meet a failure which I am not sure how to solve.
I take the case you told for reference, but still there's a failure said the define should be capital letters.
but if change it to capital letters, there will be another error
Function name does not follow the rules: 1. First character should be upper case 2. Must contain lower case characters 3. No white space characters

#define Main main

INT32
Main (
  IN INT32  Argc,
  IN CHAR8  *Argv[]
  )
{
  UnitTestingEntry ();
  return 0;
}

Thanks
Wenyi

> Error details:
> 2021-08-02T01:09:28.5955820Z ##[section]Starting: Build and Test MdeModulePkg IA32,X64,ARM,AARCH64,RISCV64
> 2021-08-02T01:09:28.5960733Z ==============================================================================
> 2021-08-02T01:09:28.5961018Z Task         : Command Line
> 2021-08-02T01:09:28.5961258Z Description  : Run a command line with arguments
> 2021-08-02T01:09:28.5961502Z Version      : 1.1.3
> 2021-08-02T01:09:28.5961897Z Author       : Microsoft Corporation
> 2021-08-02T01:09:28.5962259Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkID=613735)
> 2021-08-02T01:09:28.5962678Z ==============================================================================
> 2021-08-02T01:09:29.3504946Z (node:3659) Warning: Use Cipheriv for counter mode of aes-256-ctr
> 2021-08-02T01:09:29.3510020Z (node:3659) Warning: Use Cipheriv for counter mode of aes-256-ctr
> 2021-08-02T01:09:29.3511551Z (node:3659) Warning: Use Cipheriv for counter mode of aes-256-ctr
> 2021-08-02T01:09:29.3513605Z (node:3659) Warning: Use Cipheriv for counter mode of aes-256-ctr
> 2021-08-02T01:09:29.3516798Z (node:3659) Warning: Use Cipheriv for counter mode of aes-256-ctr
> 2021-08-02T01:09:29.3517536Z (node:3659) Warning: Use Cipheriv for counter mode of aes-256-ctr
> 2021-08-02T01:09:29.3518178Z (node:3659) Warning: Use Cipheriv for counter mode of aes-256-ctr
> 2021-08-02T01:09:29.3545461Z [command]/opt/hostedtoolcache/Python/3.8.11/x64/bin/stuart_ci_build -c .pytool/CISettings.py -p MdeModulePkg -t RELEASE,NO-TARGET -a IA32,X64,ARM,AARCH64,RISCV64 TOOL_CHAIN_TAG=GCC5
> 2021-08-02T01:09:29.3546707Z SECTION - Init SDE
> 2021-08-02T01:09:29.3547571Z WARNING - Using Pip Tools based BaseTools
> 2021-08-02T01:09:29.3548395Z SECTION - Loading Plugins
> 2021-08-02T01:09:29.3549212Z SECTION - Start Invocable Tool
> 2021-08-02T01:09:29.3550018Z SECTION - Getting Environment
> 2021-08-02T01:09:29.3550794Z SECTION - Loading plugins
> 2021-08-02T01:09:29.3551675Z SECTION - Building MdeModulePkg Package
> 2021-08-02T01:09:29.3552693Z PROGRESS - --Running MdeModulePkg: EccCheck Test NO-TARGET --
> 2021-08-02T01:09:33.0697006Z ERROR - 
> 2021-08-02T01:09:33.0698018Z ERROR - EFI coding style error
> 2021-08-02T01:09:33.0698748Z ERROR - *Error code: 5007
> 2021-08-02T01:09:33.0700631Z ERROR - *There should be no initialization of a variable as part of its declaration
> 2021-08-02T01:09:33.0702675Z ERROR - *file: //home/vsts/work/1/s/MdeModulePkg/Library/UefiSortLib/UnitTest/UefiSortLibUnitTest.c
> 2021-08-02T01:09:33.0703421Z ERROR - *Line number: 77
> 2021-08-02T01:09:33.0703929Z ERROR - *Variable Name: TestCount
> 2021-08-02T01:09:33.0715684Z ERROR - 
> 2021-08-02T01:09:33.0716634Z ERROR - EFI coding style error
> 2021-08-02T01:09:33.0717372Z ERROR - *Error code: 5007
> 2021-08-02T01:09:33.0718214Z ERROR - *There should be no initialization of a variable as part of its declaration
> 2021-08-02T01:09:33.0719195Z ERROR - *file: //home/vsts/work/1/s/MdeModulePkg/Library/UefiSortLib/UnitTest/UefiSortLibUnitTest.c
> 2021-08-02T01:09:33.0720631Z ERROR - *Line number: 78
> 2021-08-02T01:09:33.0721451Z ERROR - *Variable Name: TestBuffer
> 2021-08-02T01:09:33.0722114Z ERROR - 
> 2021-08-02T01:09:33.0724953Z ERROR - EFI coding style error
> 2021-08-02T01:09:33.0725713Z ERROR - *Error code: 5007
> 2021-08-02T01:09:33.0726562Z ERROR - *There should be no initialization of a variable as part of its declaration
> 2021-08-02T01:09:33.0727526Z ERROR - *file: //home/vsts/work/1/s/MdeModulePkg/Library/UefiSortLib/UnitTest/UefiSortLibUnitTest.c
> 2021-08-02T01:09:33.0728345Z ERROR - *Line number: 79
> 2021-08-02T01:09:33.0729046Z ERROR - *Variable Name: TestResult
> 2021-08-02T01:09:33.0729694Z ERROR - 
> 2021-08-02T01:09:33.0732496Z ERROR - EFI coding style error
> 2021-08-02T01:09:33.0733224Z ERROR - *Error code: 7001
> 2021-08-02T01:09:33.0734114Z ERROR - *There should be no use of int, unsigned, char, void, long in any .c, .h or .asl files
> 2021-08-02T01:09:33.0737620Z ERROR - *file: //home/vsts/work/1/s/MdeModulePkg/Library/UefiSortLib/UnitTest/UefiSortLibUnitTest.c
> 2021-08-02T01:09:33.0739185Z ERROR - *Line number: 117
> 2021-08-02T01:09:33.0741301Z ERROR - *[main] Return type int
> 2021-08-02T01:09:33.0744099Z ERROR - 
> 2021-08-02T01:09:33.0744829Z ERROR - EFI coding style error
> 2021-08-02T01:09:33.0745459Z ERROR - *Error code: 7001
> 2021-08-02T01:09:33.0746821Z ERROR - *There should be no use of int, unsigned, char, void, long in any .c, .h or .asl files
> 2021-08-02T01:09:33.0747774Z ERROR - *file: //home/vsts/work/1/s/MdeModulePkg/Library/UefiSortLib/UnitTest/UefiSortLibUnitTest.c
> 2021-08-02T01:09:33.0749076Z ERROR - *Line number: 117
> 2021-08-02T01:09:33.0749713Z ERROR - *Parameter argc
> 2021-08-02T01:09:33.0750999Z ERROR - 
> 2021-08-02T01:09:33.0751607Z ERROR - EFI coding style error
> 2021-08-02T01:09:33.0754599Z ERROR - *Error code: 7001
> 2021-08-02T01:09:33.0761175Z ERROR - *There should be no use of int, unsigned, char, void, long in any .c, .h or .asl files
> 2021-08-02T01:09:33.0762167Z ERROR - *file: //home/vsts/work/1/s/MdeModulePkg/Library/UefiSortLib/UnitTest/UefiSortLibUnitTest.c
> 2021-08-02T01:09:33.0763160Z ERROR - *Line number: 117
> 2021-08-02T01:09:33.0763741Z ERROR - *Parameter argv
> 2021-08-02T01:09:33.0764290Z ERROR - 
> 2021-08-02T01:09:33.0764843Z ERROR - EFI coding style error
> 2021-08-02T01:09:33.0766810Z ERROR - *Error code: 8006
> 2021-08-02T01:09:33.0767819Z ERROR - *Function name does not follow the rules: 1. First character should be upper case 2. Must contain lower case characters 3. No white space characters
> 2021-08-02T01:09:33.0768881Z ERROR - *file: //home/vsts/work/1/s/MdeModulePkg/Library/UefiSortLib/UnitTest/UefiSortLibUnitTest.c
> 2021-08-02T01:09:33.0769619Z ERROR - *Line number: 181
> 2021-08-02T01:09:33.0773329Z ERROR - *The function name [main] does not follow the rules
> 2021-08-02T01:09:33.0791935Z ERROR - 
> 2021-08-02T01:09:33.0793865Z ERROR - EFI coding style error
> 2021-08-02T01:09:33.0794555Z ERROR - *Error code: 9002
> 2021-08-02T01:09:33.0795350Z ERROR - *The function headers should follow Doxygen special documentation blocks in section 2.3.5
> 2021-08-02T01:09:33.0796271Z ERROR - *file: //home/vsts/work/1/s/MdeModulePkg/Library/UefiSortLib/UnitTest/UefiSortLibUnitTest.c
> 2021-08-02T01:09:33.0796985Z ERROR - *Line number: 178
> 2021-08-02T01:09:33.0797610Z ERROR - *No doxygen tags in comment
> 2021-08-02T01:09:33.0798208Z ERROR - 
> 2021-08-02T01:09:33.0798859Z ERROR - --->Test Failed: EccCheck Test NO-TARGET returned 1
> 2021-08-02T01:09:33.0807351Z PROGRESS - --Running MdeModulePkg: Dsc Complete Check Test NO-TARGET --
> 2021-08-02T01:09:33.1524790Z PROGRESS - --->Test Success: Dsc Complete Check Test NO-TARGET
> 2021-08-02T01:09:33.1536004Z PROGRESS - --Running MdeModulePkg: Char Encoding Check Test NO-TARGET --
> 2021-08-02T01:09:33.6280380Z PROGRESS - --->Test Success: Char Encoding Check Test NO-TARGET
> 2021-08-02T01:09:33.6289076Z PROGRESS - --Running MdeModulePkg: License Check Test NO-TARGET --
> 2021-08-02T01:09:33.6495642Z PROGRESS - --->Test Success: License Check Test NO-TARGET
> 2021-08-02T01:09:33.6508125Z PROGRESS - --Running MdeModulePkg: Compiler Plugin RELEASE --
> 2021-08-02T01:09:33.6785178Z PROGRESS - Start time: 2021-08-02 01:09:33.677952
> 2021-08-02T01:09:33.6787716Z PROGRESS - Setting up the Environment
> 2021-08-02T01:09:33.7725244Z PROGRESS - Running Pre Build
> 2021-08-02T01:09:33.7740357Z PROGRESS - Running Build RELEASE
> 2021-08-02T01:17:18.5479885Z PROGRESS - Running Post Build
> 2021-08-02T01:17:18.5511807Z PROGRESS - End time: 2021-08-02 01:17:18.549974	 Total time Elapsed: 0:07:44
> 2021-08-02T01:17:18.5512997Z PROGRESS - --->Test Success: Compiler Plugin RELEASE
> 2021-08-02T01:17:18.5519284Z PROGRESS - --Running MdeModulePkg: Library Class Check Test NO-TARGET --
> 2021-08-02T01:17:18.5639216Z PROGRESS - --->Test Success: Library Class Check Test NO-TARGET
> 2021-08-02T01:17:18.5648791Z PROGRESS - --Running MdeModulePkg: Dependency Check Test NO-TARGET --
> 2021-08-02T01:17:18.7306611Z PROGRESS - --->Test Success: Dependency Check Test NO-TARGET
> 2021-08-02T01:17:18.7316162Z PROGRESS - --Running MdeModulePkg: Spell Check Test NO-TARGET --
> 2021-08-02T01:17:23.7922166Z WARNING - --->Test Skipped: in plugin! Spell Check Test NO-TARGET
> 2021-08-02T01:17:23.7934112Z PROGRESS - --Running MdeModulePkg: Guid Check Test NO-TARGET --
> 2021-08-02T01:17:27.1928850Z PROGRESS - --->Test Success: Guid Check Test NO-TARGET
> 2021-08-02T01:17:27.1939129Z PROGRESS - --Running MdeModulePkg: Host Unit Test Dsc Complete Check Test NO-TARGET --
> 2021-08-02T01:17:27.3703640Z PROGRESS - --->Test Success: Host Unit Test Dsc Complete Check Test NO-TARGET
> 2021-08-02T01:17:27.3731676Z ERROR - Overall Build Status: Error
> 2021-08-02T01:17:27.3733283Z PROGRESS - There were 1 failures out of 10 attempts
> 2021-08-02T01:17:27.3734501Z SECTION - Summary
> 2021-08-02T01:17:27.3735613Z ERROR - Error
> 2021-08-02T01:17:27.4159842Z ##[error]/opt/hostedtoolcache/Python/3.8.11/x64/bin/stuart_ci_build failed with return code: 1
> 2021-08-02T01:17:27.4173134Z ##[error]/opt/hostedtoolcache/Python/3.8.11/x64/bin/stuart_ci_build failed with error: /opt/hostedtoolcache/Python/3.8.11/x64/bin/stuart_ci_build failed with return code: 1
> 2021-08-02T01:17:27.4178252Z ##[section]Finishing: Build and Test MdeModulePkg IA32,X64,ARM,AARCH64,RISCV64
> 
> Best Regards,
> Hao Wu
> 
> 
>>
>> I will wait a couple days before merging to see if any additional comment
>> from other reviewers.
>>
>> Best Regards,
>> Hao Wu
>>
>>
>>>
>>> Cc: Jian J Wang <jian.j.wang@intel.com>
>>> Cc: Hao A Wu <hao.a.wu@intel.com>
>>> Signed-off-by: Wenyi Xie <xiewenyi2@huawei.com>
>>> ---
>>>  MdeModulePkg/Test/MdeModulePkgHostTest.dsc                        |   6 +
>>>  MdeModulePkg/Library/UefiSortLib/UnitTest/UefiSortLibUnitTest.inf |
>>> 32
>>> ++++
>>>  MdeModulePkg/Library/UefiSortLib/UnitTest/UefiSortLibUnitTest.c   | 188
>>> ++++++++++++++++++++
>>>  3 files changed, 226 insertions(+)
>>>
>>> diff --git a/MdeModulePkg/Test/MdeModulePkgHostTest.dsc
>>> b/MdeModulePkg/Test/MdeModulePkgHostTest.dsc
>>> index 4da4692c8451..c9ec835df65d 100644
>>> --- a/MdeModulePkg/Test/MdeModulePkgHostTest.dsc
>>> +++ b/MdeModulePkg/Test/MdeModulePkgHostTest.dsc
>>> @@ -41,3 +41,9 @@ [Components]
>>>      <PcdsFixedAtBuild>
>>>
>>>
>> gEfiMdeModulePkgTokenSpaceGuid.PcdAllowVariablePolicyEnforcementDis
>>> able|TRUE
>>>    }
>>> +
>>> +  MdeModulePkg/Library/UefiSortLib/UnitTest/UefiSortLibUnitTest.inf {
>>> +    <LibraryClasses>
>>> +      UefiSortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
>>> +
>>> + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
>>> +  }
>>> diff --git
>>> a/MdeModulePkg/Library/UefiSortLib/UnitTest/UefiSortLibUnitTest.inf
>>> b/MdeModulePkg/Library/UefiSortLib/UnitTest/UefiSortLibUnitTest.inf
>>> new file mode 100644
>>> index 000000000000..85d8dcd69619
>>> --- /dev/null
>>> +++
>> b/MdeModulePkg/Library/UefiSortLib/UnitTest/UefiSortLibUnitTest.in
>>> +++ f
>>> @@ -0,0 +1,32 @@
>>> +## @file
>>> +# This is a unit test for the UefiSortLib.
>>> +#
>>> +# Copyright (C) Huawei Technologies Co., Ltd. All rights reserved #
>>> +SPDX-License-Identifier: BSD-2-Clause-Patent ##
>>> +
>>> +[Defines]
>>> +  INF_VERSION         = 0x00010017
>>> +  BASE_NAME           = UefiSortLibUnitTest
>>> +  FILE_GUID           = 271337A3-0D79-BA3E-BC03-714E518E3B1B
>>> +  VERSION_STRING      = 1.0
>>> +  MODULE_TYPE         = HOST_APPLICATION
>>> +
>>> +#
>>> +# The following information is for reference only and not required by
>>> +the
>>> build tools.
>>> +#
>>> +#  VALID_ARCHITECTURES           = IA32 X64
>>> +#
>>> +
>>> +[Sources]
>>> +  UefiSortLibUnitTest.c
>>> +
>>> +[Packages]
>>> +  MdePkg/MdePkg.dec
>>> +  MdeModulePkg/MdeModulePkg.dec
>>> +  UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
>>> +
>>> +[LibraryClasses]
>>> +  UnitTestLib
>>> +  DebugLib
>>> +  UefiSortLib
>>> diff --git
>>> a/MdeModulePkg/Library/UefiSortLib/UnitTest/UefiSortLibUnitTest.c
>>> b/MdeModulePkg/Library/UefiSortLib/UnitTest/UefiSortLibUnitTest.c
>>> new file mode 100644
>>> index 000000000000..71f30d8b9f7f
>>> --- /dev/null
>>> +++ b/MdeModulePkg/Library/UefiSortLib/UnitTest/UefiSortLibUnitTest.c
>>> @@ -0,0 +1,188 @@
>>> +/** @file
>>> +  Unit tests of the UefiSortLib
>>> +
>>> +  Copyright (C) Huawei Technologies Co., Ltd. All rights reserved
>>> +  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/DebugLib.h>
>>> +#include <Library/MemoryAllocationLib.h>
>>> +
>>> +#include <Library/UnitTestLib.h>
>>> +#include <Library/SortLib.h>
>>> +
>>> +#define UNIT_TEST_APP_NAME        "UefiSortLib Unit Tests"
>>> +#define UNIT_TEST_APP_VERSION     "1.0"
>>> +
>>> +#define TEST_ARRAY_SIZE_9         9
>>> +
>>> +/**
>>> +  The function is called by PerformQuickSort to compare int values.
>>> +
>>> +  @param[in] Left            The pointer to first buffer.
>>> +  @param[in] Right           The pointer to second buffer.
>>> +
>>> +  @retval 0                  Buffer1 equal to Buffer2.
>>> +  @return <0                 Buffer1 is less than Buffer2.
>>> +  @return >0                 Buffer1 is greater than Buffer2.
>>> +
>>> +**/
>>> +INTN
>>> +EFIAPI
>>> +TestCompareFunction (
>>> +  IN CONST VOID                         *Left,
>>> +  IN CONST VOID                         *Right
>>> +  )
>>> +{
>>> +  if (*(UINT32*)Right > *(UINT32*)Left) {
>>> +    return 1;
>>> +  } else if (*(UINT32*)Right < *(UINT32*)Left) {
>>> +    return -1;
>>> +  }
>>> +
>>> +  return 0;
>>> +}
>>> +
>>> +/**
>>> +  Unit test for PerformQuickSort () API of the UefiSortLib.
>>> +
>>> +  @param[in]  Context    [Optional] An optional parameter 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
>>> +SortUINT32ArrayShouldSucceed (
>>> +  IN UNIT_TEST_CONTEXT  Context
>>> +  )
>>> +{
>>> +  UINTN TestCount = TEST_ARRAY_SIZE_9;
>>> +  UINT32 TestBuffer[TEST_ARRAY_SIZE_9] = {1, 2, 3, 4, 5, 6, 7 ,8, 9};
>>> +  UINT32 TestResult[TEST_ARRAY_SIZE_9] = {9, 8, 7, 6, 5, 4, 3, 2, 1};
>>> +
>>> +  PerformQuickSort (TestBuffer, TestCount, sizeof (UINT32),
>>> + (SORT_COMPARE)TestCompareFunction);
>>> +  UT_ASSERT_MEM_EQUAL (TestBuffer, TestResult, sizeof (UINT32) *
>>> + TEST_ARRAY_SIZE_9);
>>> +
>>> +  return UNIT_TEST_PASSED;
>>> +}
>>> +
>>> +/**
>>> +  Unit test for StringCompare () API of the UefiSortLib.
>>> +
>>> +  @param[in]  Context    [Optional] An optional parameter 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
>>> +CompareSameBufferShouldSucceed (
>>> +  IN UNIT_TEST_CONTEXT  Context
>>> +  )
>>> +{
>>> +  INTN retval;
>>> +  CONST CHAR16* TestBuffer[] = { L"abcdefg" };
>>> +
>>> +  retval = StringCompare (TestBuffer, TestBuffer);  UT_ASSERT_TRUE
>>> + (retval == 0);
>>> +
>>> +  return UNIT_TEST_PASSED;
>>> +}
>>> +
>>> +/**
>>> +  Initialze the unit test framework, suite, and unit tests for the
>>> +  UefiSortLib and run the UefiSortLib unit test.
>>> +
>>> +  @retval  EFI_SUCCESS           All test cases were dispatched.
>>> +  @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      SortTests;
>>> +
>>> +  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 UefiSortLib Unit Test Suite.
>>> +  //
>>> +  Status = CreateUnitTestSuite (&SortTests, Framework, "UefiSortLib
>>> + Sort Tests", "UefiSortLib.SortLib", NULL, NULL);  if (EFI_ERROR (Status)) {
>>> +    DEBUG ((DEBUG_ERROR, "Failed in CreateUnitTestSuite for
>>> + UefiSortLib
>>> API Tests\n"));
>>> +    Status = EFI_OUT_OF_RESOURCES;
>>> +    goto EXIT;
>>> +  }
>>> +
>>> +  //
>>> +  //
>>> + --------------Suite--------Description------------Name--------------
>>> + Fu
>>> + nction----------------Pre---Post---Context-----------
>>> +  //
>>> +  AddTestCase (SortTests, "Sort the Array",        "Sort",
>>> SortUINT32ArrayShouldSucceed,   NULL, NULL, NULL);
>>> +  AddTestCase (SortTests, "Compare the Buffer",    "Compare",
>>> CompareSameBufferShouldSucceed, 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 ();
>>> +}
>>> --
>>> 2.20.1.windows.1
>>
>>
>>
>> 
>>
> 
> .
> 

  reply	other threads:[~2021-08-04  8:05 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-29  8:01 [PATCH EDK2 v2 0/1] MdeModulePkg/UefiSortLib:Add UefiSortLib unit test wenyi,xie
2021-07-29  8:01 ` [PATCH EDK2 v2 1/1] " wenyi,xie
2021-07-29  8:25   ` Wu, Hao A
2021-08-02  1:56     ` [edk2-devel] " Wu, Hao A
2021-08-04  8:04       ` wenyi,xie [this message]
2021-08-04  8:24         ` Wu, Hao A
2021-08-10  4:11           ` Wu, Hao A
2021-08-11  1:50             ` Wu, Hao A
2021-08-11  1:59               ` wenyi,xie

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=d1daa964-a8ce-6dff-5e0a-90e4e605c0b4@huawei.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