From e551979790e38469dfc29100e2d2dd64f3bcff38 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Wed, 13 Mar 2019 17:49:29 +0100 Subject: [PATCH] test/py: mmc: Add 'mmc read' performance check Add option to the mmc rd test to check the duration of the execution of the mmc read command. This allows intercepting read performance regressions. Signed-off-by: Marek Vasut Cc: Tom Rini Cc: Simon Glass Reviewed-by: Simon Glass --- test/py/tests/test_mmc_rd.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/py/tests/test_mmc_rd.py b/test/py/tests/test_mmc_rd.py index aba512adfe..2dc715bb51 100644 --- a/test/py/tests/test_mmc_rd.py +++ b/test/py/tests/test_mmc_rd.py @@ -6,6 +6,7 @@ # read if the test configuration contains a CRC of the expected data. import pytest +import time import u_boot_utils """ @@ -187,6 +188,7 @@ def test_mmc_rd(u_boot_console, env__mmc_rd_config): sector = env__mmc_rd_config.get('sector', 0) count_sectors = env__mmc_rd_config.get('count', 1) expected_crc32 = env__mmc_rd_config.get('crc32', None) + read_duration_max = env__mmc_rd_config.get('read_duration_max', 0) count_bytes = count_sectors * 512 bcfg = u_boot_console.config.buildconfig @@ -213,7 +215,9 @@ def test_mmc_rd(u_boot_console, env__mmc_rd_config): # Read data cmd = 'mmc read %s %x %x' % (addr, sector, count_sectors) + tstart = time.time() response = u_boot_console.run_command(cmd) + tend = time.time() good_response = 'MMC read: dev # %d, block # %d, count %d ... %d blocks read: OK' % ( devid, sector, count_sectors, count_sectors) assert good_response in response @@ -226,3 +230,10 @@ def test_mmc_rd(u_boot_console, env__mmc_rd_config): assert expected_crc32 in response else: u_boot_console.log.warning('CONFIG_CMD_CRC32 != y: Skipping check') + + # Check if the command did not take too long + if read_duration_max: + elapsed = tend - tstart + u_boot_console.log.info('Reading %d bytes took %f seconds' % + (count_bytes, elapsed)) + assert elapsed <= (read_duration_max - 0.01) -- 2.39.5