[PATCH v2] test/py: sleep: Add a test for the time command

Love Kumar love.kumar at amd.com
Wed Sep 27 07:03:55 CEST 2023


Execute "time <sleep cmd>", and validate that it gives the approximately
the correct amount of command execution time.

Signed-off-by: Love Kumar <love.kumar at amd.com>
---

Changes in v2:
- Used @pytest.mark.buildconfigspec('')
---
 test/py/tests/test_sleep.py | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/test/py/tests/test_sleep.py b/test/py/tests/test_sleep.py
index 392af29db224..66a57434bff7 100644
--- a/test/py/tests/test_sleep.py
+++ b/test/py/tests/test_sleep.py
@@ -41,3 +41,21 @@ def test_sleep(u_boot_console):
     if not u_boot_console.config.gdbserver:
         # margin is hopefully enough to account for any system overhead.
         assert elapsed < (sleep_time + sleep_margin)
+
+ at pytest.mark.buildconfigspec("cmd_misc")
+def test_time(u_boot_console):
+    """Test the time command, and validate that it gives approximately the
+    correct amount of command execution time."""
+
+    sleep_skip = u_boot_console.config.env.get("env__sleep_accurate", True)
+    if not sleep_skip:
+        pytest.skip("sleep is not accurate")
+
+    sleep_time = u_boot_console.config.env.get("env__sleep_time", 10)
+    sleep_margin = u_boot_console.config.env.get("env__sleep_margin", 0.25)
+    output = u_boot_console.run_command("time sleep %d" % sleep_time)
+    execute_time = float(output.split()[1])
+    assert sleep_time >= (execute_time - 0.01)
+    if not u_boot_console.config.gdbserver:
+        # margin is hopefully enough to account for any system overhead.
+        assert sleep_time < (execute_time + sleep_margin)
-- 
2.25.1



More information about the U-Boot mailing list