* Re: [edk2-devel] [edk2-test] [PATCH V4] uefi-sct/SctPkg: Auto gen result of "EFICompliantTest".
@ 2019-10-16 6:46 Eric Jin
0 siblings, 0 replies; 2+ messages in thread
From: Eric Jin @ 2019-10-16 6:46 UTC (permalink / raw)
To: Chen, ArvinX, devel@edk2.groups.io
Adjust the prefix to [edk2-devel] [edk2-test] [PATCH V4] in subject
Reviewed-by: Eric Jin <eric.jin@intel.com>
> -----Original Message-----
> From: Chen, ArvinX <arvinx.chen@intel.com>
> Sent: Wednesday, October 16, 2019 2:33 PM
> To: devel@edk2.groups.io
> Cc: Jin, Eric <eric.jin@intel.com>
> Subject: [PATCH] uefi-sct/SctPkg: Auto gen result of "EFICompliantTest".
>
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2155
>
> Now the test item "EFICompliantTest" will be gen in the XXX.csv.
> However, I find most of the SCT user will not know what platform config they
> test is, so I think we can independently generate a file of the
> "EFICompliantTest" tests, then the SCT tester can send this file to the
> platform owner and let them directly handle the compliant issue.
>
> This patch will auto gen a file in path SCT\Report\PlatformConfig.ini once
> tester retest again, system will delete the current PlatformConfig.ini and
> create a new one. If tester want to ignore test results in *.csv, tester can
> modify EfiCompliant.ini to control it.
>
> Cc: Eric Jin <eric.jin@intel.com>
> Signed-off-by: ArvinX Chen <arvinx.chen@intel.com>
> ---
> .../Dependency/Config/EfiCompliant.ini | 13 +-
> .../BlackBoxTest/EfiCompliantBBTestPlatform_uefi.c | 498
> ++++++++++++++++++++-
> 2 files changed, 509 insertions(+), 2 deletions(-)
>
> diff --git a/uefi-
> sct/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxTest/Depende
> ncy/Config/EfiCompliant.ini b/uefi-
> sct/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxTest/Depende
> ncy/Config/EfiCompliant.ini
> index d234d87a..4deaae3b 100644
> --- a/uefi-
> sct/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxTest/Depende
> ncy/Config/EfiCompliant.ini
> +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxTes
> +++ t/Dependency/Config/EfiCompliant.ini
> @@ -1,6 +1,6 @@
> ## @file
> #
> -# Copyright 2006 - 2016 Unified EFI, Inc.<BR>
> +# Copyright 2006 - 2019 Unified EFI, Inc.<BR>
> # Copyright (c) 2010 - 2019, Intel Corporation. All rights reserved.<BR> # #
> This program and the accompanying materials @@ -24,6 +24,14 @@ # #
> Notes:
> #
> +### [Test Configuration Specific]
> +#
> +# GEN_CONFIG_INI_FILE_ON = <yes: Generate PlatformConfig.ini under
> the report folder>
> +#
> +# IGNORE_COMPLIANT_TEST_CSV = <yes: EFI compliant testing fail will not
> be generated in the report/*.csv file, but if GEN_CONFIG_INI_FILE_ON is
> "no", this item will aways be no.>
> +#
> +### [Platform Specific]
> +#
> # ConsoleDevices = <yes: if this platform includes console devices>
> #
> # HiiConfigSupport = <yes: if this platform includes Hii Config Support>
> @@ -91,6 +99,9 @@
> # IPSecSupport = <yes: if this platform supports IPSec network>
> #
> #--*/
> +[Test Configuration Specific]
> +GEN_CONFIG_INI_FILE_ON = yes
> +IGNORE_COMPLIANT_TEST_CSV = no
>
> [Platform Specific]
> ConsoleDevices = yes
> diff --git a/uefi-
> sct/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxTest/EfiCompli
> antBBTestPlatform_uefi.c b/uefi-
> sct/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxTest/EfiCompli
> antBBTestPlatform_uefi.c
> index ae76c909..be06d139 100644
> --- a/uefi-
> sct/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxTest/EfiCompli
> antBBTestPlatform_uefi.c
> +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxTes
> +++ t/EfiCompliantBBTestPlatform_uefi.c
> @@ -28,7 +28,7 @@ Abstract:
> // Includes
> //
>
> -#include "SctLib.h"
> +#include "SctLib.h"
> #include "EfiCompliantBbTestMain_uefi.h"
> #include EFI_PROTOCOL_DEFINITION (SimpleTextIn) #include
> EFI_PROTOCOL_DEFINITION (SimpleTextInEx) @@ -87,6 +87,9 @@ extern
> EFI_GUID gGlobalVariableGuid; //
>
> #define SECTION_NAME_PLATFORM_SPECIFIC L"Platform Specific"
> +#define SECTION_NAME_CONFIGURATION_SPECIFIC L"Test Configuration
> Specific"
> +#define CONFIN_TITLE_STRING L"|=================
> Configuration Environment =================|"
> +#define MAX_SIZE 0xFF
>
> #define EFI_DHCP6_SERVICE_BINDING_PROTOCOL_GUID \
> { 0x9fb9a8a1, 0x2f4a, 0x43a6, {0x88, 0x9c, 0xd0, 0xf7, 0xb6, 0xc4, 0x7a,
> 0xd5 }} @@ -170,6 +173,12 @@ EFI_GUID
> gEfiBlueToothAttributeProtocolGuid = { 0x898890e9, 0x84b2, 0x4f3a, { 0x
>
> EFI_GUID gEfiBlueToothLEConfigProtocolGuid = { 0x8f76da58, 0x1f99, 0x4275,
> { 0xa4, 0xec, 0x47, 0x56, 0x51, 0x5b, 0x1c, 0xe8 }};
>
> +typedef struct CONFIG_ERROR_DATA {
> + UINT8 ErrorCount;
> + CHAR16 *TitleString;
> + EFI_INI_FILE_HANDLE ConfigINI;
> +} CONFIG_ERROR_DATA;
> +
> //
> // The Max length of pre-defined string value(yes or no) // in the
> EfiCompliant.ini @@ -381,6 +390,25 @@ CheckIPSecProtocols (
> IN EFI_INI_FILE_HANDLE IniFile
> );
>
> +CONFIG_ERROR_DATA*
> +ConstructionAndAcquisition (
> + IN CHAR16 *TitleString,
> + IN EFI_INI_FILE_HANDLE ConfigINI
> +);
> +
> +EFI_STATUS
> +GenTestConfigTitle (
> + IN EFI_INI_FILE_HANDLE IniFile,
> + IN OUT EFI_TEST_ASSERTION *AssertionType,
> + IN CHAR16 *TestItemString
> +);
> +
> +EFI_STATUS
> +GenTestConfigContent (
> + IN CHAR16 *ProtocolGUIDString,
> + IN BOOLEAN Value
> +);
> +
> //
> // External functions implementation
> //
> @@ -405,6 +433,25 @@ Routine Description:
> EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib;
> EFI_TEST_PROFILE_LIBRARY_PROTOCOL *ProfileLib;
> EFI_INI_FILE_HANDLE IniFile;
> + EFI_INI_FILE_HANDLE ConfigINI;
> + EFI_DEVICE_PATH_PROTOCOL *DevicePath;
> + EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *Volume;
> + EFI_HANDLE DeviceHandle;
> + EFI_FILE *Root;
> + EFI_FILE *OldFile;
> + CONFIG_ERROR_DATA *ErrorData;
> + UINT8 Index;
> + BOOLEAN GenConfigINI;
> + CHAR16 String[MAX_LENGTH];
> + CHAR16 *FilePath;
> + CHAR16 *TitleString[] = {
> + L"<|If fail item is not 0, it mean platform config have error ___",
> + L"<|occur or EfiCompliant.ini setting have wrong. ________________",
> + L"<|Please sent this file and EfiCompliant.ini to platform owner .",
> + L"<|EfiCompliant.ini is in the : SCT\\Dependency\\EfiCompliantBBTest",
> +
> L"<|=======================================================
> =======",
> + NULL
> + };
>
> //
> // Locate the standard test library protocol @@ -430,6 +477,68 @@ Routine
> Description:
> return Status;
> }
>
> + //
> + // Check PlatformConfig.ini file is exise or not.
> + //
> + ProfileLib->EfiGetSystemDevicePath (
> + ProfileLib,
> + &DevicePath,
> + &FilePath
> + );
> + Status = OpenIniFile (
> + ProfileLib,
> + L"Report",
> + L"PlatformConfig.ini",
> + &ConfigINI
> + );
> + if (ConfigINI != NULL) {
> + //
> + // If file exise, delete it.
> + //
> + CloseIniFile (ProfileLib, ConfigINI);
> +
> + Status = gtBS->LocateDevicePath (
> + &gEfiSimpleFileSystemProtocolGuid,
> + &DevicePath,
> + &DeviceHandle
> + );
> + if (EFI_ERROR (Status)) {
> + return Status;
> + }
> +
> + Status = gtBS->HandleProtocol (
> + DeviceHandle,
> + &gEfiSimpleFileSystemProtocolGuid,
> + (VOID*)&Volume
> + );
> + if (EFI_ERROR (Status)) {
> + return Status;
> + }
> +
> + Status = Volume->OpenVolume(Volume, &Root);
> + if (EFI_ERROR (Status)) {
> + return Status;
> + }
> +
> + Status = Root->Open (
> + Root,
> + &OldFile,
> + SctPoolPrint (L"%s\\Report\\PlatformConfig.ini", FilePath),
> + EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE,
> + 0
> + );
> + if (EFI_ERROR (Status)) {
> + return Status;
> + }
> +
> + Status = OldFile->Delete (OldFile);
> + if (EFI_ERROR (Status)) {
> + return Status;
> + }
> +
> + Root->Close (Root);
> + }
> +
> //
> // Open the INI file
> //
> @@ -453,6 +562,68 @@ Routine Description:
> return Status;
> }
>
> + GenConfigINI = FALSE;
> + Index = MAX_LENGTH;
> + Status = IniFile->GetString (
> + IniFile,
> + SECTION_NAME_CONFIGURATION_SPECIFIC,
> + L"GEN_CONFIG_INI_FILE_ON",
> + String,
> + &Index
> + );
> + if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> + GenConfigINI = TRUE;
> + }
> +
> + if (GenConfigINI == TRUE) {
> + //
> + // Create the config.ini file.
> + //
> + ProfileLib->EfiGetSystemDevicePath (
> + ProfileLib,
> + &DevicePath,
> + &FilePath
> + );
> +
> + Status = ProfileLib->EfiIniCreate (
> + ProfileLib,
> + DevicePath,
> + SctPoolPrint (L"%s\\Report\\PlatformConfig.ini", FilePath),
> + &ConfigINI
> + );
> + if (EFI_ERROR (Status)) {
> + StandardLib->RecordAssertion (
> + StandardLib,
> + EFI_TEST_ASSERTION_FAILED,
> + gTestGenericFailureGuid,
> + L"UEFI Compliant - Cannot create or open INI file",
> + L"%a:%d:",
> + __FILE__,
> + (UINTN)__LINE__
> + );
> + return Status;
> + }
> + //
> + // Gen PlatformConfig.ini title and description.
> + //
> + ConfigINI->SetStringByOrder (
> + ConfigINI,
> + 0x00,
> + CONFIN_TITLE_STRING,
> + L"<|Unavailable (Fail) item have :",
> + SctPoolPrint (L": \"%02d\" --", 0x00)
> + );
> + for (Index=0; TitleString[Index] != NULL ;Index++) {
> + ConfigINI->SetString (
> + ConfigINI,
> + CONFIN_TITLE_STRING,
> + TitleString[Index],
> + L"|>"
> + );
> + }
> + ConstructionAndAcquisition (NULL, ConfigINI); }
> +
> //
> // Check the console protocols
> //
> @@ -594,6 +765,26 @@ Routine Description:
> //
> CloseIniFile (ProfileLib, IniFile);
>
> + //
> + // Save data to platform.ini
> + //
> + if (GenConfigINI == TRUE) {
> + ErrorData = ConstructionAndAcquisition (L"END", ConfigINI);
> + //
> + // Update fail count.
> + //
> + ConfigINI->SetStringByOrder (
> + ConfigINI,
> + 0x00,
> + L"|================= Configuration Environment
> =================|",
> + L"<|Unavailable (Fail) item have :",
> + SctPoolPrint (L": \"%02d\" --", ErrorData->ErrorCount)
> + );
> + //
> + // If have error occor and GenTestINI flag is on, gen the report file.
> + //
> + CloseIniFile (ProfileLib, ConfigINI); }
> return EFI_SUCCESS;
> }
>
> @@ -810,6 +1001,11 @@ CheckConsoleProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"ConsoleDevices")) {
> + GenTestConfigContent (L"gEfiSimpleTextInProtocolGuid ", ValueA);
> + GenTestConfigContent (L"gEfiSimpleTextOutProtocolGuid ", ValueB);
> + GenTestConfigContent (L"gEfiSimpleTextInputExProtocolGuid",
> ValueC);
> + }
> }
> }
>
> @@ -888,6 +1084,12 @@ CheckHiiProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"HiiConfigSupport")) {
> + GenTestConfigContent (L"gEfiHiiDatabaseProtocolGuid ", Value[0]);
> + GenTestConfigContent (L"gEfiHiiStringProtocolGuid ", Value[1]);
> + GenTestConfigContent (L"gEfiHiiConfigRoutingProtocolGuid", Value[2]);
> + GenTestConfigContent (L"gEfiHiiFontProtocolGuid ", Value[3]);
> + }
> }
> }
>
> @@ -929,6 +1131,9 @@ CheckHiiProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"HiiFontSupport")) {
> + GenTestConfigContent (L"gEfiHiiFontProtocolGuid", Value[4]);
> + }
> }
> }
>
> @@ -1028,6 +1233,11 @@ CheckGraphicalConsoleProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"GraphicalConsoleDevices")) {
> + GenTestConfigContent (L"gEfiGraphicsOutputProtocolGuid", ValueA);
> + GenTestConfigContent (L"gEfiEdidDiscoveredProtocolGuid", ValueB);
> + GenTestConfigContent (L"gEfiEdidActiveProtocolGuid ", ValueC);
> + }
> }
> }
>
> @@ -1098,6 +1308,9 @@ CheckPointerProtocol (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"PointerDevices")) {
> + GenTestConfigContent (L"gEfiSimplePointerProtocolGuid", ValueA);
> + }
> }
> }
>
> @@ -1211,6 +1424,12 @@ CheckBootFromDiskProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"BootFromDiskDevices")) {
> + GenTestConfigContent (L"gEfiBlockIoProtocolGuid ", ValueA);
> + GenTestConfigContent (L"gEfiDiskIoProtocolGuid ", ValueB);
> + GenTestConfigContent (L"gEfiSimpleFileSystemProtocolGuid", ValueC);
> + GenTestConfigContent (L"gEfiUnicodeCollationProtocolGuid", ValueD);
> + }
> }
> }
>
> @@ -1353,6 +1572,12 @@ CheckBootFromNetworkProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"BootFromNetworkDevices")) {
> + GenTestConfigContent (L"gEfiPxeBaseCodeProtocolGuid ",
> ValueA);
> + GenTestConfigContent (L"gEfiSimpleNetworkProtocolGuid ",
> Value[0]);
> + GenTestConfigContent (L"gEfiManagedNetworkProtocolGuid ",
> Value[1]);
> + GenTestConfigContent (L"gEfiNetworkInterfaceIdentifierProtocolGuid",
> Value[2]);
> + }
> }
> }
>
> @@ -1391,6 +1616,9 @@ CheckBootFromNetworkProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"ValidateBootImageThruNet")) {
> + GenTestConfigContent (L"Variable \"SetupMode\"", ValueC);
> + }
> }
> }
>
> @@ -1481,6 +1709,15 @@ CheckUefiNetworkApplication (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"UefiNetworkApplication")) {
> + GenTestConfigContent
> (L"gEfiManagedNetworkServiceBindingProtocolGuid", Value[0]);
> + GenTestConfigContent (L"gEfiArpServiceBindingProtocolGuid ",
> Value[1]);
> + GenTestConfigContent (L"gEfiIp4ServiceBindingProtocolGuid ",
> Value[2]);
> + GenTestConfigContent (L"gEfiDhcp4ServiceBindingProtocolGuid ",
> Value[3]);
> + GenTestConfigContent (L"gEfiTcp4ServiceBindingProtocolGuid ",
> Value[4]);
> + GenTestConfigContent (L"gEfiUdp4ServiceBindingProtocolGuid ",
> Value[5]);
> + GenTestConfigContent (L"gEfiIp4Config2ProtocolGuid ",
> Value[6]);
> + }
> }
> StandardLib->RecordAssertion (
> StandardLib,
> @@ -1582,6 +1819,21 @@ CheckUefiNetworkApplication (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"UefiNetworkApplication")) {
> + GenTestConfigContent
> (L"gEfiManagedNetworkServiceBindingProtocolGuid", Value[0]);
> + GenTestConfigContent (L"gEfiArpServiceBindingProtocolGuid ",
> Value[1]);
> + GenTestConfigContent (L"gEfiIp4ServiceBindingProtocolGuid ",
> Value[2]);
> + GenTestConfigContent (L"gEfiDhcp4ServiceBindingProtocolGuid ",
> Value[3]);
> + GenTestConfigContent (L"gEfiTcp4ServiceBindingProtocolGuid ",
> Value[4]);
> + GenTestConfigContent (L"gEfiUdp4ServiceBindingProtocolGuid ",
> Value[5]);
> + GenTestConfigContent (L"gEfiIp4Config2ProtocolGuid ",
> Value[6]);
> + GenTestConfigContent (L"gEfiManagedNetworkProtocolGuid ",
> Value[7]);
> + GenTestConfigContent (L"gEfiArpProtocolGuid ", Value[8]);
> + GenTestConfigContent (L"gEfiIp4ProtocolGuid ", Value[9]);
> + GenTestConfigContent (L"gEfiDhcp4ProtocolGuid ",
> Value[10]);
> + GenTestConfigContent (L"gEfiTcp4ProtocolGuid ",
> Value[11]);
> + GenTestConfigContent (L"gEfiUdp4ProtocolGuid ",
> Value[12]);
> + }
> }
> }
>
> @@ -1679,6 +1931,13 @@ CheckUefiV6NetworkApplication (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"UEFIIPv6Support")) {
> + GenTestConfigContent (L"gEfiDhcp6ServiceBindingProtocolGuid",
> Value[0]);
> + GenTestConfigContent (L"gEfiTcp6ServiceBindingProtocolGuid ",
> Value[1]);
> + GenTestConfigContent (L"gEfiIp6ServiceBindingProtocolGuid ",
> Value[2]);
> + GenTestConfigContent (L"gEfiUdp6ServiceBindingProtocolGuid ",
> Value[3]);
> + GenTestConfigContent (L"gEfiIp6ConfigProtocolGuid ", Value[4]);
> + }
> }
> StandardLib->RecordAssertion (
> StandardLib,
> @@ -1774,6 +2033,17 @@ CheckUefiV6NetworkApplication (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"UEFIIPv6Support")) {
> + GenTestConfigContent (L"gEfiDhcp6ServiceBindingProtocolGuid",
> Value[0]);
> + GenTestConfigContent (L"gEfiTcp6ServiceBindingProtocolGuid ",
> Value[1]);
> + GenTestConfigContent (L"gEfiIp6ServiceBindingProtocolGuid ",
> Value[2]);
> + GenTestConfigContent (L"gEfiUdp6ServiceBindingProtocolGuid ",
> Value[3]);
> + GenTestConfigContent (L"gEfiIp6ConfigProtocolGuid ", Value[4]);
> + GenTestConfigContent (L"gEfiDhcp6ProtocolGuid ", Value[5]);
> + GenTestConfigContent (L"gEfiTcp6ProtocolGuid ", Value[6]);
> + GenTestConfigContent (L"gEfiIp6ProtocolGuid ", Value[7]);
> + GenTestConfigContent (L"gEfiUdp6ProtocolGuid ", Value[8]);
> + }
> }
> }
>
> @@ -1830,6 +2100,9 @@ CheckUefiV6NetworkApplication (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"VlanSupport")) {
> + GenTestConfigContent (L"gEfiVlanConfigProtocolGuid", Value[9]);
> + }
> }
> }
>
> @@ -1902,6 +2175,9 @@ CheckUartProtocol (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"UartDevices")) {
> + GenTestConfigContent (L"gEfiSerialIoProtocolGuid", ValueA);
> + }
> }
> }
>
> @@ -1986,6 +2262,10 @@ CheckPciProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"PciBusSupport")) {
> + GenTestConfigContent (L"gEfiPciRootBridgeIoProtocolGuid", ValueA);
> + GenTestConfigContent (L"gEfiPciIoProtocolGuid ", ValueB);
> + }
> }
> }
>
> @@ -2070,6 +2350,10 @@ CheckUsbProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"UsbBusSupport")) {
> + GenTestConfigContent (L"gEfiUsb2HcProtocolGuid", ValueA);
> + GenTestConfigContent (L"gEfiUsbIoProtocolGuid ", ValueB);
> + }
> }
> }
>
> @@ -2139,6 +2423,9 @@ CheckNVMeProtocol (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"NVMExpressPassThru")) {
> + GenTestConfigContent (L"gEfiNvmExpressPassThruProtocolGuid",
> ValueA);
> + }
> }
> }
>
> @@ -2222,6 +2509,9 @@ CheckBootFromNVMe (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"BootFromNVMe")) {
> + GenTestConfigContent (L"gEfiBlockIoProtocolGuid", ValueB);
> + }
> }
> }
>
> @@ -2258,6 +2548,9 @@ CheckBootFromNVMe (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"NVMExpressPassThru")) {
> + GenTestConfigContent (L"gEfiNvmExpressPassThruProtocolGuid",
> ValueA);
> + }
> }
> }
>
> @@ -2330,6 +2623,9 @@ CheckScsiProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"ExtScsiPassThru")) {
> + GenTestConfigContent (L"gEfiExtScsiPassThruProtocolGuid", ValueA);
> + }
> }
> }
>
> @@ -2428,6 +2724,10 @@ CheckBootFromScsi (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"BootFromScsi")) {
> + GenTestConfigContent (L"gEfiBlockIoProtocolGuid", ValueB);
> + GenTestConfigContent (L"gEfiScsiIoProtocolGuid ", ValueC);
> + }
> }
> }
>
> @@ -2465,6 +2765,9 @@ CheckBootFromScsi (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"ExtScsiPassThruSupport")) {
> + GenTestConfigContent (L"gEfiExtScsiPassThruProtocolGuid", ValueA);
> + }
> }
> }
>
> @@ -2550,6 +2853,10 @@ CheckBootFromIScsi (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"BootFromIscsi")) {
> + GenTestConfigContent (L"gEfiIScsiInitiatorNameProtocolGuid", ValueA);
> + GenTestConfigContent (L"gEfiAuthenticationInfoProtocolGuid",
> ValueB);
> + }
> }
> }
>
> @@ -2637,6 +2944,10 @@ CheckDebugProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"DebugSupport")) {
> + GenTestConfigContent (L"gEfiDebugSupportProtocolGuid", ValueA);
> + GenTestConfigContent (L"gEfiDebugPortProtocolGuid ", ValueB);
> + }
> }
> }
>
> @@ -2706,6 +3017,9 @@ CheckDriverOverrideProtocol (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"PlatformDriverOverride")) {
> + GenTestConfigContent (L"gEfiPlatformDriverOverrideProtocolGuid",
> ValueA);
> + }
> }
> }
>
> @@ -2774,6 +3088,9 @@ CheckATAProtocol (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"AtaPassThru")) {
> + GenTestConfigContent (L"gEfiAtaPassThruProtocolGuid", ValueA);
> + }
> }
> }
>
> @@ -2845,6 +3162,12 @@ CheckEbcProtocol (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"EBCSupport")) {
> + GenTestConfigContent (L"Ebc->CreateThunk", Ebc->CreateThunk !=
> NULL);
> + GenTestConfigContent (L"Ebc->UnloadImage", Ebc->UnloadImage !=
> NULL);
> + GenTestConfigContent (L"Ebc->RegisterICacheFlush", Ebc-
> >RegisterICacheFlush != NULL);
> + GenTestConfigContent (L"Ebc->GetVersion ", Ebc->GetVersion !=
> NULL);
> + }
> }
> }
>
> @@ -2941,6 +3264,9 @@ CheckDNS4Protocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"DNS4Support")) {
> + GenTestConfigContent (L"gEfiDns4ServiceBindingProtocolGuid",
> ValueA);
> + }
> }
> StandardLib->RecordAssertion (
> StandardLib,
> @@ -2998,6 +3324,10 @@ CheckDNS4Protocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"DNS4Support")) {
> + GenTestConfigContent (L"gEfiDns4ServiceBindingProtocolGuid",
> ValueA);
> + GenTestConfigContent (L"gEfiDns4ProtocolGuid ", ValueB);
> + }
> }
> }
>
> @@ -3067,6 +3397,9 @@ CheckDNS6Protocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"DNS6Support")) {
> + GenTestConfigContent (L"gEfiDns6ServiceBindingProtocolGuid",
> ValueA);
> + }
> }
> StandardLib->RecordAssertion (
> StandardLib,
> @@ -3124,6 +3457,10 @@ CheckDNS6Protocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"DNS6Support")) {
> + GenTestConfigContent (L"gEfiDns6ServiceBindingProtocolGuid",
> ValueA);
> + GenTestConfigContent (L"gEfiDns6ProtocolGuid ", ValueB);
> + }
> }
> }
>
> @@ -3205,6 +3542,10 @@ CheckTLSProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"TLSSupport")) {
> + GenTestConfigContent (L"gEfiTlsServiceBindingProtocolGuid", ValueA);
> + GenTestConfigContent (L"gEfiTlsConfigurationProtocolGuid ", ValueB);
> + }
> }
> StandardLib->RecordAssertion (
> StandardLib,
> @@ -3263,6 +3604,11 @@ CheckTLSProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"TLSSupport")) {
> + GenTestConfigContent (L"gEfiTlsServiceBindingProtocolGuid", ValueA);
> + GenTestConfigContent (L"gEfiTlsConfigurationProtocolGuid ", ValueB);
> + GenTestConfigContent (L"gEfiTlsProtocolGuid ", ValueC);
> + }
> }
> }
>
> @@ -3346,6 +3692,10 @@ CheckHTTPProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"HTTPSupport")) {
> + GenTestConfigContent (L"gEfiHttpServiceBindingProtocolGuid",
> ValueA);
> + GenTestConfigContent (L"gEfiHttpUtilitiesProtocolGuid ", ValueB);
> + }
> }
> StandardLib->RecordAssertion (
> StandardLib,
> @@ -3404,6 +3754,11 @@ CheckHTTPProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"HTTPSupport")) {
> + GenTestConfigContent (L"gEfiHttpServiceBindingProtocolGuid",
> ValueA);
> + GenTestConfigContent (L"gEfiHttpUtilitiesProtocolGuid ", ValueB);
> + GenTestConfigContent (L"gEfiHttpProtocolGuid ", ValueC);
> + }
> }
> }
>
> @@ -3493,6 +3848,11 @@ CheckEAPProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"EAPSupport")) {
> + GenTestConfigContent (L"gEfiEapProtocolGuid ", ValueA);
> + GenTestConfigContent (L"gEfiEapConfigProtocolGuid ", ValueB);
> + GenTestConfigContent (L"gEfiEapManagement2ProtocolGuid", ValueC);
> + }
> }
> }
>
> @@ -3588,6 +3948,11 @@ CheckBlueToothClassicProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"BlueToothClassicSupport")) {
> + GenTestConfigContent (L"gEfiBlueToothHcProtocolGuid ",
> ValueA);
> + GenTestConfigContent (L"gEfiBlueToothServiceBindingProtocolGuid",
> ValueB);
> + GenTestConfigContent (L"gEfiBlueToothConfigProtocolGuid ",
> ValueC);
> + }
> }
>
> //
> @@ -3652,6 +4017,12 @@ CheckBlueToothClassicProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"BlueToothClassicSupport")) {
> + GenTestConfigContent (L"gEfiBlueToothHcProtocolGuid ",
> ValueA);
> + GenTestConfigContent (L"gEfiBlueToothServiceBindingProtocolGuid",
> ValueB);
> + GenTestConfigContent (L"gEfiBlueToothConfigProtocolGuid ",
> ValueC);
> + GenTestConfigContent (L"gEfiBlueToothIoProtocolGuid ",
> ValueD);
> + }
> }
> }
>
> @@ -3743,6 +4114,11 @@ CheckBlueToothLEProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"BlueToothLESupport"))
> {
> + GenTestConfigContent (L"gEfiBlueToothHcProtocolGuid ", ValueA);
> + GenTestConfigContent (L"gEfiBlueToothAttributeProtocolGuid",
> ValueB);
> + GenTestConfigContent (L"gEfiBlueToothLEConfigProtocolGuid ",
> ValueC);
> + }
> }
> }
>
> @@ -3832,6 +4208,10 @@ CheckIPSecProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"IPSecSupport")) {
> + GenTestConfigContent (L"gEfiIPSecConfigProtocolGuid", ValueA);
> + GenTestConfigContent (L"gEfiIPSec2ProtocolGuid ", ValueB);
> + }
> }
> }
>
> @@ -3852,3 +4232,119 @@ CheckIPSecProtocols (
>
> return EFI_SUCCESS;
> }
> +
> +CONFIG_ERROR_DATA*
> +ConstructionAndAcquisition (
> + CHAR16 *TitleString,
> + EFI_INI_FILE_HANDLE ConfigINI
> +){
> + UINTN Index;
> + static CONFIG_ERROR_DATA Data;
> +
> + if (TitleString == NULL && ConfigINI != NULL) {
> + //
> + // If only gave ConfigINI, init struct.
> + //
> + gtBS->AllocatePool (EfiBootServicesData ,MAX_SIZE,
> (VOID**)&(Data.TitleString));
> + Data.ConfigINI = ConfigINI;
> + Data.ErrorCount = 0;
> +
> + return NULL;
> + } else if (TitleString != NULL && ConfigINI == NULL) {
> + //
> + // If Only gave TitleString, update the title and error count +1.
> + //
> + for (Index=0; Data.TitleString[Index]=TitleString[Index],
> TitleString[Index]!=0; Index++);
> + Data.ErrorCount++;
> +
> + return &Data;
> + } else if (TitleString != NULL && ConfigINI != NULL) {
> + //
> + // If Both not NULL, end of the function, free the buffer.
> + //
> + gtBS->FreePool (Data.TitleString);
> + return &Data;
> + }
> + //
> + // If both NULL, just return struct data.
> + //
> + return &Data;
> +}
> +
> +EFI_STATUS
> +GenTestConfigTitle (
> + IN EFI_INI_FILE_HANDLE IniFile,
> + IN OUT EFI_TEST_ASSERTION *AssertionType,
> + IN CHAR16 *TestItemString
> +){
> + CONFIG_ERROR_DATA *ErrorData;
> + EFI_STATUS Status;
> + CHAR16 String[MAX_LENGTH];
> + UINT32 MaxLength;
> +
> + //
> + // Check need to gen config.ini or not.
> + //
> + MaxLength = MAX_LENGTH;
> + Status = IniFile->GetString (
> + IniFile,
> + SECTION_NAME_CONFIGURATION_SPECIFIC,
> + L"GEN_CONFIG_INI_FILE_ON",
> + String,
> + &MaxLength
> + );
> + if (EFI_ERROR (Status) || !(SctStriCmp (String, L"yes") == 0)) {
> + return EFI_UNSUPPORTED;
> + }
> +
> + //
> + // If platform owner is not sure platform config yet, this item can skip this
> test.
> + //
> + MaxLength = MAX_LENGTH;
> + Status = IniFile->GetString (
> + IniFile,
> + SECTION_NAME_CONFIGURATION_SPECIFIC,
> + L"IGNORE_COMPLIANT_TEST_CSV",
> + String,
> + &MaxLength
> + );
> + if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> + *AssertionType = EFI_TEST_ASSERTION_WARNING; }
> +
> + ErrorData = ConstructionAndAcquisition (TestItemString, NULL); //
> + // Set title // ErrorData->ConfigINI->SetStringByOrder (
> + ErrorData->ConfigINI,
> + ErrorData->ErrorCount,
> + SctPoolPrint (L"%02d. %s",ErrorData->ErrorCount, TestItemString),
> + L"Device Status :",
> + L": Unavailable"
> + );
> +
> + return EFI_SUCCESS;
> +}
> +
> +EFI_STATUS
> +GenTestConfigContent (
> + IN CHAR16 *ProtocolGUIDString,
> + IN BOOLEAN Value
> +){
> + CONFIG_ERROR_DATA *ErrorData;
> +
> + ErrorData = ConstructionAndAcquisition (NULL, NULL); // // Gen
> + content // ErrorData->ConfigINI->SetString (
> + ErrorData->ConfigINI,
> + SctPoolPrint (L"%02d. %s",ErrorData->ErrorCount, ErrorData-
> >TitleString),
> + SctPoolPrint (L" %s <-| Status :", ProtocolGUIDString),
> + Value ? L": Exist in system !": L": Not exist in system !"
> + );
> +
> + return EFI_SUCCESS;
> +}
> +
> --
> 2.16.2.windows.1
^ permalink raw reply [flat|nested] 2+ messages in thread
[parent not found: <15CE0DB1743B9D5B.25313@groups.io>]
* Re: [edk2-devel] [edk2-test] [PATCH V4] uefi-sct/SctPkg: Auto gen result of "EFICompliantTest".
[not found] <15CE0DB1743B9D5B.25313@groups.io>
@ 2019-10-18 2:21 ` Eric Jin
0 siblings, 0 replies; 2+ messages in thread
From: Eric Jin @ 2019-10-18 2:21 UTC (permalink / raw)
To: devel@edk2.groups.io, Chen, ArvinX
Pushed at bd239933cf41f882a9342d39fcca65266a6280ad
-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Eric Jin
Sent: Wednesday, October 16, 2019 2:46 PM
To: Chen, ArvinX <arvinx.chen@intel.com>; devel@edk2.groups.io
Subject: Re: [edk2-devel] [edk2-test] [PATCH V4] uefi-sct/SctPkg: Auto gen result of "EFICompliantTest".
Adjust the prefix to [edk2-devel] [edk2-test] [PATCH V4] in subject
Reviewed-by: Eric Jin <eric.jin@intel.com>
> -----Original Message-----
> From: Chen, ArvinX <arvinx.chen@intel.com>
> Sent: Wednesday, October 16, 2019 2:33 PM
> To: devel@edk2.groups.io
> Cc: Jin, Eric <eric.jin@intel.com>
> Subject: [PATCH] uefi-sct/SctPkg: Auto gen result of "EFICompliantTest".
>
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2155
>
> Now the test item "EFICompliantTest" will be gen in the XXX.csv.
> However, I find most of the SCT user will not know what platform
> config they test is, so I think we can independently generate a file
> of the "EFICompliantTest" tests, then the SCT tester can send this
> file to the platform owner and let them directly handle the compliant issue.
>
> This patch will auto gen a file in path SCT\Report\PlatformConfig.ini
> once tester retest again, system will delete the current
> PlatformConfig.ini and create a new one. If tester want to ignore test
> results in *.csv, tester can modify EfiCompliant.ini to control it.
>
> Cc: Eric Jin <eric.jin@intel.com>
> Signed-off-by: ArvinX Chen <arvinx.chen@intel.com>
> ---
> .../Dependency/Config/EfiCompliant.ini | 13 +-
> .../BlackBoxTest/EfiCompliantBBTestPlatform_uefi.c | 498
> ++++++++++++++++++++-
> 2 files changed, 509 insertions(+), 2 deletions(-)
>
> diff --git a/uefi-
> sct/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxTest/Depende
> ncy/Config/EfiCompliant.ini b/uefi-
> sct/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxTest/Depende
> ncy/Config/EfiCompliant.ini
> index d234d87a..4deaae3b 100644
> --- a/uefi-
> sct/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxTest/Depende
> ncy/Config/EfiCompliant.ini
> +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxT
> +++ es t/Dependency/Config/EfiCompliant.ini
> @@ -1,6 +1,6 @@
> ## @file
> #
> -# Copyright 2006 - 2016 Unified EFI, Inc.<BR>
> +# Copyright 2006 - 2019 Unified EFI, Inc.<BR>
> # Copyright (c) 2010 - 2019, Intel Corporation. All rights
> reserved.<BR> # # This program and the accompanying materials @@
> -24,6 +24,14 @@ # #
> Notes:
> #
> +### [Test Configuration Specific]
> +#
> +# GEN_CONFIG_INI_FILE_ON = <yes: Generate PlatformConfig.ini under
> the report folder>
> +#
> +# IGNORE_COMPLIANT_TEST_CSV = <yes: EFI compliant testing fail will not
> be generated in the report/*.csv file, but if GEN_CONFIG_INI_FILE_ON
> is "no", this item will aways be no.>
> +#
> +### [Platform Specific]
> +#
> # ConsoleDevices = <yes: if this platform includes console devices>
> #
> # HiiConfigSupport = <yes: if this platform includes Hii Config Support>
> @@ -91,6 +99,9 @@
> # IPSecSupport = <yes: if this platform supports IPSec network>
> #
> #--*/
> +[Test Configuration Specific]
> +GEN_CONFIG_INI_FILE_ON = yes
> +IGNORE_COMPLIANT_TEST_CSV = no
>
> [Platform Specific]
> ConsoleDevices = yes
> diff --git a/uefi-
> sct/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxTest/EfiComp
> li
> antBBTestPlatform_uefi.c b/uefi-
> sct/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxTest/EfiComp
> li
> antBBTestPlatform_uefi.c
> index ae76c909..be06d139 100644
> --- a/uefi-
> sct/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxTest/EfiComp
> li
> antBBTestPlatform_uefi.c
> +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxT
> +++ es t/EfiCompliantBBTestPlatform_uefi.c
> @@ -28,7 +28,7 @@ Abstract:
> // Includes
> //
>
> -#include "SctLib.h"
> +#include "SctLib.h"
> #include "EfiCompliantBbTestMain_uefi.h"
> #include EFI_PROTOCOL_DEFINITION (SimpleTextIn) #include
> EFI_PROTOCOL_DEFINITION (SimpleTextInEx) @@ -87,6 +87,9 @@ extern
> EFI_GUID gGlobalVariableGuid; //
>
> #define SECTION_NAME_PLATFORM_SPECIFIC L"Platform Specific"
> +#define SECTION_NAME_CONFIGURATION_SPECIFIC L"Test Configuration
> Specific"
> +#define CONFIN_TITLE_STRING L"|=================
> Configuration Environment =================|"
> +#define MAX_SIZE 0xFF
>
> #define EFI_DHCP6_SERVICE_BINDING_PROTOCOL_GUID \
> { 0x9fb9a8a1, 0x2f4a, 0x43a6, {0x88, 0x9c, 0xd0, 0xf7, 0xb6, 0xc4,
> 0x7a,
> 0xd5 }} @@ -170,6 +173,12 @@ EFI_GUID
> gEfiBlueToothAttributeProtocolGuid = { 0x898890e9, 0x84b2, 0x4f3a, {
> 0x
>
> EFI_GUID gEfiBlueToothLEConfigProtocolGuid = { 0x8f76da58, 0x1f99,
> 0x4275, { 0xa4, 0xec, 0x47, 0x56, 0x51, 0x5b, 0x1c, 0xe8 }};
>
> +typedef struct CONFIG_ERROR_DATA {
> + UINT8 ErrorCount;
> + CHAR16 *TitleString;
> + EFI_INI_FILE_HANDLE ConfigINI;
> +} CONFIG_ERROR_DATA;
> +
> //
> // The Max length of pre-defined string value(yes or no) // in the
> EfiCompliant.ini @@ -381,6 +390,25 @@ CheckIPSecProtocols (
> IN EFI_INI_FILE_HANDLE IniFile
> );
>
> +CONFIG_ERROR_DATA*
> +ConstructionAndAcquisition (
> + IN CHAR16 *TitleString,
> + IN EFI_INI_FILE_HANDLE ConfigINI
> +);
> +
> +EFI_STATUS
> +GenTestConfigTitle (
> + IN EFI_INI_FILE_HANDLE IniFile,
> + IN OUT EFI_TEST_ASSERTION *AssertionType,
> + IN CHAR16 *TestItemString
> +);
> +
> +EFI_STATUS
> +GenTestConfigContent (
> + IN CHAR16 *ProtocolGUIDString,
> + IN BOOLEAN Value
> +);
> +
> //
> // External functions implementation
> //
> @@ -405,6 +433,25 @@ Routine Description:
> EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib;
> EFI_TEST_PROFILE_LIBRARY_PROTOCOL *ProfileLib;
> EFI_INI_FILE_HANDLE IniFile;
> + EFI_INI_FILE_HANDLE ConfigINI;
> + EFI_DEVICE_PATH_PROTOCOL *DevicePath;
> + EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *Volume;
> + EFI_HANDLE DeviceHandle;
> + EFI_FILE *Root;
> + EFI_FILE *OldFile;
> + CONFIG_ERROR_DATA *ErrorData;
> + UINT8 Index;
> + BOOLEAN GenConfigINI;
> + CHAR16 String[MAX_LENGTH];
> + CHAR16 *FilePath;
> + CHAR16 *TitleString[] = {
> + L"<|If fail item is not 0, it mean platform config have error ___",
> + L"<|occur or EfiCompliant.ini setting have wrong. ________________",
> + L"<|Please sent this file and EfiCompliant.ini to platform owner .",
> + L"<|EfiCompliant.ini is in the :
> + SCT\\Dependency\\EfiCompliantBBTest",
> +
> L"<|=======================================================
> =======",
> + NULL
> + };
>
> //
> // Locate the standard test library protocol @@ -430,6 +477,68 @@
> Routine
> Description:
> return Status;
> }
>
> + //
> + // Check PlatformConfig.ini file is exise or not.
> + //
> + ProfileLib->EfiGetSystemDevicePath (
> + ProfileLib,
> + &DevicePath,
> + &FilePath
> + );
> + Status = OpenIniFile (
> + ProfileLib,
> + L"Report",
> + L"PlatformConfig.ini",
> + &ConfigINI
> + );
> + if (ConfigINI != NULL) {
> + //
> + // If file exise, delete it.
> + //
> + CloseIniFile (ProfileLib, ConfigINI);
> +
> + Status = gtBS->LocateDevicePath (
> + &gEfiSimpleFileSystemProtocolGuid,
> + &DevicePath,
> + &DeviceHandle
> + );
> + if (EFI_ERROR (Status)) {
> + return Status;
> + }
> +
> + Status = gtBS->HandleProtocol (
> + DeviceHandle,
> + &gEfiSimpleFileSystemProtocolGuid,
> + (VOID*)&Volume
> + );
> + if (EFI_ERROR (Status)) {
> + return Status;
> + }
> +
> + Status = Volume->OpenVolume(Volume, &Root);
> + if (EFI_ERROR (Status)) {
> + return Status;
> + }
> +
> + Status = Root->Open (
> + Root,
> + &OldFile,
> + SctPoolPrint (L"%s\\Report\\PlatformConfig.ini", FilePath),
> + EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE,
> + 0
> + );
> + if (EFI_ERROR (Status)) {
> + return Status;
> + }
> +
> + Status = OldFile->Delete (OldFile);
> + if (EFI_ERROR (Status)) {
> + return Status;
> + }
> +
> + Root->Close (Root);
> + }
> +
> //
> // Open the INI file
> //
> @@ -453,6 +562,68 @@ Routine Description:
> return Status;
> }
>
> + GenConfigINI = FALSE;
> + Index = MAX_LENGTH;
> + Status = IniFile->GetString (
> + IniFile,
> + SECTION_NAME_CONFIGURATION_SPECIFIC,
> + L"GEN_CONFIG_INI_FILE_ON",
> + String,
> + &Index
> + );
> + if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> + GenConfigINI = TRUE;
> + }
> +
> + if (GenConfigINI == TRUE) {
> + //
> + // Create the config.ini file.
> + //
> + ProfileLib->EfiGetSystemDevicePath (
> + ProfileLib,
> + &DevicePath,
> + &FilePath
> + );
> +
> + Status = ProfileLib->EfiIniCreate (
> + ProfileLib,
> + DevicePath,
> + SctPoolPrint (L"%s\\Report\\PlatformConfig.ini", FilePath),
> + &ConfigINI
> + );
> + if (EFI_ERROR (Status)) {
> + StandardLib->RecordAssertion (
> + StandardLib,
> + EFI_TEST_ASSERTION_FAILED,
> + gTestGenericFailureGuid,
> + L"UEFI Compliant - Cannot create or open INI file",
> + L"%a:%d:",
> + __FILE__,
> + (UINTN)__LINE__
> + );
> + return Status;
> + }
> + //
> + // Gen PlatformConfig.ini title and description.
> + //
> + ConfigINI->SetStringByOrder (
> + ConfigINI,
> + 0x00,
> + CONFIN_TITLE_STRING,
> + L"<|Unavailable (Fail) item have :",
> + SctPoolPrint (L": \"%02d\" --", 0x00)
> + );
> + for (Index=0; TitleString[Index] != NULL ;Index++) {
> + ConfigINI->SetString (
> + ConfigINI,
> + CONFIN_TITLE_STRING,
> + TitleString[Index],
> + L"|>"
> + );
> + }
> + ConstructionAndAcquisition (NULL, ConfigINI); }
> +
> //
> // Check the console protocols
> //
> @@ -594,6 +765,26 @@ Routine Description:
> //
> CloseIniFile (ProfileLib, IniFile);
>
> + //
> + // Save data to platform.ini
> + //
> + if (GenConfigINI == TRUE) {
> + ErrorData = ConstructionAndAcquisition (L"END", ConfigINI);
> + //
> + // Update fail count.
> + //
> + ConfigINI->SetStringByOrder (
> + ConfigINI,
> + 0x00,
> + L"|================= Configuration Environment
> =================|",
> + L"<|Unavailable (Fail) item have :",
> + SctPoolPrint (L": \"%02d\" --", ErrorData->ErrorCount)
> + );
> + //
> + // If have error occor and GenTestINI flag is on, gen the report file.
> + //
> + CloseIniFile (ProfileLib, ConfigINI); }
> return EFI_SUCCESS;
> }
>
> @@ -810,6 +1001,11 @@ CheckConsoleProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"ConsoleDevices")) {
> + GenTestConfigContent (L"gEfiSimpleTextInProtocolGuid ", ValueA);
> + GenTestConfigContent (L"gEfiSimpleTextOutProtocolGuid ", ValueB);
> + GenTestConfigContent (L"gEfiSimpleTextInputExProtocolGuid",
> ValueC);
> + }
> }
> }
>
> @@ -888,6 +1084,12 @@ CheckHiiProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"HiiConfigSupport")) {
> + GenTestConfigContent (L"gEfiHiiDatabaseProtocolGuid ", Value[0]);
> + GenTestConfigContent (L"gEfiHiiStringProtocolGuid ", Value[1]);
> + GenTestConfigContent (L"gEfiHiiConfigRoutingProtocolGuid", Value[2]);
> + GenTestConfigContent (L"gEfiHiiFontProtocolGuid ", Value[3]);
> + }
> }
> }
>
> @@ -929,6 +1131,9 @@ CheckHiiProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"HiiFontSupport")) {
> + GenTestConfigContent (L"gEfiHiiFontProtocolGuid", Value[4]);
> + }
> }
> }
>
> @@ -1028,6 +1233,11 @@ CheckGraphicalConsoleProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"GraphicalConsoleDevices")) {
> + GenTestConfigContent (L"gEfiGraphicsOutputProtocolGuid", ValueA);
> + GenTestConfigContent (L"gEfiEdidDiscoveredProtocolGuid", ValueB);
> + GenTestConfigContent (L"gEfiEdidActiveProtocolGuid ", ValueC);
> + }
> }
> }
>
> @@ -1098,6 +1308,9 @@ CheckPointerProtocol (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"PointerDevices")) {
> + GenTestConfigContent (L"gEfiSimplePointerProtocolGuid", ValueA);
> + }
> }
> }
>
> @@ -1211,6 +1424,12 @@ CheckBootFromDiskProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"BootFromDiskDevices")) {
> + GenTestConfigContent (L"gEfiBlockIoProtocolGuid ", ValueA);
> + GenTestConfigContent (L"gEfiDiskIoProtocolGuid ", ValueB);
> + GenTestConfigContent (L"gEfiSimpleFileSystemProtocolGuid", ValueC);
> + GenTestConfigContent (L"gEfiUnicodeCollationProtocolGuid", ValueD);
> + }
> }
> }
>
> @@ -1353,6 +1572,12 @@ CheckBootFromNetworkProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"BootFromNetworkDevices")) {
> + GenTestConfigContent (L"gEfiPxeBaseCodeProtocolGuid ",
> ValueA);
> + GenTestConfigContent (L"gEfiSimpleNetworkProtocolGuid ",
> Value[0]);
> + GenTestConfigContent (L"gEfiManagedNetworkProtocolGuid ",
> Value[1]);
> + GenTestConfigContent
> + (L"gEfiNetworkInterfaceIdentifierProtocolGuid",
> Value[2]);
> + }
> }
> }
>
> @@ -1391,6 +1616,9 @@ CheckBootFromNetworkProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"ValidateBootImageThruNet")) {
> + GenTestConfigContent (L"Variable \"SetupMode\"", ValueC);
> + }
> }
> }
>
> @@ -1481,6 +1709,15 @@ CheckUefiNetworkApplication (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"UefiNetworkApplication")) {
> + GenTestConfigContent
> (L"gEfiManagedNetworkServiceBindingProtocolGuid", Value[0]);
> + GenTestConfigContent (L"gEfiArpServiceBindingProtocolGuid ",
> Value[1]);
> + GenTestConfigContent (L"gEfiIp4ServiceBindingProtocolGuid ",
> Value[2]);
> + GenTestConfigContent (L"gEfiDhcp4ServiceBindingProtocolGuid ",
> Value[3]);
> + GenTestConfigContent (L"gEfiTcp4ServiceBindingProtocolGuid ",
> Value[4]);
> + GenTestConfigContent (L"gEfiUdp4ServiceBindingProtocolGuid ",
> Value[5]);
> + GenTestConfigContent (L"gEfiIp4Config2ProtocolGuid ",
> Value[6]);
> + }
> }
> StandardLib->RecordAssertion (
> StandardLib,
> @@ -1582,6 +1819,21 @@ CheckUefiNetworkApplication (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"UefiNetworkApplication")) {
> + GenTestConfigContent
> (L"gEfiManagedNetworkServiceBindingProtocolGuid", Value[0]);
> + GenTestConfigContent (L"gEfiArpServiceBindingProtocolGuid ",
> Value[1]);
> + GenTestConfigContent (L"gEfiIp4ServiceBindingProtocolGuid ",
> Value[2]);
> + GenTestConfigContent (L"gEfiDhcp4ServiceBindingProtocolGuid ",
> Value[3]);
> + GenTestConfigContent (L"gEfiTcp4ServiceBindingProtocolGuid ",
> Value[4]);
> + GenTestConfigContent (L"gEfiUdp4ServiceBindingProtocolGuid ",
> Value[5]);
> + GenTestConfigContent (L"gEfiIp4Config2ProtocolGuid ",
> Value[6]);
> + GenTestConfigContent (L"gEfiManagedNetworkProtocolGuid ",
> Value[7]);
> + GenTestConfigContent (L"gEfiArpProtocolGuid ", Value[8]);
> + GenTestConfigContent (L"gEfiIp4ProtocolGuid ", Value[9]);
> + GenTestConfigContent (L"gEfiDhcp4ProtocolGuid ",
> Value[10]);
> + GenTestConfigContent (L"gEfiTcp4ProtocolGuid ",
> Value[11]);
> + GenTestConfigContent (L"gEfiUdp4ProtocolGuid ",
> Value[12]);
> + }
> }
> }
>
> @@ -1679,6 +1931,13 @@ CheckUefiV6NetworkApplication (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"UEFIIPv6Support")) {
> + GenTestConfigContent (L"gEfiDhcp6ServiceBindingProtocolGuid",
> Value[0]);
> + GenTestConfigContent (L"gEfiTcp6ServiceBindingProtocolGuid ",
> Value[1]);
> + GenTestConfigContent (L"gEfiIp6ServiceBindingProtocolGuid ",
> Value[2]);
> + GenTestConfigContent (L"gEfiUdp6ServiceBindingProtocolGuid ",
> Value[3]);
> + GenTestConfigContent (L"gEfiIp6ConfigProtocolGuid ", Value[4]);
> + }
> }
> StandardLib->RecordAssertion (
> StandardLib,
> @@ -1774,6 +2033,17 @@ CheckUefiV6NetworkApplication (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"UEFIIPv6Support")) {
> + GenTestConfigContent
> + (L"gEfiDhcp6ServiceBindingProtocolGuid",
> Value[0]);
> + GenTestConfigContent (L"gEfiTcp6ServiceBindingProtocolGuid
> + ",
> Value[1]);
> + GenTestConfigContent (L"gEfiIp6ServiceBindingProtocolGuid
> + ",
> Value[2]);
> + GenTestConfigContent (L"gEfiUdp6ServiceBindingProtocolGuid
> + ",
> Value[3]);
> + GenTestConfigContent (L"gEfiIp6ConfigProtocolGuid ", Value[4]);
> + GenTestConfigContent (L"gEfiDhcp6ProtocolGuid ", Value[5]);
> + GenTestConfigContent (L"gEfiTcp6ProtocolGuid ", Value[6]);
> + GenTestConfigContent (L"gEfiIp6ProtocolGuid ", Value[7]);
> + GenTestConfigContent (L"gEfiUdp6ProtocolGuid ", Value[8]);
> + }
> }
> }
>
> @@ -1830,6 +2100,9 @@ CheckUefiV6NetworkApplication (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"VlanSupport")) {
> + GenTestConfigContent (L"gEfiVlanConfigProtocolGuid", Value[9]);
> + }
> }
> }
>
> @@ -1902,6 +2175,9 @@ CheckUartProtocol (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"UartDevices")) {
> + GenTestConfigContent (L"gEfiSerialIoProtocolGuid", ValueA);
> + }
> }
> }
>
> @@ -1986,6 +2262,10 @@ CheckPciProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"PciBusSupport")) {
> + GenTestConfigContent (L"gEfiPciRootBridgeIoProtocolGuid", ValueA);
> + GenTestConfigContent (L"gEfiPciIoProtocolGuid ", ValueB);
> + }
> }
> }
>
> @@ -2070,6 +2350,10 @@ CheckUsbProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"UsbBusSupport")) {
> + GenTestConfigContent (L"gEfiUsb2HcProtocolGuid", ValueA);
> + GenTestConfigContent (L"gEfiUsbIoProtocolGuid ", ValueB);
> + }
> }
> }
>
> @@ -2139,6 +2423,9 @@ CheckNVMeProtocol (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"NVMExpressPassThru")) {
> + GenTestConfigContent (L"gEfiNvmExpressPassThruProtocolGuid",
> ValueA);
> + }
> }
> }
>
> @@ -2222,6 +2509,9 @@ CheckBootFromNVMe (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"BootFromNVMe")) {
> + GenTestConfigContent (L"gEfiBlockIoProtocolGuid", ValueB);
> + }
> }
> }
>
> @@ -2258,6 +2548,9 @@ CheckBootFromNVMe (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"NVMExpressPassThru")) {
> + GenTestConfigContent
> + (L"gEfiNvmExpressPassThruProtocolGuid",
> ValueA);
> + }
> }
> }
>
> @@ -2330,6 +2623,9 @@ CheckScsiProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"ExtScsiPassThru")) {
> + GenTestConfigContent (L"gEfiExtScsiPassThruProtocolGuid", ValueA);
> + }
> }
> }
>
> @@ -2428,6 +2724,10 @@ CheckBootFromScsi (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"BootFromScsi")) {
> + GenTestConfigContent (L"gEfiBlockIoProtocolGuid", ValueB);
> + GenTestConfigContent (L"gEfiScsiIoProtocolGuid ", ValueC);
> + }
> }
> }
>
> @@ -2465,6 +2765,9 @@ CheckBootFromScsi (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"ExtScsiPassThruSupport")) {
> + GenTestConfigContent (L"gEfiExtScsiPassThruProtocolGuid", ValueA);
> + }
> }
> }
>
> @@ -2550,6 +2853,10 @@ CheckBootFromIScsi (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"BootFromIscsi")) {
> + GenTestConfigContent (L"gEfiIScsiInitiatorNameProtocolGuid", ValueA);
> + GenTestConfigContent (L"gEfiAuthenticationInfoProtocolGuid",
> ValueB);
> + }
> }
> }
>
> @@ -2637,6 +2944,10 @@ CheckDebugProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"DebugSupport")) {
> + GenTestConfigContent (L"gEfiDebugSupportProtocolGuid", ValueA);
> + GenTestConfigContent (L"gEfiDebugPortProtocolGuid ", ValueB);
> + }
> }
> }
>
> @@ -2706,6 +3017,9 @@ CheckDriverOverrideProtocol (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"PlatformDriverOverride")) {
> + GenTestConfigContent
> + (L"gEfiPlatformDriverOverrideProtocolGuid",
> ValueA);
> + }
> }
> }
>
> @@ -2774,6 +3088,9 @@ CheckATAProtocol (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"AtaPassThru")) {
> + GenTestConfigContent (L"gEfiAtaPassThruProtocolGuid", ValueA);
> + }
> }
> }
>
> @@ -2845,6 +3162,12 @@ CheckEbcProtocol (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"EBCSupport")) {
> + GenTestConfigContent (L"Ebc->CreateThunk", Ebc->CreateThunk
> + !=
> NULL);
> + GenTestConfigContent (L"Ebc->UnloadImage", Ebc->UnloadImage
> + !=
> NULL);
> + GenTestConfigContent (L"Ebc->RegisterICacheFlush", Ebc-
> >RegisterICacheFlush != NULL);
> + GenTestConfigContent (L"Ebc->GetVersion ", Ebc->GetVersion !=
> NULL);
> + }
> }
> }
>
> @@ -2941,6 +3264,9 @@ CheckDNS4Protocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"DNS4Support")) {
> + GenTestConfigContent (L"gEfiDns4ServiceBindingProtocolGuid",
> ValueA);
> + }
> }
> StandardLib->RecordAssertion (
> StandardLib,
> @@ -2998,6 +3324,10 @@ CheckDNS4Protocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"DNS4Support")) {
> + GenTestConfigContent
> + (L"gEfiDns4ServiceBindingProtocolGuid",
> ValueA);
> + GenTestConfigContent (L"gEfiDns4ProtocolGuid ", ValueB);
> + }
> }
> }
>
> @@ -3067,6 +3397,9 @@ CheckDNS6Protocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"DNS6Support")) {
> + GenTestConfigContent (L"gEfiDns6ServiceBindingProtocolGuid",
> ValueA);
> + }
> }
> StandardLib->RecordAssertion (
> StandardLib,
> @@ -3124,6 +3457,10 @@ CheckDNS6Protocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"DNS6Support")) {
> + GenTestConfigContent
> + (L"gEfiDns6ServiceBindingProtocolGuid",
> ValueA);
> + GenTestConfigContent (L"gEfiDns6ProtocolGuid ", ValueB);
> + }
> }
> }
>
> @@ -3205,6 +3542,10 @@ CheckTLSProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"TLSSupport")) {
> + GenTestConfigContent (L"gEfiTlsServiceBindingProtocolGuid", ValueA);
> + GenTestConfigContent (L"gEfiTlsConfigurationProtocolGuid ", ValueB);
> + }
> }
> StandardLib->RecordAssertion (
> StandardLib,
> @@ -3263,6 +3604,11 @@ CheckTLSProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"TLSSupport")) {
> + GenTestConfigContent (L"gEfiTlsServiceBindingProtocolGuid", ValueA);
> + GenTestConfigContent (L"gEfiTlsConfigurationProtocolGuid ", ValueB);
> + GenTestConfigContent (L"gEfiTlsProtocolGuid ", ValueC);
> + }
> }
> }
>
> @@ -3346,6 +3692,10 @@ CheckHTTPProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"HTTPSupport")) {
> + GenTestConfigContent (L"gEfiHttpServiceBindingProtocolGuid",
> ValueA);
> + GenTestConfigContent (L"gEfiHttpUtilitiesProtocolGuid ", ValueB);
> + }
> }
> StandardLib->RecordAssertion (
> StandardLib,
> @@ -3404,6 +3754,11 @@ CheckHTTPProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"HTTPSupport")) {
> + GenTestConfigContent
> + (L"gEfiHttpServiceBindingProtocolGuid",
> ValueA);
> + GenTestConfigContent (L"gEfiHttpUtilitiesProtocolGuid ", ValueB);
> + GenTestConfigContent (L"gEfiHttpProtocolGuid ", ValueC);
> + }
> }
> }
>
> @@ -3493,6 +3848,11 @@ CheckEAPProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"EAPSupport")) {
> + GenTestConfigContent (L"gEfiEapProtocolGuid ", ValueA);
> + GenTestConfigContent (L"gEfiEapConfigProtocolGuid ", ValueB);
> + GenTestConfigContent (L"gEfiEapManagement2ProtocolGuid", ValueC);
> + }
> }
> }
>
> @@ -3588,6 +3948,11 @@ CheckBlueToothClassicProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"BlueToothClassicSupport")) {
> + GenTestConfigContent (L"gEfiBlueToothHcProtocolGuid ",
> ValueA);
> + GenTestConfigContent
> + (L"gEfiBlueToothServiceBindingProtocolGuid",
> ValueB);
> + GenTestConfigContent (L"gEfiBlueToothConfigProtocolGuid ",
> ValueC);
> + }
> }
>
> //
> @@ -3652,6 +4017,12 @@ CheckBlueToothClassicProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> L"BlueToothClassicSupport")) {
> + GenTestConfigContent (L"gEfiBlueToothHcProtocolGuid ",
> ValueA);
> + GenTestConfigContent
> + (L"gEfiBlueToothServiceBindingProtocolGuid",
> ValueB);
> + GenTestConfigContent (L"gEfiBlueToothConfigProtocolGuid ",
> ValueC);
> + GenTestConfigContent (L"gEfiBlueToothIoProtocolGuid ",
> ValueD);
> + }
> }
> }
>
> @@ -3743,6 +4114,11 @@ CheckBlueToothLEProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType,
> + L"BlueToothLESupport"))
> {
> + GenTestConfigContent (L"gEfiBlueToothHcProtocolGuid ", ValueA);
> + GenTestConfigContent (L"gEfiBlueToothAttributeProtocolGuid",
> ValueB);
> + GenTestConfigContent (L"gEfiBlueToothLEConfigProtocolGuid ",
> ValueC);
> + }
> }
> }
>
> @@ -3832,6 +4208,10 @@ CheckIPSecProtocols (
> );
> if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> AssertionType = EFI_TEST_ASSERTION_FAILED;
> + if (!GenTestConfigTitle (IniFile, &AssertionType, L"IPSecSupport")) {
> + GenTestConfigContent (L"gEfiIPSecConfigProtocolGuid", ValueA);
> + GenTestConfigContent (L"gEfiIPSec2ProtocolGuid ", ValueB);
> + }
> }
> }
>
> @@ -3852,3 +4232,119 @@ CheckIPSecProtocols (
>
> return EFI_SUCCESS;
> }
> +
> +CONFIG_ERROR_DATA*
> +ConstructionAndAcquisition (
> + CHAR16 *TitleString,
> + EFI_INI_FILE_HANDLE ConfigINI
> +){
> + UINTN Index;
> + static CONFIG_ERROR_DATA Data;
> +
> + if (TitleString == NULL && ConfigINI != NULL) {
> + //
> + // If only gave ConfigINI, init struct.
> + //
> + gtBS->AllocatePool (EfiBootServicesData ,MAX_SIZE,
> (VOID**)&(Data.TitleString));
> + Data.ConfigINI = ConfigINI;
> + Data.ErrorCount = 0;
> +
> + return NULL;
> + } else if (TitleString != NULL && ConfigINI == NULL) {
> + //
> + // If Only gave TitleString, update the title and error count +1.
> + //
> + for (Index=0; Data.TitleString[Index]=TitleString[Index],
> TitleString[Index]!=0; Index++);
> + Data.ErrorCount++;
> +
> + return &Data;
> + } else if (TitleString != NULL && ConfigINI != NULL) {
> + //
> + // If Both not NULL, end of the function, free the buffer.
> + //
> + gtBS->FreePool (Data.TitleString);
> + return &Data;
> + }
> + //
> + // If both NULL, just return struct data.
> + //
> + return &Data;
> +}
> +
> +EFI_STATUS
> +GenTestConfigTitle (
> + IN EFI_INI_FILE_HANDLE IniFile,
> + IN OUT EFI_TEST_ASSERTION *AssertionType,
> + IN CHAR16 *TestItemString
> +){
> + CONFIG_ERROR_DATA *ErrorData;
> + EFI_STATUS Status;
> + CHAR16 String[MAX_LENGTH];
> + UINT32 MaxLength;
> +
> + //
> + // Check need to gen config.ini or not.
> + //
> + MaxLength = MAX_LENGTH;
> + Status = IniFile->GetString (
> + IniFile,
> + SECTION_NAME_CONFIGURATION_SPECIFIC,
> + L"GEN_CONFIG_INI_FILE_ON",
> + String,
> + &MaxLength
> + );
> + if (EFI_ERROR (Status) || !(SctStriCmp (String, L"yes") == 0)) {
> + return EFI_UNSUPPORTED;
> + }
> +
> + //
> + // If platform owner is not sure platform config yet, this item
> + can skip this
> test.
> + //
> + MaxLength = MAX_LENGTH;
> + Status = IniFile->GetString (
> + IniFile,
> + SECTION_NAME_CONFIGURATION_SPECIFIC,
> + L"IGNORE_COMPLIANT_TEST_CSV",
> + String,
> + &MaxLength
> + );
> + if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) {
> + *AssertionType = EFI_TEST_ASSERTION_WARNING; }
> +
> + ErrorData = ConstructionAndAcquisition (TestItemString, NULL); //
> + // Set title // ErrorData->ConfigINI->SetStringByOrder (
> + ErrorData->ConfigINI,
> + ErrorData->ErrorCount,
> + SctPoolPrint (L"%02d. %s",ErrorData->ErrorCount, TestItemString),
> + L"Device Status :",
> + L": Unavailable"
> + );
> +
> + return EFI_SUCCESS;
> +}
> +
> +EFI_STATUS
> +GenTestConfigContent (
> + IN CHAR16 *ProtocolGUIDString,
> + IN BOOLEAN Value
> +){
> + CONFIG_ERROR_DATA *ErrorData;
> +
> + ErrorData = ConstructionAndAcquisition (NULL, NULL); // // Gen
> + content // ErrorData->ConfigINI->SetString (
> + ErrorData->ConfigINI,
> + SctPoolPrint (L"%02d. %s",ErrorData->ErrorCount,
> + ErrorData-
> >TitleString),
> + SctPoolPrint (L" %s <-| Status :", ProtocolGUIDString),
> + Value ? L": Exist in system !": L": Not exist in system !"
> + );
> +
> + return EFI_SUCCESS;
> +}
> +
> --
> 2.16.2.windows.1
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-10-18 2:21 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-10-16 6:46 [edk2-devel] [edk2-test] [PATCH V4] uefi-sct/SctPkg: Auto gen result of "EFICompliantTest" Eric Jin
[not found] <15CE0DB1743B9D5B.25313@groups.io>
2019-10-18 2:21 ` Eric Jin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox