From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by mx.groups.io with SMTP id smtpd.web11.10950.1596290073102723995 for ; Sat, 01 Aug 2020 06:54:33 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmx.net header.s=badeba3b8450 header.b=YQcKeLm3; spf=pass (domain: gmx.de, ip: 212.227.17.20, mailfrom: xypron.glpk@gmx.de) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1596290066; bh=HMnC8Et0NJlM4LbDmAW16RAKr6Bdtal3fNY80sbomkE=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=YQcKeLm3DhSaCnIjNlWfTNIiWL17sTA6c27Uk7AP3NN/4FMyq1FQyFGAJfjfy8wmd iYWuAZxv2YpIy5o0nD9zkJTO1LEIN/aaZUsdPbbyWWMDzYsJ2UuWLRRUl/1kr7/Mu8 QJzKA2hWhzlWpSdeASltsoiX9Bw3j9Ud2bzssaaM= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.123.51] ([178.202.41.107]) by mail.gmx.com (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MfYLQ-1khnQI0OkK-00g0le; Sat, 01 Aug 2020 15:54:26 +0200 Subject: Re: [PATCH] Check return status on calls to GetTime() To: Grant Likely , devel@edk2.groups.io Cc: nd@arm.com, G Edhaya Chandran , Samer El-Haj-Mahmoud , Eric Jin References: <20200731171949.15748-1-grant.likely@arm.com> From: "Heinrich Schuchardt" Autocrypt: addr=xypron.glpk@gmx.de; prefer-encrypt=mutual; keydata= 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 Eg== Message-ID: <117e027c-3389-1b0c-4fb3-33418bf7976f@gmx.de> Date: Sat, 1 Aug 2020 15:54:20 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20200731171949.15748-1-grant.likely@arm.com> X-Provags-ID: V03:K1:CYso5j7aE3jqmT9ztaEy2Cuy+bSyqAGP7N9yUzNfxFwmVJJ4fcw 0TiTx2HSo4Jn+SKbJ3lJSdqG2QQuf1b12GsYfZ9W0jb8tzICZHufFYBwMTr40clLMSfkRu4 yg2m47FX9R/FtPJhPOdbwlhJRvaUYL9ZsUzu/2nSe3cftm4zgP+ujVn6FTZ8U5UmPbHmN7e +pz49cuxgf1I0YDDHb01A== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:tYN1UODI04Q=:gmAwaHCjcjqbLW7EjVof8w jAwZ3novV+zX+LJr3QgNKSrddrrARg6qPOe5qyGc7E4PSmHE9FrR++PR/HqQ36KCYdD80vdsa Q2Bwkl1Ya2NSwwt7Exx7b8DzIGU6fY+xhpvR6dljHNT5ZwNuSlqq18giTWZJNcRB6uqMFJjHB s+Gc01n41IwmNmecEP+5/2jvga1H9IaZ9OY7OPlxcZNefqKiwRNxjDxKCOc/16+gWM+NBF8w6 x4ufmvH24DTPzMuJy/MO7sqXvYXa0ii/L78QoUnQNLudDi7JsWVIRwhU5OBsrHon6Q19fDhUP KZPxQ0sOm75zJeHBCIAjWb7DZPX+WhP4IDBOG6wnH4bIPnZ5zvvEyhP6jsJd06at/lZSmJjOy FblcMof96UUpNKF/KNCkPos+rBk82Tg9BPw6MzX7XzQP7jbwSlioBqCnFBYs2SVdiJTjp5UjS Q+KwfQEv5uczY7RdhwMofDqM22/sgJ/8B1pNKVbVtf4SyOvf3EMoPkSQ253tnBYDnoNNrlrZ3 mHe79rc/RtbsinpcJKR+01beGGt61M7bA0F8rS1KXR8ZPTmyb22ZHuK4k4itXkL4MAYQbX783 6ChC7bLFUL/oAkk0tFRSdTgRDFfP4weSibS7tjoublK7yg7X0o1tFIkAgosUuHiXr+tTuKNDg /626ga9t40/sM9VCXv9ZupWS7gfns7sicSCaQGv1l07ggMQ+CA3ZyxnIuLKb1ApuBmmYK+MxN OeyEZ0RGFrU3Inn50h9wIrVJWQ/Z+fCX20VR8iIKcjF6ROiXn4L4mYDsQMIoeZ8QpPm5QF/kj 9j7xbu3+BrAGTtTLmGd01XbmQMNPXHobmcGHv+rnijJ5orUMVaD3Ek8DZbxrK6TsEbnb2XBMu yU3N659ZsJx0FcZ38CbOqv4QiV+JACK+QQNTsckielZZK7gtrP/PLGHJtGTCPkzCpgucltT17 AumkEgpAwo0J+nVkNj8aceTc8AvMFakyX6Bkbi3NZdsZERsFYeeRPVcA42vTWC5er2xyqfH4A Y/Vq9cG2pW4XiW4xiRsQEn0f35kM39zCyv9MqzK0hcPAyM6+GJl6o4U+yUn41SfRAF7JH2iIe DzV8e7e6kRsP71/k/6EsZ2YOPDKbdp70vinHWU1THvMyx38aHKM2Qmnzms/byiqGl3njSkfea 3TUy707+Wk0o1GTlNg8wlDFbLgbYM3bqlRd5NOWtLNJuXkkcsmGB7qSm778HgbmzGyJSGs8eg el5oCNnR14Ybfx8S8d+VwS88MjpPy0GHJrMuOOw== Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 7/31/20 7:19 PM, Grant Likely wrote: > Not all platforms implement GetTime(), but the SCT just assumes calls to > GetTime will be successful. If GetTime() doesn't return EFI_SUCCESS, > then the EFI_TIME value will be uninitialized data. > > Fix by checking the GetTime() return code. If it doesn't return > EFI_SUCCESS, then use the traditional 1/1/1970 epoch so that the test > report at least looks sane, but it is obvious that we don't have a valid > timestamp. > > Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2870 > > Cc: G Edhaya Chandran > Cc: Heinrich Schuchardt > Cc: Samer El-Haj-Mahmoud > Signed-off-by: Grant Likely > --- > .../SimpleNetwork/SimpleNetworkENTSTestCase.c | 26 +++++++++++++------ > .../MiscBootServicesBBTestFunction.c | 8 ++++-- > .../DriverBindingBBTestFunction.c | 5 +++- > .../SCT/Drivers/StandardTest/StandardTest.c | 11 +++++--- > .../Framework/ENTS/EasDispatcher/Core/Eas.c | 9 +++++-- > .../ENTS/EasDispatcher/Exec/EasCmdDisp.c | 20 +++++++++----- > 6 files changed, 57 insertions(+), 22 deletions(-) > > diff --git a/uefi-sct/SctPkg/TestCase/RIVL/Protocol/SimpleNetwork/Simple= NetworkENTSTestCase.c b/uefi-sct/SctPkg/TestCase/RIVL/Protocol/SimpleNetwo= rk/SimpleNetworkENTSTestCase.c > index 9c8d2a70..5579be7e 100644 > --- a/uefi-sct/SctPkg/TestCase/RIVL/Protocol/SimpleNetwork/SimpleNetwork= ENTSTestCase.c > +++ b/uefi-sct/SctPkg/TestCase/RIVL/Protocol/SimpleNetwork/SimpleNetwork= ENTSTestCase.c > @@ -24,6 +24,8 @@ Abstract: > > #include "SimpleNetworkENTSTestCase.h" > > +static EFI_TIME Epoch =3D { .Year =3D 1970, .Month =3D 1, .Day =3D 1 }; > + > // > // SimpleNetwork.Start > // > @@ -928,7 +930,8 @@ Returns: > Status =3D EFI_SUCCESS; > tBS->Stall (5000); > > - tRT->GetTime (&BeginTime, NULL); > + if (tRT->GetTime (&BeginTime, NULL) !=3D EFI_SUCCESS) > + BeginTime =3D Epoch; > for (Index =3D 0; Index < 1;) { > Status =3D SimpleNetwork->Transmit ( > SimpleNetwork, > @@ -964,7 +967,8 @@ Returns: > } > } > > - tRT->GetTime (&BeginTime, NULL); > + if (tRT->GetTime (&BeginTime, NULL) !=3D EFI_SUCCESS) > + BeginTime =3D Epoch; > > for (Index =3D 1; Index < TransmitPattern1Number;) { > Status =3D SimpleNetwork->Transmit ( > @@ -1002,7 +1006,8 @@ Returns: > } > > End: > - tRT->GetTime (&EndTime, NULL); > + if (tRT->GetTime (&EndTime, NULL) !=3D EFI_SUCCESS) > + EndTime =3D Epoch; > > *TransmitPattern1Status =3D Status; > > @@ -1125,7 +1130,8 @@ Returns: > Status =3D EFI_SUCCESS; > tBS->Stall (5000); > > - tRT->GetTime (&BeginTime, NULL); > + if (tRT->GetTime (&BeginTime, NULL) !=3D EFI_SUCCESS) > + BeginTime =3D Epoch; > for (Index =3D 0; Index < 1;) { > Status =3D SimpleNetwork->Transmit ( > SimpleNetwork, > @@ -1161,7 +1167,8 @@ Returns: > } > } > > - tRT->GetTime (&BeginTime, NULL); > + if (tRT->GetTime (&BeginTime, NULL) !=3D EFI_SUCCESS) > + BeginTime =3D Epoch; > > for (Index =3D 1; Index < TransmitPattern2Number;) { > Status =3D SimpleNetwork->Transmit ( > @@ -1199,7 +1206,8 @@ Returns: > } > > End: > - tRT->GetTime (&EndTime, NULL); > + if (tRT->GetTime (&EndTime, NULL) !=3D EFI_SUCCESS) > + EndTime =3D Epoch; > > *TransmitPattern1Status =3D Status; > > @@ -1326,7 +1334,8 @@ Returns: > } > } > > - tRT->GetTime (&BeginTime, NULL); > + if (tRT->GetTime (&BeginTime, NULL) !=3D EFI_SUCCESS) > + BeginTime =3D Epoch; > > for (Index =3D 1; Index < ReceivePattern1Number;) { > *ReceivePattern1BufferSize =3D BufferSizeOrg; > @@ -1346,7 +1355,8 @@ Returns: > } > } > > - tRT->GetTime (&EndTime, NULL); > + if (tRT->GetTime (&EndTime, NULL) !=3D EFI_SUCCESS) > + EndTime =3D Epoch; > > *ReceivePattern1Status =3D Status; > > diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/MiscBootServ= ices/BlackBoxTest/MiscBootServicesBBTestFunction.c b/uefi-sct/SctPkg/TestC= ase/UEFI/EFI/BootServices/MiscBootServices/BlackBoxTest/MiscBootServicesBB= TestFunction.c > index 1d231d8c..3a530282 100644 > --- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/MiscBootServices/Bl= ackBoxTest/MiscBootServicesBBTestFunction.c > +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/MiscBootServices/Bl= ackBoxTest/MiscBootServicesBBTestFunction.c > @@ -27,6 +27,8 @@ Abstract: > #include "SctLib.h" I tried to apply your patch with 'git am --keep-cr'. This chunk has a problem. While all other lines in the file have CR LF line endings this very line has only LF in EDK2 master. But your patch has CR LF for the line. Did you use Windows and not Linux to create the patch? I could apply your patch after removing the extraneous CR. With your patch applied if GetTime() returns EFI_UNSUPPORTED, the test log is not garbled anymore: SetVariable_Conf: Test Finished: 01/01/70 12:00a Elapsed Time: 00 Days 00:00:00 If GetTime() is available: SetVariable_Conf: Test Finished: 08/01/20 01:52p Elapsed Time: 00 Days 00:00:04 Except for the line-endings: Reviewed-by: Heinrich Schuchardt > #include "MiscBootServicesBBTestMain.h" > > +static EFI_TIME Epoch =3D { .Year =3D 1970, .Month =3D 1, .Day =3D 1 }; > + > /** > * Entrypoint for gtBS->SetWatchdogTimer() Interface Test. > * @param This a pointer of EFI_BB_TEST_PROTOCOL. > @@ -821,13 +823,15 @@ BBTestStallInterfaceTest ( > // > // 4.2.2.1 Stall must succeed. > // > - gtRT->GetTime (&StartTime, NULL); > + if (gtRT->GetTime (&StartTime, NULL) !=3D EFI_SUCCESS) > + StartTime =3D Epoch; > OldTpl =3D gtBS->RaiseTPL (TplArray[Index]); > Status =3D gtBS->Stall ( > 10000000 > ); > gtBS->RestoreTPL (OldTpl); > - gtRT->GetTime (&EndTime, NULL); > + if (gtRT->GetTime (&EndTime, NULL) !=3D EFI_SUCCESS) > + EndTime =3D Epoch; > if (Status =3D=3D EFI_SUCCESS) { > AssertionType =3D EFI_TEST_ASSERTION_PASSED; > } else { > diff --git a/uefi-sct/SctPkg/TestCase/UEFI/IHV/Protocol/DriverBinding/Bl= ackBoxTest/DriverBindingBBTestFunction.c b/uefi-sct/SctPkg/TestCase/UEFI/I= HV/Protocol/DriverBinding/BlackBoxTest/DriverBindingBBTestFunction.c > index bf675feb..4ab52dcd 100644 > --- a/uefi-sct/SctPkg/TestCase/UEFI/IHV/Protocol/DriverBinding/BlackBoxT= est/DriverBindingBBTestFunction.c > +++ b/uefi-sct/SctPkg/TestCase/UEFI/IHV/Protocol/DriverBinding/BlackBoxT= est/DriverBindingBBTestFunction.c > @@ -36,6 +36,8 @@ static const UINTN MonthLengths[2][12] =3D { > { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } > }; > > +static EFI_TIME Epoch =3D { .Year =3D 1970, .Month =3D 1, .Day =3D 1 }; > + > #define MINS_PER_HOUR 60 > #define HOURS_PER_DAY 24 > #define SECS_PER_MIN 60 > @@ -1052,7 +1054,8 @@ EndLogging ( > WriteLogFile (Private, DashLine, SYSTEMLOG); > WriteLogFile (Private, DashLine, CASELOG); > > - gtRT->GetTime (&CurrentTime, NULL); > + if (gtRT->GetTime (&CurrentTime, NULL) !=3D EFI_SUCCESS) > + CurrentTime =3D Epoch; > DBSPrint (Buffer, EFI_MAX_PRINT_BUFFER, L"Test Finished: %t\n", &Curr= entTime); > > WriteLogFile (Private, Buffer, SYSTEMLOG); > diff --git a/uefi-sct/SctPkg/TestInfrastructure/SCT/Drivers/StandardTest= /StandardTest.c b/uefi-sct/SctPkg/TestInfrastructure/SCT/Drivers/StandardT= est/StandardTest.c > index 84025457..836f072a 100644 > --- a/uefi-sct/SctPkg/TestInfrastructure/SCT/Drivers/StandardTest/Standa= rdTest.c > +++ b/uefi-sct/SctPkg/TestInfrastructure/SCT/Drivers/StandardTest/Standa= rdTest.c > @@ -30,6 +30,8 @@ Abstract: > #include "StandardTest.h" > #include > > +static EFI_TIME Epoch =3D { .Year =3D 1970, .Month =3D 1, .Day =3D 1 }; > + > // > // Prototypes > // > @@ -1081,7 +1083,8 @@ Returns: > StslWriteLogFile (Private, Buffer); > > CurrentTime =3D &Private->StartTime; > - tRT->GetTime (CurrentTime, NULL); > + if (tRT->GetTime (CurrentTime, NULL) !=3D EFI_SUCCESS) > + *CurrentTime =3D Epoch; > > } else { > StslWriteLogFile (Private, DashLine); > @@ -1118,7 +1121,8 @@ Returns: > > StslWriteLogFileName (Private); > CurrentTime =3D &Private->StartTime; > - tRT->GetTime (CurrentTime, NULL); > + if (tRT->GetTime (CurrentTime, NULL) !=3D EFI_SUCCESS) > + *CurrentTime =3D Epoch; > SctSPrint (Buffer, EFI_MAX_PRINT_BUFFER, L"Test Started: %t\n", Cur= rentTime); > StslWriteLogFile (Private, Buffer); > > @@ -1238,7 +1242,8 @@ Returns: > > StslWriteLogFileName (Private); > > - tRT->GetTime (&CurrentTime, NULL); > + if (tRT->GetTime (&CurrentTime, NULL) !=3D EFI_SUCCESS) > + CurrentTime =3D Epoch; > > SecondsElapsed =3D SecondsElapsedFromBaseYear ( > Private->StartTime.Year, > diff --git a/uefi-sct/SctPkg/TestInfrastructure/SCT/Framework/ENTS/EasDi= spatcher/Core/Eas.c b/uefi-sct/SctPkg/TestInfrastructure/SCT/Framework/ENT= S/EasDispatcher/Core/Eas.c > index 28f5ed4a..60b1c4dc 100644 > --- a/uefi-sct/SctPkg/TestInfrastructure/SCT/Framework/ENTS/EasDispatche= r/Core/Eas.c > +++ b/uefi-sct/SctPkg/TestInfrastructure/SCT/Framework/ENTS/EasDispatche= r/Core/Eas.c > @@ -23,9 +23,12 @@ Abstract: > --*/ > > > +#include "Sct.h" > #include "Sct.h" > #include EFI_TEST_PROTOCOL_DEFINITION (EntsMonitorProtocol) > > +static EFI_TIME Epoch =3D { .Year =3D 1970, .Month =3D 1, .Day =3D 1 }; > + > STATIC > EFI_STATUS > AgentTestMain ( > @@ -310,7 +313,8 @@ DelaySctAgentCmdPost ( > } > SctAgentCmdDelayedPost->CmdReturn =3D CmdReturn; > SctAgentCmdDelayedPost->Cmd.ComdResult =3D CmdResult; > - tRT->GetTime (&SctAgentCmdDelayedPost->StartTime, NULL); > + if (tRT->GetTime (&SctAgentCmdDelayedPost->StartTime, NULL) !=3D EFI_= SUCCESS) > + SctAgentCmdDelayedPost->StartTime =3D Epoch; > > return Status; > } > @@ -327,7 +331,8 @@ PostSctAgentDelayedCmd ( > return EFI_SUCCESS; > } > > - tRT->GetTime (&SctAgentCmdDelayedPost->EndTime, NULL); > + if (tRT->GetTime (&SctAgentCmdDelayedPost->EndTime, NULL) !=3D EFI_SU= CCESS) > + SctAgentCmdDelayedPost->EndTime =3D Epoch; > > Status =3D RecordMessage ( > &SctAgentCmdDelayedPost->Cmd.ComdRuntimeInfo, > diff --git a/uefi-sct/SctPkg/TestInfrastructure/SCT/Framework/ENTS/EasDi= spatcher/Exec/EasCmdDisp.c b/uefi-sct/SctPkg/TestInfrastructure/SCT/Framew= ork/ENTS/EasDispatcher/Exec/EasCmdDisp.c > index 1ff6d569..cb6f08cf 100644 > --- a/uefi-sct/SctPkg/TestInfrastructure/SCT/Framework/ENTS/EasDispatche= r/Exec/EasCmdDisp.c > +++ b/uefi-sct/SctPkg/TestInfrastructure/SCT/Framework/ENTS/EasDispatche= r/Exec/EasCmdDisp.c > @@ -50,6 +50,8 @@ Abstract: > > EFI_CPU_ARCH_PROTOCOL *Cpu =3D NULL; > > +static EFI_TIME Epoch =3D { .Year =3D 1970, .Month =3D 1, .Day =3D 1 }; > + > // > // Local Function Definition > // > @@ -132,9 +134,11 @@ Returns: > // > // Perform EFTP operation. > // > - tRT->GetTime (&StartTime, NULL); > + if (tRT->GetTime (&StartTime, NULL) !=3D EFI_SUCCESS) > + StartTime =3D Epoch; > Status =3D EftpDispatchFileTransferComd (FileCmdType); > - tRT->GetTime (&EndTime, NULL); > + if (tRT->GetTime (&EndTime, NULL) !=3D EFI_SUCCESS) > + EndTime =3D Epoch; > > if (Status =3D=3D EFI_OUT_OF_RESOURCES) { > return EFI_OUT_OF_RESOURCES; > @@ -365,9 +369,11 @@ Returns: > // > // Execute Shell Command > // > - tRT->GetTime (&StartTime, NULL); > + if (tRT->GetTime (&StartTime, NULL) !=3D EFI_SUCCESS) > + StartTime =3D Epoch; > Status =3D SctShellExecute (&mImageHandle, (gEasFT->Cmd)->ComdArg, FA= LSE, NULL, NULL);; > - tRT->GetTime (&EndTime, NULL); > + if (tRT->GetTime (&EndTime, NULL) !=3D EFI_SUCCESS) > + EndTime =3D Epoch; > EFI_ENTS_DEBUG ((EFI_ENTS_D_TRACE, L"dispatch:(%s)", (gEasFT->Cmd)->C= omdArg)); > SctPrint (L"dispatch:(%s) - %r\n", (gEasFT->Cmd)->ComdArg, Status); > if (Status =3D=3D EFI_OUT_OF_RESOURCES) { > @@ -1483,9 +1489,11 @@ Returns: > // > // Resume SCT execution by executing "sct -c" in sct passive mode. > // > - tRT->GetTime (&StartTime, NULL); > + if (tRT->GetTime (&StartTime, NULL) !=3D EFI_SUCCESS) > + StartTime =3D Epoch; > Status =3D SctShellExecute (&mImageHandle, (gEasFT->Cmd)->ComdArg, FA= LSE, NULL, NULL);; > - tRT->GetTime (&EndTime, NULL); > + if (tRT->GetTime (&EndTime, NULL) !=3D EFI_SUCCESS) > + EndTime =3D Epoch; > EFI_ENTS_DEBUG ((EFI_ENTS_D_TRACE, L"dispatch:(%s)", (gEasFT->Cmd)->C= omdArg)); > SctPrint (L"dispatch:(%s) - %r\n", (gEasFT->Cmd)->ComdArg, Status); > if (Status =3D=3D EFI_OUT_OF_RESOURCES) { >