From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heinrich Schuchardt Date: Wed, 11 Dec 2019 17:59:05 +0100 Subject: [PATCH 2/2] configs: sandbox: enable CONFIG_CMD_BOOTEFI_SELFTEST In-Reply-To: References: <20191109083902.27903-1-xypron.glpk@gmx.de> <20191109083902.27903-3-xypron.glpk@gmx.de> <9e305329-74dc-1406-5136-75be65466cc7@gmx.de> Message-ID: <0500b44c-bca1-bc75-6e0b-f1e655a4e48a@gmx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 12/11/19 4:43 PM, Simon Glass wrote: > Hi Heinrich, > > On Tue, 10 Dec 2019 at 11:17, Heinrich Schuchardt wrote: >> >> On 12/10/19 1:58 PM, Simon Glass wrote: >>> Hi Heinrich, >>> >>> On Sat, 9 Nov 2019 at 01:44, Heinrich Schuchardt wrote: >>>> >>>> Activate UEFI unit tests on the sandbox. >>>> >>>> Signed-off-by: Heinrich Schuchardt >>>> --- >>>> configs/sandbox64_defconfig | 1 + >>>> configs/sandbox_defconfig | 1 + >>>> configs/sandbox_flattree_defconfig | 1 + >>>> configs/sandbox_spl_defconfig | 1 + >>>> 4 files changed, 4 insertions(+) >>> >>> Unfortunately this slows down the testing too much, nearly doubling >>> the time in my tests. >>> >>> I think the EFI console tests need to be modified to run in C instead >>> of all the drain_console() and p.timeout stuff. We need an effort to >>> speed up the tests, but certainly cannot make them any slower. >> >> Hello Simon, >> >> thanks for pointing at the excessive timeout. >> >> In test_efi_selftest_text_input() and test_efi_selftest_text_input_ex() >> we call drain_console() a lot indeed. >> >> I am using the Python tests on real hardware. The text input and output >> on the test systems uses the serial console. Whether you use C or Python >> code to feed the serial adapter will not change the time needed to drain >> the console. >> >> We expect less then 50 characters of output per test step. At 9600 baud >> draining 50 characters would require 52 ms. >> >> So I would suggest that we add a parameter timeout to drain_console() >> which defaults to 1000 ms as currently. But in the test we can set it to >> 50 ms. p.timeout could be changed likewise. >> >> What are your thoughts? > > I think you might be missing my point. > > I think as a matter of policy we should require that test run mostly > on the device, with just the results being output. By using C I mean > to write the test in C instead of Python - just do the same steps. > E.g. do a lot of run_command() calls and check the results. This > should be much faster. > The current test checks if Unicode signs sent over the physical serial interface are correctly interpreted in U-Boot. One reason for failure could be that the UART driver uses bit 7 as a parity bit. U-Boot's internal function run_command() cannot send electrical signals inbound to the device's UART. You may implement an additional test with a different scope. But that should not replace the current test. Best regards Heinrich