From nobody Fri Mar 29 01:59:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+47034+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+47034+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1568024902; cv=none; d=zoho.com; s=zohoarc; b=BoSCFMOiLqRY3DWoKvMWllQzZ5DapeiQReLAZ+X9O28So+sleBCJ7nGXYn/sMGSb3vroF4AjN3ETGULXTGgJFWEZL8l/XxfR+hXvEjvZokcDixSPh6gMJwbU/ui/hHQpK0TYEiM4OIb4M0j0sjHKqlME0viJtcUiIcE/H6l0B4s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1568024902; h=Cc:Date:From:List-Id:List-Unsubscribe:Message-ID:Reply-To:Sender:Subject:To:ARC-Authentication-Results; bh=laqJMF1VjitpRjN2O15KUe8poXJo2hoa99xOWRVU+KQ=; b=m/tDvLM6T7zy6Xg027IGOfdp3cO36ZuQuJNebV1YD074u13N5A2i8aZyupGmo8kYh2xgUuOCnh0CKAL3+/IfCmAq1xQAyIAOVgPPZdD6c0X4GV2yE+ngNyp3eDNoxVTaZcNZ4v1R7P6rlcddE/tBYX+pNrj7g/nZtQeqr2UUDUQ= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+47034+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 156802490270920.7142967552154; Mon, 9 Sep 2019 03:28:22 -0700 (PDT) Return-Path: X-Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by groups.io with SMTP; Sun, 08 Sep 2019 23:28:50 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Sep 2019 23:28:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,483,1559545200"; d="scan'208";a="183718366" X-Received: from chiena2x-mobl.gar.corp.intel.com ([10.5.246.58]) by fmsmga008.fm.intel.com with ESMTP; 08 Sep 2019 23:28:48 -0700 From: ArvinX Chen To: devel@edk2.groups.io Cc: Eric Jin , ArvinX Chen Subject: [edk2-devel] [PATCH] uefi-sct/SctPkg: Auto gen result of "EFICompliantTest". Date: Mon, 9 Sep 2019 14:28:39 +0800 Message-Id: <20190909062839.15768-1-arvinx.chen@intel.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,arvinx.chen@intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1568024902; bh=7FF59XCEXOiPOYkqhPXSYM9NKRT7fu7SlfLMVUgswE4=; h=Cc:Date:From:Reply-To:Subject:To; b=QaHzFnnKLFCbuD7WFPRPWoufYQdAg3RmUtPoC5cvmBJbt/+J9HPArtcLK8kfxLv3iu7 NbIkSkBdIU0N6wf5KnvPBa3U27ePBynRwSm9+pIyqwqdV0qQ+ZAF4/CinFZ6ddSPRMFTA QEAVqWFIIWYcNTsyusbOtTzeoSjGOHVLmok= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2155 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\PlatformConfigXXX.ini each time tester execute this test will creat a new one until 255. Cc: Eric Jin Cc: ArvinX Chen Signed-off-by: ArvinX Chen --- .../BlackBoxTest/EfiCompliantBBTestPlatform_uefi.c | 438 +++++++++++++++++= ++++ 1 file changed, 438 insertions(+) diff --git a/Edk2/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxTes= t/EfiCompliantBBTestPlatform_uefi.c b/Edk2/SctPkg/TestCase/UEFI/EFI/Generic= /EfiCompliant/BlackBoxTest/EfiCompliantBBTestPlatform_uefi.c index 221366b..7bbec70 100644 --- a/Edk2/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxTest/EfiCo= mpliantBBTestPlatform_uefi.c +++ b/Edk2/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxTest/EfiCo= mpliantBBTestPlatform_uefi.c @@ -118,6 +118,8 @@ extern EFI_GUID gGlobalVariableGuid; // =20 #define SECTION_NAME_PLATFORM_SPECIFIC L"Platform Specific" +#define GEN_CONFIG_INI_FILE_ON TRUE +#define MAX_SIZE 0xFF =20 #define EFI_DHCP6_SERVICE_BINDING_PROTOCOL_GUID \ { 0x9fb9a8a1, 0x2f4a, 0x43a6, {0x88, 0x9c, 0xd0, 0xf7, 0xb6, 0xc4, 0x7a, = 0xd5 }} @@ -201,6 +203,12 @@ EFI_GUID gEfiBlueToothAttributeProtocolGuid =3D { 0x89= 8890e9, 0x84b2, 0x4f3a, { 0x =20 EFI_GUID gEfiBlueToothLEConfigProtocolGuid =3D { 0x8f76da58, 0x1f99, 0x427= 5, { 0xa4, 0xec, 0x47, 0x56, 0x51, 0x5b, 0x1c, 0xe8 }}; =20 +typedef struct CONFIG_ERROR_DATA { + UINT8 ErrorCount; + CHAR16 *TitleString; + EFI_INI_FILE_HANDLE ConfigINI; +} CONFIG_ERROR_DATA; + // // Internal functions declarations // @@ -405,6 +413,23 @@ CheckIPSecProtocols ( IN EFI_INI_FILE_HANDLE IniFile ); =20 +CONFIG_ERROR_DATA* +ConstructionAndAcquisition ( + IN CHAR16 *TitleString, + IN EFI_INI_FILE_HANDLE ConfigINI +); + +EFI_STATUS +GenTestConfigTitle ( + IN CHAR16 *TestItemString + ); + +EFI_STATUS +GenTestConfigContent ( + IN CHAR16 *ProtocolGUIDString, + IN BOOLEAN Value +); + // // External functions implementation // @@ -429,6 +454,11 @@ 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; + CONFIG_ERROR_DATA *ErrorData; + CHAR16 *FilePath; + UINT8 Index; =20 // // Locate the standard test library protocol @@ -477,6 +507,85 @@ Routine Description: return Status; } =20 + // + // Creat PlatformConfig.ini file. + // + ProfileLib->EfiGetSystemDevicePath ( + ProfileLib, + &DevicePath, + &FilePath + ); + for (Index=3D0; IndexEfiIniCreate ( + ProfileLib, + DevicePath, + SctPoolPrint (L"%s\\Report\\PlatformConfig%03d.in= i",FilePath, Index), + &ConfigINI + ); + if (EFI_ERROR (Status)) { + StandardLib->RecordAssertion ( + StandardLib, + EFI_TEST_ASSERTION_WARNING, + gTestGenericFailureGuid, + L"UEFI Compliant - Cannot create INI file", + L"%a:%d", + __FILE__, + (UINTN)__LINE__ + ); + + return Status; + } + // + // Gen PlatformConfig.ini title and description. + // + ConfigINI->SetStringByOrder ( + ConfigINI, + 0x00, + L"|=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = Configuration Environment =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D|", + L"<|Unavailable (Fail) item have :", + SctPoolPrint (L": \"%02d\" --", 0x00) + ); + ConfigINI->SetString ( + ConfigINI, + L"|=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = Configuration Environment =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D|", + L"<|If fail item is not 0, it mean platform config have= error ___", + L"|>" + ); + ConfigINI->SetString ( + ConfigINI, + L"|=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = Configuration Environment =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D|", + L"<|occur or EfiCompliant.ini setting have wrong. ______= __________", + L"|>" + ); + ConfigINI->SetString ( + ConfigINI, + L"|=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = Configuration Environment =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D|", + L"<|Please sent this file and EfiCompliant.ini to platfo= rm owner .", + L"|>" + ); + ConfigINI->SetString ( + ConfigINI, + L"|=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = Configuration Environment =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D|", + L"<|=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D", + L"|>" + ); + + ConstructionAndAcquisition (NULL, ConfigINI); // // Check the console protocols // @@ -618,6 +727,26 @@ Routine Description: // CloseIniFile (ProfileLib, IniFile); =20 + ErrorData =3D ConstructionAndAcquisition (L"END", ConfigINI); + // + // Update fail count. + // + ConfigINI->SetStringByOrder ( + ConfigINI, + 0x00, + L"|=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = Configuration Environment =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D|", + L"<|Unavailable (Fail) item have :", + SctPoolPrint (L": \"%02d\" --", ErrorData->ErrorCoun= t) + ); + // + // Save data + // + if (GEN_CONFIG_INI_FILE_ON =3D=3D TRUE) { + // + // If have error occor and GenTestINI flag is on, gen the report file. + // + CloseIniFile (ProfileLib, ConfigINI); + } return EFI_SUCCESS; } =20 @@ -835,6 +964,12 @@ CheckConsoleProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"ConsoleDevices")) { + GenTestConfigContent (L"gEfiSimpleTextInProtocolGuid ", ValueA= ); + GenTestConfigContent (L"gEfiSimpleTextOutProtocolGuid ", ValueB= ); + GenTestConfigContent (L"gEfiSimpleTextInputExProtocolGuid", ValueC= ); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -914,6 +1049,13 @@ CheckHiiProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"HiiConfigSupport")) { + GenTestConfigContent (L"gEfiHiiDatabaseProtocolGuid ", Value[0= ]); + GenTestConfigContent (L"gEfiHiiStringProtocolGuid ", Value[1= ]); + GenTestConfigContent (L"gEfiHiiConfigRoutingProtocolGuid", Value[2= ]); + GenTestConfigContent (L"gEfiHiiFontProtocolGuid ", Value[3= ]); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -956,6 +1098,10 @@ CheckHiiProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"HiiFontSupport")) { + GenTestConfigContent (L"gEfiHiiFontProtocolGuid", Value[4]); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -1056,6 +1202,12 @@ CheckGraphicalConsoleProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"GraphicalConsoleDevices")) { + GenTestConfigContent (L"gEfiGraphicsOutputProtocolGuid", ValueA); + GenTestConfigContent (L"gEfiEdidDiscoveredProtocolGuid", ValueB); + GenTestConfigContent (L"gEfiEdidActiveProtocolGuid ", ValueC); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -1127,6 +1279,10 @@ CheckPointerProtocol ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"PointerDevices")) { + GenTestConfigContent (L"gEfiSimplePointerProtocolGuid", ValueA); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -1241,6 +1397,13 @@ CheckBootFromDiskProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"BootFromDiskDevices")) { + GenTestConfigContent (L"gEfiBlockIoProtocolGuid ", ValueA); + GenTestConfigContent (L"gEfiDiskIoProtocolGuid ", ValueB); + GenTestConfigContent (L"gEfiSimpleFileSystemProtocolGuid", ValueC); + GenTestConfigContent (L"gEfiUnicodeCollationProtocolGuid", ValueD); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -1384,6 +1547,13 @@ CheckBootFromNetworkProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"BootFromNetworkDevices")) { + GenTestConfigContent (L"gEfiPxeBaseCodeProtocolGuid = ", ValueA); + GenTestConfigContent (L"gEfiSimpleNetworkProtocolGuid = ", Value[0]); + GenTestConfigContent (L"gEfiManagedNetworkProtocolGuid = ", Value[1]); + GenTestConfigContent (L"gEfiNetworkInterfaceIdentifierProtocolGuid= ", Value[2]); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -1423,6 +1593,10 @@ CheckBootFromNetworkProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"ValidateBootImageThruNet")) { + GenTestConfigContent (L"Variable \"SetupMode\"", ValueC); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -1514,6 +1688,16 @@ CheckUefiNetworkApplication ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"UefiNetworkApplication")) { + GenTestConfigContent (L"gEfiManagedNetworkServiceBindingProtocolGu= id", 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]); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } StandardLib->RecordAssertion ( StandardLib, @@ -1616,6 +1800,22 @@ CheckUefiNetworkApplication ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"UefiNetworkApplication")) { + GenTestConfigContent (L"gEfiManagedNetworkServiceBindingProtocol= Guid", 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]); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -1714,6 +1914,14 @@ CheckUefiV6NetworkApplication ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"UEFIIPv6Support")) { + GenTestConfigContent (L"gEfiDhcp6ServiceBindingProtocolGuid", Valu= e[0]); + GenTestConfigContent (L"gEfiTcp6ServiceBindingProtocolGuid ", Valu= e[1]); + GenTestConfigContent (L"gEfiIp6ServiceBindingProtocolGuid ", Valu= e[2]); + GenTestConfigContent (L"gEfiUdp6ServiceBindingProtocolGuid ", Valu= e[3]); + GenTestConfigContent (L"gEfiIp6ConfigProtocolGuid ", Valu= e[4]); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } StandardLib->RecordAssertion ( StandardLib, @@ -1810,6 +2018,18 @@ CheckUefiV6NetworkApplication ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"UEFIIPv6Support")) { + GenTestConfigContent (L"gEfiDhcp6ServiceBindingProtocolGuid", Va= lue[0]); + GenTestConfigContent (L"gEfiTcp6ServiceBindingProtocolGuid ", Va= lue[1]); + GenTestConfigContent (L"gEfiIp6ServiceBindingProtocolGuid ", Va= lue[2]); + GenTestConfigContent (L"gEfiUdp6ServiceBindingProtocolGuid ", Va= lue[3]); + GenTestConfigContent (L"gEfiIp6ConfigProtocolGuid ", Va= lue[4]); + GenTestConfigContent (L"gEfiDhcp6ProtocolGuid ", Va= lue[5]); + GenTestConfigContent (L"gEfiTcp6ProtocolGuid ", Va= lue[6]); + GenTestConfigContent (L"gEfiIp6ProtocolGuid ", Va= lue[7]); + GenTestConfigContent (L"gEfiUdp6ProtocolGuid ", Va= lue[8]); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -1867,6 +2087,10 @@ CheckUefiV6NetworkApplication ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0))= { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"VlanSupport")) { + GenTestConfigContent (L"gEfiVlanConfigProtocolGuid", Value[9]); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -1940,6 +2164,10 @@ CheckUartProtocol ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"UartDevices")) { + GenTestConfigContent (L"gEfiSerialIoProtocolGuid", ValueA); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -2025,6 +2253,11 @@ CheckPciProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"PciBusSupport")) { + GenTestConfigContent (L"gEfiPciRootBridgeIoProtocolGuid", ValueA); + GenTestConfigContent (L"gEfiPciIoProtocolGuid ", ValueB); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -2110,6 +2343,11 @@ CheckUsbProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"UsbBusSupport")) { + GenTestConfigContent (L"gEfiUsb2HcProtocolGuid", ValueA); + GenTestConfigContent (L"gEfiUsbIoProtocolGuid ", ValueB); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -2180,6 +2418,10 @@ CheckNVMeProtocol ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"NVMExpressPassThru")) { + GenTestConfigContent (L"gEfiNvmExpressPassThruProtocolGuid", Value= A); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -2264,6 +2506,10 @@ CheckBootFromNVMe ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"BootFromNVMe")) { + GenTestConfigContent (L"gEfiBlockIoProtocolGuid", ValueB); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -2301,6 +2547,10 @@ CheckBootFromNVMe ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"NVMExpressPassThru")) { + GenTestConfigContent (L"gEfiNvmExpressPassThruProtocolGuid", Val= ueA); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -2374,6 +2624,10 @@ CheckScsiProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"ExtScsiPassThru")) { + GenTestConfigContent (L"gEfiExtScsiPassThruProtocolGuid", ValueA); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -2473,6 +2727,11 @@ CheckBootFromScsi ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"BootFromScsi")) { + GenTestConfigContent (L"gEfiBlockIoProtocolGuid", ValueB); + GenTestConfigContent (L"gEfiScsiIoProtocolGuid ", ValueC); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -2511,6 +2770,10 @@ CheckBootFromScsi ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"ExtScsiPassThruSupport")) { + GenTestConfigContent (L"gEfiExtScsiPassThruProtocolGuid", ValueA= ); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -2597,6 +2860,11 @@ CheckBootFromIScsi ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"BootFromIscsi")) { + GenTestConfigContent (L"gEfiIScsiInitiatorNameProtocolGuid", Value= A); + GenTestConfigContent (L"gEfiAuthenticationInfoProtocolGuid", Value= B); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -2685,6 +2953,11 @@ CheckDebugProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"DebugSupport")) { + GenTestConfigContent (L"gEfiDebugSupportProtocolGuid", ValueA); + GenTestConfigContent (L"gEfiDebugPortProtocolGuid ", ValueB); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -2755,6 +3028,10 @@ CheckDriverOverrideProtocol ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"PlatformDriverOverride")) { + GenTestConfigContent (L"gEfiPlatformDriverOverrideProtocolGuid", V= alueA); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -2824,6 +3101,10 @@ CheckATAProtocol ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"AtaPassThru")) { + GenTestConfigContent (L"gEfiAtaPassThruProtocolGuid", ValueA); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -2896,6 +3177,13 @@ CheckEbcProtocol ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"EBCSupport")) { + GenTestConfigContent (L"Ebc->CreateThunk", Ebc->CreateThunk !=3D N= ULL); + GenTestConfigContent (L"Ebc->UnloadImage", Ebc->UnloadImage !=3D N= ULL); + GenTestConfigContent (L"Ebc->RegisterICacheFlush", Ebc->RegisterIC= acheFlush !=3D NULL); + GenTestConfigContent (L"Ebc->GetVersion ", Ebc->GetVersion !=3D NU= LL); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -2993,6 +3281,10 @@ CheckDNS4Protocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"DNS4Support")) { + GenTestConfigContent (L"gEfiDns4ServiceBindingProtocolGuid", Value= A); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } StandardLib->RecordAssertion ( StandardLib, @@ -3051,6 +3343,11 @@ CheckDNS4Protocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"DNS4Support")) { + GenTestConfigContent (L"gEfiDns4ServiceBindingProtocolGuid", Val= ueA); + GenTestConfigContent (L"gEfiDns4ProtocolGuid ", Val= ueB); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -3121,6 +3418,10 @@ CheckDNS6Protocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"DNS6Support")) { + GenTestConfigContent (L"gEfiDns6ServiceBindingProtocolGuid", Value= A); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } StandardLib->RecordAssertion ( StandardLib, @@ -3179,6 +3480,11 @@ CheckDNS6Protocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"DNS6Support")) { + GenTestConfigContent (L"gEfiDns6ServiceBindingProtocolGuid", Val= ueA); + GenTestConfigContent (L"gEfiDns6ProtocolGuid ", Val= ueB); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -3261,6 +3567,11 @@ CheckTLSProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"TLSSupport")) { + GenTestConfigContent (L"gEfiTlsServiceBindingProtocolGuid", ValueA= ); + GenTestConfigContent (L"gEfiTlsConfigurationProtocolGuid ", ValueB= ); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } StandardLib->RecordAssertion ( StandardLib, @@ -3320,6 +3631,12 @@ CheckTLSProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"TLSSupport")) { + GenTestConfigContent (L"gEfiTlsServiceBindingProtocolGuid", Valu= eA); + GenTestConfigContent (L"gEfiTlsConfigurationProtocolGuid ", Valu= eB); + GenTestConfigContent (L"gEfiTlsProtocolGuid ", Valu= eC); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -3404,6 +3721,11 @@ CheckHTTPProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"HTTPSupport")) { + GenTestConfigContent (L"gEfiHttpServiceBindingProtocolGuid", Value= A); + GenTestConfigContent (L"gEfiHttpUtilitiesProtocolGuid ", Value= B); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } StandardLib->RecordAssertion ( StandardLib, @@ -3463,6 +3785,12 @@ CheckHTTPProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"HTTPSupport")) { + GenTestConfigContent (L"gEfiHttpServiceBindingProtocolGuid", Val= ueA); + GenTestConfigContent (L"gEfiHttpUtilitiesProtocolGuid ", Val= ueB); + GenTestConfigContent (L"gEfiHttpProtocolGuid ", Val= ueC); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -3553,6 +3881,12 @@ CheckEAPProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"EAPSupport")) { + GenTestConfigContent (L"gEfiEapProtocolGuid ", ValueA); + GenTestConfigContent (L"gEfiEapConfigProtocolGuid ", ValueB); + GenTestConfigContent (L"gEfiEapManagement2ProtocolGuid", ValueC); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -3649,6 +3983,12 @@ CheckBlueToothClassicProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"BlueToothClassicSupport")) { + GenTestConfigContent (L"gEfiBlueToothHcProtocolGuid ", = ValueA); + GenTestConfigContent (L"gEfiBlueToothServiceBindingProtocolGuid", = ValueB); + GenTestConfigContent (L"gEfiBlueToothConfigProtocolGuid ", = ValueC); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } =20 // @@ -3714,6 +4054,13 @@ CheckBlueToothClassicProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"BlueToothClassicSupport")) { + GenTestConfigContent (L"gEfiBlueToothHcProtocolGuid "= , ValueA); + GenTestConfigContent (L"gEfiBlueToothServiceBindingProtocolGuid"= , ValueB); + GenTestConfigContent (L"gEfiBlueToothConfigProtocolGuid "= , ValueC); + GenTestConfigContent (L"gEfiBlueToothIoProtocolGuid "= , ValueD); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -3807,6 +4154,12 @@ CheckBlueToothLEProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"BlueToothLESupport")) { + GenTestConfigContent (L"gEfiBlueToothHcProtocolGuid ", Value= A); + GenTestConfigContent (L"gEfiBlueToothAttributeProtocolGuid", Value= B); + GenTestConfigContent (L"gEfiBlueToothLEConfigProtocolGuid ", Value= C); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -3897,6 +4250,11 @@ CheckIPSecProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") =3D=3D 0)) { AssertionType =3D EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"IPSecSupport")) { + GenTestConfigContent (L"gEfiIPSecConfigProtocolGuid", ValueA); + GenTestConfigContent (L"gEfiIPSec2ProtocolGuid ", ValueB); + AssertionType =3D EFI_TEST_ASSERTION_WARNING; + } } } =20 @@ -3915,5 +4273,85 @@ CheckIPSecProtocols ( ValueB ? L"Yes" : L"No" ); =20 + return EFI_SUCCESS; +} + +CONFIG_ERROR_DATA* +ConstructionAndAcquisition ( + CHAR16 *TitleString, + EFI_INI_FILE_HANDLE ConfigINI +){ + UINTN Index; + static CONFIG_ERROR_DATA Data; + + if (TitleString =3D=3D NULL && ConfigINI !=3D NULL) { + // + // If only gave ConfigINI, init struct. + // + gtBS->AllocatePool (EfiBootServicesData ,MAX_SIZE, (VOID**)&(Data.Titl= eString)); + Data.ConfigINI =3D ConfigINI; + Data.ErrorCount =3D 0; + + return NULL; + } else if (TitleString !=3D NULL && ConfigINI =3D=3D NULL) { + // + // If Only gave TitleString, update the title and error count +1. + // + for (Index=3D0; Data.TitleString[Index]=3DTitleString[Index], TitleStr= ing[Index]!=3D0; Index++); + Data.ErrorCount++; + + return &Data; + } else if (TitleString !=3D NULL && ConfigINI !=3D 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 CHAR16 *TestItemString +){ + CONFIG_ERROR_DATA *ErrorData; + + ErrorData =3D ConstructionAndAcquisition (TestItemString, NULL); + // + // Set title + // + ErrorData->ConfigINI->SetStringByOrder ( + ErrorData->ConfigINI, + ErrorData->ErrorCount, + SctPoolPrint (L"%02d. %s",ErrorData->ErrorCount, TestItemSt= ring), + L"Device Status :", + L": Unavailable" + ); + + return (GEN_CONFIG_INI_FILE_ON) ? EFI_SUCCESS : EFI_UNSUPPORTED; +} + +EFI_STATUS +GenTestConfigContent ( + IN CHAR16 *ProtocolGUIDString, + IN BOOLEAN Value +){ + CONFIG_ERROR_DATA *ErrorData; + + ErrorData =3D 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": In use !": L": Not available !" + ); + return EFI_SUCCESS; } \ No newline at end of file --=20 2.16.2.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#47034): https://edk2.groups.io/g/devel/message/47034 Mute This Topic: https://groups.io/mt/34078129/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-