From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by mx.groups.io with SMTP id smtpd.web12.875.1649381104492219187 for ; Thu, 07 Apr 2022 18:25:05 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=none, err=permanent DNS error (domain: byosoft.com.cn, ip: 58.240.74.242, mailfrom: gaojie@byosoft.com.cn) Received: from DESKTOP6Q83COE ([223.167.21.157]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Fri, 08 Apr 2022 09:24:51 +0800 X-WM-Sender: gaojie@byosoft.com.cn X-Originating-IP: 223.167.21.157 X-WM-AuthFlag: YES X-WM-AuthUser: gaojie@byosoft.com.cn From: "Gao Jie" To: "'Sunny Wang'" , Cc: "'G Edhaya Chandran'" , , "'Samer El-Haj-Mahmoud'" , , , , "'Ruiyu Ni'" References: <40f426fe26ce900c75da32412d51d858fa051b04.1637723578.git.gaojie@byosoft.com.cn> <16D8EF12A218664D.30809@groups.io> In-Reply-To: Subject: =?UTF-8?B?5Zue5aSNOiBbZWRrMi1kZXZlbF0gW1BBVENIXSB1ZWZpLXNjdC9TY3RQa2c6RW5oYW5jZSBCQlRlc3RSZWFkS2V5U3Ryb2tlRXhGdW5jdGlvbkF1dG9UZXN0Q2hlY2twb2ludDEoKQ==?= Date: Fri, 8 Apr 2022 09:24:55 +0800 Message-ID: <000001d84ae7$7435bfd0$5ca13f70$@byosoft.com.cn> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQJ7GC6ByWEgDkNI3Rkm+FieBdNENgJMBN2nAdi3+72rfne88A== Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: quoted-printable Content-Language: zh-cn Hi Sunny, Thanks for clarification. I will update the patch to make test fail when KeyState is not touched. Thanks Barton -----=D3=CA=BC=FE=D4=AD=BC=FE----- =B7=A2=BC=FE=C8=CB: Sunny Wang =20 =B7=A2=CB=CD=CA=B1=BC=E4: 2022=C4=EA4=D4=C27=C8=D5 22:51 =CA=D5=BC=FE=C8=CB: devel@edk2.groups.io; Sunny Wang ; gaojie@byosoft.com.cn =B3=AD=CB=CD: G Edhaya Chandran ; Carolyn.Gjertsen= @amd.com; Samer El-Haj-Mahmoud ; eric.jin@intel.com; arvinx.chen@intel.com; Supreeth.Venkatesh@amd.com; Ruiyu Ni ; Sunny Wang =D6=F7=CC=E2: RE: [edk2-devel] [PATCH] uefi-sct/SctPkg:Enhance BBTestReadKeyStrokeExFunctionAutoTestCheckpoint1() Hi Barton, As our discussion in today's edk2-test bug triage meeting, my second point = " UEFI spec implies that the ReadKeyStrokeEx should clear KeyState (set the value to zero) if there is no key data" is not clear enough. Sorry about that. To be clear, UEFI spec says the following: - UEFI drivers which implement the EFI_SIMPLE_TEXT_INPUT_EX protocol are required to return KeyData.Key and KeyData.KeyState values. These drivers must always return the most current state of KeyData.KeyState.KeyShiftState and KeyData.KeyState.KeyToggleState. However, when user doesn't press any key, there will be no most current state to return. For solving thie problems, @Ruiyu Ni (In Cc) has patch series https://edk2.groups.io/g/devel/message/20311 and commit message below: - Today's implementation only return key state when there is a key.But whe= n user doesn't press any key, the key state cannot be returned.The patch changes the ReadKeyStrokeEx() to always return the key state even there is no key pressed. Therefore, this is just preferred implementation rather than a requirement in spec. Best Regards, Sunny -----Original Message----- From: devel@edk2.groups.io On Behalf Of Sunny Wang via groups.io Sent: 03 March 2022 17:28 To: devel@edk2.groups.io; gaojie@byosoft.com.cn Cc: G Edhaya Chandran ; Carolyn.Gjertsen@amd.com; Samer El-Haj-Mahmoud ; eric.jin@intel.com; arvinx.chen@intel.com; Supreeth.Venkatesh@amd.com; Sunny Wang Subject: Re: [edk2-devel] [PATCH] uefi-sct/SctPkg:Enhance BBTestReadKeyStrokeExFunctionAutoTestCheckpoint1() Sorry for the late review. The change looks fine. However, I'm confused about the comment " Log the error here and return key states are not supported when high order bit of KeyToggleState is 0 or KeyState not touched". It looks like returning EFI_UNSUPPORTED won't log any error/failure in the result log. Did I overlook anything here? Furthermore, it looks like UEFI spec implies that the ReadKeyStrokeEx shoul= d clear KeyState (set the value to zero) if there is no key data. There is also a code change for doing this in edk2. https://edk2.groups.io/g/devel/message/20311 Therefore, if I didn't overlook anything here, we should separately deal with the "(Key.KeyState.KeyShiftState =3D=3D 0xFFFFFFFF) || (Key.KeyState.KeyToggleState =3D=3D 0xFF)" as a failure rather than directl= y returning EFI_UNSUPPORTED. Barton and Edhaya, what do you guys think? Best Regards, Sunny -----Original Message----- From: devel@edk2.groups.io On Behalf Of Gao Jie via groups.io Sent: 24 November 2021 03:16 To: devel@edk2.groups.io Cc: G Edhaya Chandran ; Carolyn.Gjertsen@amd.com; Samer El-Haj-Mahmoud ; eric.jin@intel.com; arvinx.chen@intel.com; Supreeth.Venkatesh@amd.com Subject: [edk2-devel] [PATCH] uefi-sct/SctPkg:Enhance BBTestReadKeyStrokeExFunctionAutoTestCheckpoint1() REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2386 Enhance BBTestReadKeyStrokeExFunctionAutoTestCheckpoint1() to handle ReadKeyStrokeEx implementation which returns EFI_NOT_READY but without touching KeyToggleState. Signed-off-by: Barton Gao --- .../BlackBoxTest/SimpleTextInputExBBTestFunction.c | 11 ++++++++++- .../BlackBoxTest/SimpleTextInputExBBTestFunction.c | 11 ++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/SimpleTextInputEx/BlackBoxTest= / SimpleTextInputExBBTestFunction.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/SimpleTextInputEx/BlackBoxTest= / SimpleTextInputExBBTestFunction.c index 0398bc26..c1669959 100644 --- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/SimpleTextInputEx/BlackBoxTest= / SimpleTextInputExBBTestFunction.c +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/SimpleTextInputEx/BlackBoxTest= / SimpleTextInputExBBTestFunction.c @@ -1160,6 +1160,12 @@ BBTestReadKeyStrokeExFunctionAutoTestCheckpoint1 ( ValidState[5] =3D EFI_TOGGLE_STATE_VALID | EFI_KEY_STATE_EXPOSED | EFI_NUM_LOCK_ACTIVE | EFI_CAPS_LOCK_ACTIVE; ValidState[6] =3D EFI_TOGGLE_STATE_VALID | EFI_KEY_STATE_EXPOSED | EFI_SCROLL_LOCK_ACTIVE |EFI_NUM_LOCK_ACTIVE | EFI_CAPS_LOCK_ACTIVE; + // + // Set all bits to one (invalid values) for both KeyShiftState and KeyToggleState + // + Key.KeyState.KeyShiftState =3D 0xFFFFFFFF; + Key.KeyState.KeyToggleState =3D 0xFF; + // //Read next keystroke from the input device // @@ -1171,7 +1177,10 @@ BBTestReadKeyStrokeExFunctionAutoTestCheckpoint1 ( return Status; } - if ((Key.KeyState.KeyToggleState & EFI_TOGGLE_STATE_VALID) =3D=3D 0) { + if (((Key.KeyState.KeyToggleState & EFI_TOGGLE_STATE_VALID) =3D=3D 0) || (Key.KeyState.KeyShiftState =3D=3D 0xFFFFFFFF) || (Key.KeyState.KeyToggleSt= ate =3D=3D 0xFF)) { + // + // Log the error here and return key states are not supported when hig= h order bit of KeyToggleState is 0 or KeyState not touched + // return EFI_UNSUPPORTED; } diff --git a/uefi-sct/SctPkg/TestCase/UEFI/IHV/Protocol/SimpleTextInputEx/BlackBoxTest= / SimpleTextInputExBBTestFunction.c b/uefi-sct/SctPkg/TestCase/UEFI/IHV/Protocol/SimpleTextInputEx/BlackBoxTest= / SimpleTextInputExBBTestFunction.c index adbf3dcf..e20ed345 100644 --- a/uefi-sct/SctPkg/TestCase/UEFI/IHV/Protocol/SimpleTextInputEx/BlackBoxTest= / SimpleTextInputExBBTestFunction.c +++ b/uefi-sct/SctPkg/TestCase/UEFI/IHV/Protocol/SimpleTextInputEx/BlackBoxTest= / SimpleTextInputExBBTestFunction.c @@ -1160,6 +1160,12 @@ BBTestReadKeyStrokeExFunctionAutoTestCheckpoint1 ( ValidState[5] =3D EFI_TOGGLE_STATE_VALID | EFI_KEY_STATE_EXPOSED | EFI_NUM_LOCK_ACTIVE | EFI_CAPS_LOCK_ACTIVE; ValidState[6] =3D EFI_TOGGLE_STATE_VALID | EFI_KEY_STATE_EXPOSED | EFI_SCROLL_LOCK_ACTIVE |EFI_NUM_LOCK_ACTIVE | EFI_CAPS_LOCK_ACTIVE; + // + // Set all bits to one (invalid values) for both KeyShiftState and KeyToggleState + // + Key.KeyState.KeyShiftState =3D 0xFFFFFFFF; + Key.KeyState.KeyToggleState =3D 0xFF; + // //Read next keystroke from the input device // @@ -1171,7 +1177,10 @@ BBTestReadKeyStrokeExFunctionAutoTestCheckpoint1 ( return Status; } - if ((Key.KeyState.KeyToggleState & EFI_TOGGLE_STATE_VALID) =3D=3D 0) { + if (((Key.KeyState.KeyToggleState & EFI_TOGGLE_STATE_VALID) =3D=3D 0) || (Key.KeyState.KeyShiftState =3D=3D 0xFFFFFFFF) || (Key.KeyState.KeyToggleSt= ate =3D=3D 0xFF)) { + // + // Log the error here and return key states are not supported when hig= h order bit of KeyToggleState is 0 or KeyState not touched + // return EFI_UNSUPPORTED; } -- 2.31.0.windows.1 IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.