Hi Avrin, > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Eric Jin > Sent: Monday, September 9, 2019 3:23 PM > To: EDK II Development <devel@edk2.groups.io> > Cc: Supreeth Venkatesh <supreeth.venkat...@arm.com>; Jin, Eric > <eric....@intel.com> > Subject: [edk2-devel] [edk2-test] [PATCH 1/1] uefi-sct/SctPkg: Auto gen > result of "EFICompliantTest". > > Add prefix in subject. > > Cc: Supreeth Venkatesh <supreeth.venkat...@arm.com> > > -----Original Message----- > From: Chen, ArvinX > Sent: Monday, September 9, 2019 2:29 PM > To: devel@edk2.groups.io > Cc: Jin, Eric <eric....@intel.com>; Chen, ArvinX <arvinx.c...@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\PlatformConfigXXX.ini each > time tester execute this test will creat a new one until 255. > > Cc: Eric Jin <eric....@intel.com> > Cc: ArvinX Chen <arvinx.c...@intel.com> > Signed-off-by: ArvinX Chen <arvinx.c...@intel.com> > --- > .../BlackBoxTest/EfiCompliantBBTestPlatform_uefi.c | 438 > +++++++++++++++++++++ > 1 file changed, 438 insertions(+) > > diff --git > 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 > 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/Ef > +++ iCompliantBBTestPlatform_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; Index<MAX_SIZE; Index++) { > + Status = OpenIniFile ( > + ProfileLib, > + L"Report", > + SctPoolPrint (L"PlatformConfig%03d.ini", Index), > + &ConfigINI > + ); > + if (ConfigINI != NULL) { > + // > + // If file exise, Creat a new one. > + // > + CloseIniFile (ProfileLib, ConfigINI); > + continue; > + } > + break; > + } > + Status = ProfileLib->EfiIniCreate ( > + ProfileLib, > + DevicePath, > + SctPoolPrint > (L"%s\\Report\\PlatformConfig%03d.ini",FilePath, > Index), > + &ConfigINI > + );
It create the new PlatformConfig.ini file with 255 files limitation How about always delete the old and create the new? > + 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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > 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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > 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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > 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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > 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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > 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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > 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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > > // > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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; AssertionType should not be changed > + } > } > } > > @@ -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 !" In use and Not available may cause confusion. Suggest to "exist in system" or "not exist in system" > + ); > + > return EFI_SUCCESS; > } > \ No newline at end of file > -- Please make sure CRLF at the end of line. Best Regards Eric > 2.16.2.windows.1 > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#48083): https://edk2.groups.io/g/devel/message/48083 Mute This Topic: https://groups.io/mt/34077242/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-