From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: arvinx.chen@intel.com) 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 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" 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: [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> X-Mailer: git-send-email 2.16.2.windows.1 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\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/BlackBoxTest/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/EfiCompliantBBTestPlatform_uefi.c +++ b/Edk2/SctPkg/TestCase/UEFI/EFI/Generic/EfiCompliant/BlackBoxTest/EfiCompliantBBTestPlatform_uefi.c @@ -118,6 +118,8 @@ extern EFI_GUID gGlobalVariableGuid; // #define SECTION_NAME_PLATFORM_SPECIFIC L"Platform Specific" +#define GEN_CONFIG_INI_FILE_ON TRUE +#define MAX_SIZE 0xFF #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 = { 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; + // // Internal functions declarations // @@ -405,6 +413,23 @@ CheckIPSecProtocols ( IN EFI_INI_FILE_HANDLE IniFile ); +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; // // Locate the standard test library protocol @@ -477,6 +507,85 @@ Routine Description: return Status; } + // + // Creat PlatformConfig.ini file. + // + ProfileLib->EfiGetSystemDevicePath ( + ProfileLib, + &DevicePath, + &FilePath + ); + for (Index=0; IndexEfiIniCreate ( + ProfileLib, + DevicePath, + SctPoolPrint (L"%s\\Report\\PlatformConfig%03d.ini",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"|================= Configuration Environment =================|", + L"<|Unavailable (Fail) item have :", + SctPoolPrint (L": \"%02d\" --", 0x00) + ); + ConfigINI->SetString ( + ConfigINI, + L"|================= Configuration Environment =================|", + L"<|If fail item is not 0, it mean platform config have error ___", + L"|>" + ); + ConfigINI->SetString ( + ConfigINI, + L"|================= Configuration Environment =================|", + L"<|occur or EfiCompliant.ini setting have wrong. ________________", + L"|>" + ); + ConfigINI->SetString ( + ConfigINI, + L"|================= Configuration Environment =================|", + L"<|Please sent this file and EfiCompliant.ini to platform owner .", + L"|>" + ); + ConfigINI->SetString ( + ConfigINI, + L"|================= Configuration Environment =================|", + L"<|==============================================================", + L"|>" + ); + + ConstructionAndAcquisition (NULL, ConfigINI); // // Check the console protocols // @@ -618,6 +727,26 @@ Routine Description: // CloseIniFile (ProfileLib, IniFile); + 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) + ); + // + // Save data + // + if (GEN_CONFIG_INI_FILE_ON == TRUE) { + // + // If have error occor and GenTestINI flag is on, gen the report file. + // + CloseIniFile (ProfileLib, ConfigINI); + } return EFI_SUCCESS; } @@ -835,6 +964,12 @@ CheckConsoleProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"ConsoleDevices")) { + GenTestConfigContent (L"gEfiSimpleTextInProtocolGuid ", ValueA); + GenTestConfigContent (L"gEfiSimpleTextOutProtocolGuid ", ValueB); + GenTestConfigContent (L"gEfiSimpleTextInputExProtocolGuid", ValueC); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -914,6 +1049,13 @@ CheckHiiProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = 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 = EFI_TEST_ASSERTION_WARNING; + } } } @@ -956,6 +1098,10 @@ CheckHiiProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"HiiFontSupport")) { + GenTestConfigContent (L"gEfiHiiFontProtocolGuid", Value[4]); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -1056,6 +1202,12 @@ CheckGraphicalConsoleProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"GraphicalConsoleDevices")) { + GenTestConfigContent (L"gEfiGraphicsOutputProtocolGuid", ValueA); + GenTestConfigContent (L"gEfiEdidDiscoveredProtocolGuid", ValueB); + GenTestConfigContent (L"gEfiEdidActiveProtocolGuid ", ValueC); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -1127,6 +1279,10 @@ CheckPointerProtocol ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"PointerDevices")) { + GenTestConfigContent (L"gEfiSimplePointerProtocolGuid", ValueA); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -1241,6 +1397,13 @@ CheckBootFromDiskProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = 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 = EFI_TEST_ASSERTION_WARNING; + } } } @@ -1384,6 +1547,13 @@ CheckBootFromNetworkProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = 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 = EFI_TEST_ASSERTION_WARNING; + } } } @@ -1423,6 +1593,10 @@ CheckBootFromNetworkProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"ValidateBootImageThruNet")) { + GenTestConfigContent (L"Variable \"SetupMode\"", ValueC); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -1514,6 +1688,16 @@ CheckUefiNetworkApplication ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (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]); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } StandardLib->RecordAssertion ( StandardLib, @@ -1616,6 +1800,22 @@ CheckUefiNetworkApplication ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (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]); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -1714,6 +1914,14 @@ CheckUefiV6NetworkApplication ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (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]); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } StandardLib->RecordAssertion ( StandardLib, @@ -1810,6 +2018,18 @@ CheckUefiV6NetworkApplication ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (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]); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -1867,6 +2087,10 @@ CheckUefiV6NetworkApplication ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"VlanSupport")) { + GenTestConfigContent (L"gEfiVlanConfigProtocolGuid", Value[9]); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -1940,6 +2164,10 @@ CheckUartProtocol ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"UartDevices")) { + GenTestConfigContent (L"gEfiSerialIoProtocolGuid", ValueA); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -2025,6 +2253,11 @@ CheckPciProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"PciBusSupport")) { + GenTestConfigContent (L"gEfiPciRootBridgeIoProtocolGuid", ValueA); + GenTestConfigContent (L"gEfiPciIoProtocolGuid ", ValueB); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -2110,6 +2343,11 @@ CheckUsbProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"UsbBusSupport")) { + GenTestConfigContent (L"gEfiUsb2HcProtocolGuid", ValueA); + GenTestConfigContent (L"gEfiUsbIoProtocolGuid ", ValueB); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -2180,6 +2418,10 @@ CheckNVMeProtocol ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"NVMExpressPassThru")) { + GenTestConfigContent (L"gEfiNvmExpressPassThruProtocolGuid", ValueA); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -2264,6 +2506,10 @@ CheckBootFromNVMe ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"BootFromNVMe")) { + GenTestConfigContent (L"gEfiBlockIoProtocolGuid", ValueB); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -2301,6 +2547,10 @@ CheckBootFromNVMe ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"NVMExpressPassThru")) { + GenTestConfigContent (L"gEfiNvmExpressPassThruProtocolGuid", ValueA); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -2374,6 +2624,10 @@ CheckScsiProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"ExtScsiPassThru")) { + GenTestConfigContent (L"gEfiExtScsiPassThruProtocolGuid", ValueA); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -2473,6 +2727,11 @@ CheckBootFromScsi ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"BootFromScsi")) { + GenTestConfigContent (L"gEfiBlockIoProtocolGuid", ValueB); + GenTestConfigContent (L"gEfiScsiIoProtocolGuid ", ValueC); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -2511,6 +2770,10 @@ CheckBootFromScsi ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"ExtScsiPassThruSupport")) { + GenTestConfigContent (L"gEfiExtScsiPassThruProtocolGuid", ValueA); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -2597,6 +2860,11 @@ CheckBootFromIScsi ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"BootFromIscsi")) { + GenTestConfigContent (L"gEfiIScsiInitiatorNameProtocolGuid", ValueA); + GenTestConfigContent (L"gEfiAuthenticationInfoProtocolGuid", ValueB); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -2685,6 +2953,11 @@ CheckDebugProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"DebugSupport")) { + GenTestConfigContent (L"gEfiDebugSupportProtocolGuid", ValueA); + GenTestConfigContent (L"gEfiDebugPortProtocolGuid ", ValueB); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -2755,6 +3028,10 @@ CheckDriverOverrideProtocol ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"PlatformDriverOverride")) { + GenTestConfigContent (L"gEfiPlatformDriverOverrideProtocolGuid", ValueA); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -2824,6 +3101,10 @@ CheckATAProtocol ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"AtaPassThru")) { + GenTestConfigContent (L"gEfiAtaPassThruProtocolGuid", ValueA); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -2896,6 +3177,13 @@ CheckEbcProtocol ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (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); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -2993,6 +3281,10 @@ CheckDNS4Protocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"DNS4Support")) { + GenTestConfigContent (L"gEfiDns4ServiceBindingProtocolGuid", ValueA); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } StandardLib->RecordAssertion ( StandardLib, @@ -3051,6 +3343,11 @@ CheckDNS4Protocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"DNS4Support")) { + GenTestConfigContent (L"gEfiDns4ServiceBindingProtocolGuid", ValueA); + GenTestConfigContent (L"gEfiDns4ProtocolGuid ", ValueB); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -3121,6 +3418,10 @@ CheckDNS6Protocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"DNS6Support")) { + GenTestConfigContent (L"gEfiDns6ServiceBindingProtocolGuid", ValueA); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } StandardLib->RecordAssertion ( StandardLib, @@ -3179,6 +3480,11 @@ CheckDNS6Protocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"DNS6Support")) { + GenTestConfigContent (L"gEfiDns6ServiceBindingProtocolGuid", ValueA); + GenTestConfigContent (L"gEfiDns6ProtocolGuid ", ValueB); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -3261,6 +3567,11 @@ CheckTLSProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"TLSSupport")) { + GenTestConfigContent (L"gEfiTlsServiceBindingProtocolGuid", ValueA); + GenTestConfigContent (L"gEfiTlsConfigurationProtocolGuid ", ValueB); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } StandardLib->RecordAssertion ( StandardLib, @@ -3320,6 +3631,12 @@ CheckTLSProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"TLSSupport")) { + GenTestConfigContent (L"gEfiTlsServiceBindingProtocolGuid", ValueA); + GenTestConfigContent (L"gEfiTlsConfigurationProtocolGuid ", ValueB); + GenTestConfigContent (L"gEfiTlsProtocolGuid ", ValueC); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -3404,6 +3721,11 @@ CheckHTTPProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"HTTPSupport")) { + GenTestConfigContent (L"gEfiHttpServiceBindingProtocolGuid", ValueA); + GenTestConfigContent (L"gEfiHttpUtilitiesProtocolGuid ", ValueB); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } StandardLib->RecordAssertion ( StandardLib, @@ -3463,6 +3785,12 @@ CheckHTTPProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"HTTPSupport")) { + GenTestConfigContent (L"gEfiHttpServiceBindingProtocolGuid", ValueA); + GenTestConfigContent (L"gEfiHttpUtilitiesProtocolGuid ", ValueB); + GenTestConfigContent (L"gEfiHttpProtocolGuid ", ValueC); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -3553,6 +3881,12 @@ CheckEAPProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"EAPSupport")) { + GenTestConfigContent (L"gEfiEapProtocolGuid ", ValueA); + GenTestConfigContent (L"gEfiEapConfigProtocolGuid ", ValueB); + GenTestConfigContent (L"gEfiEapManagement2ProtocolGuid", ValueC); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -3649,6 +3983,12 @@ CheckBlueToothClassicProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"BlueToothClassicSupport")) { + GenTestConfigContent (L"gEfiBlueToothHcProtocolGuid ", ValueA); + GenTestConfigContent (L"gEfiBlueToothServiceBindingProtocolGuid", ValueB); + GenTestConfigContent (L"gEfiBlueToothConfigProtocolGuid ", ValueC); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } // @@ -3714,6 +4054,13 @@ CheckBlueToothClassicProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = 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 = EFI_TEST_ASSERTION_WARNING; + } } } @@ -3807,6 +4154,12 @@ CheckBlueToothLEProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"BlueToothLESupport")) { + GenTestConfigContent (L"gEfiBlueToothHcProtocolGuid ", ValueA); + GenTestConfigContent (L"gEfiBlueToothAttributeProtocolGuid", ValueB); + GenTestConfigContent (L"gEfiBlueToothLEConfigProtocolGuid ", ValueC); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -3897,6 +4250,11 @@ CheckIPSecProtocols ( ); if (!EFI_ERROR (Status) && (SctStriCmp (String, L"yes") == 0)) { AssertionType = EFI_TEST_ASSERTION_FAILED; + if (!GenTestConfigTitle (L"IPSecSupport")) { + GenTestConfigContent (L"gEfiIPSecConfigProtocolGuid", ValueA); + GenTestConfigContent (L"gEfiIPSec2ProtocolGuid ", ValueB); + AssertionType = EFI_TEST_ASSERTION_WARNING; + } } } @@ -3915,5 +4273,85 @@ CheckIPSecProtocols ( ValueB ? L"Yes" : L"No" ); + 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 CHAR16 *TestItemString +){ + CONFIG_ERROR_DATA *ErrorData; + + 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 (GEN_CONFIG_INI_FILE_ON) ? EFI_SUCCESS : EFI_UNSUPPORTED; +} + +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": In use !": L": Not available !" + ); + return EFI_SUCCESS; } \ No newline at end of file -- 2.16.2.windows.1