From: "Wu, Hao A" <hao.a.wu@intel.com>
To: "xiewenyi (A)" <xiewenyi2@huawei.com>,
"Kinney, Michael D" <michael.d.kinney@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 08:24:03 +0000 [thread overview]
Message-ID: <DM6PR11MB3673FEFFBEBA288B553E074CCAF19@DM6PR11MB3673.namprd11.prod.outlook.com> (raw)
In-Reply-To: <d1daa964-a8ce-6dff-5e0a-90e4e605c0b4@huawei.com>
> -----Original Message-----
> From: xiewenyi (A) <xiewenyi2@huawei.com>
> Sent: Wednesday, August 4, 2021 4:05 PM
> To: Wu, Hao A <hao.a.wu@intel.com>; devel@edk2.groups.io
> Cc: 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
>
>
>
> 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;
> }
Hello Mike,
I saw the below commit:
SHA-1: dcaa93936591883aa7826eb45ef00416ad82ef08
* MdeModulePkg/Variable/RuntimeDxe: Add Variable Lock Protocol Unit Tests
has a similar case that should involve the naming of the 'main' function within the unit test codes.
I am wondering how the open raised by Wenyi was handled back then.
Do you have suggestions for this case? Thanks in advance.
Best Regards,
Hao Wu
>
> 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/UefiSor
> > tLibUnitTest.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/UefiSor
> > tLibUnitTest.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/UefiSor
> > tLibUnitTest.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/UefiSor
> > tLibUnitTest.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/UefiSor
> > tLibUnitTest.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/UefiSor
> > tLibUnitTest.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/UefiSor
> > tLibUnitTest.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/UefiSor
> > tLibUnitTest.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.i
> >>> + DevicePathLib|nf
> >>> + }
> >>> 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
> >>
> >>
> >>
> >>
> >>
> >
> > .
> >
next prev parent reply other threads:[~2021-08-04 8:24 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
2021-08-04 8:24 ` Wu, Hao A [this message]
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=DM6PR11MB3673FEFFBEBA288B553E074CCAF19@DM6PR11MB3673.namprd11.prod.outlook.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