summaryrefslogtreecommitdiff
path: root/test/py/tests
diff options
context:
space:
mode:
authorRoger Knecht <rknecht@pm.me>2022-09-03 11:34:53 +0000
committerTom Rini <trini@konsulko.com>2022-10-11 15:40:48 -0400
commit690a1d694899c55c7cc6a168c54984f765ff761e (patch)
tree0d1949060afcdda676a4a8e7bfc89053a391f1a4 /test/py/tests
parent7eda1a95331d1ccd17e5af6fb18bf5577f81a451 (diff)
cmd: cat: add new command
Add cat command to print file content to standard out Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Roger Knecht <rknecht@pm.me>
Diffstat (limited to 'test/py/tests')
-rw-r--r--test/py/tests/test_cat/conftest.py35
-rw-r--r--test/py/tests/test_cat/test_cat.py20
2 files changed, 55 insertions, 0 deletions
diff --git a/test/py/tests/test_cat/conftest.py b/test/py/tests/test_cat/conftest.py
new file mode 100644
index 0000000000..058fe52352
--- /dev/null
+++ b/test/py/tests/test_cat/conftest.py
@@ -0,0 +1,35 @@
+# SPDX-License-Identifier: GPL-2.0+
+
+"""Fixture for cat command test
+"""
+
+import os
+import shutil
+from subprocess import check_call, CalledProcessError
+import pytest
+
+@pytest.fixture(scope='session')
+def cat_data(u_boot_config):
+ """Set up a file system to be used in cat tests
+
+ Args:
+ u_boot_config -- U-boot configuration.
+ """
+ mnt_point = u_boot_config.persistent_data_dir + '/test_cat'
+ image_path = u_boot_config.persistent_data_dir + '/cat.img'
+
+ try:
+ os.mkdir(mnt_point, mode = 0o755)
+
+ with open(mnt_point + '/hello', 'w', encoding = 'ascii') as file:
+ file.write('hello world\n')
+
+ check_call(f'virt-make-fs --partition=gpt --size=+1M --type=vfat {mnt_point} {image_path}',
+ shell=True)
+
+ yield image_path
+ except CalledProcessError:
+ pytest.skip('Setup failed')
+ finally:
+ shutil.rmtree(mnt_point)
+ os.remove(image_path)
diff --git a/test/py/tests/test_cat/test_cat.py b/test/py/tests/test_cat/test_cat.py
new file mode 100644
index 0000000000..132527bd4c
--- /dev/null
+++ b/test/py/tests/test_cat/test_cat.py
@@ -0,0 +1,20 @@
+# SPDX-License-Identifier: GPL-2.0+
+
+""" Unit test for cat command
+"""
+
+import pytest
+
+@pytest.mark.boardspec('sandbox')
+@pytest.mark.buildconfigspec('cmd_cat')
+def test_cat(u_boot_console, cat_data):
+ """ Unit test for cat
+
+ Args:
+ u_boot_console -- U-Boot console
+ cat_data -- Path to the disk image used for testing.
+ """
+ response = u_boot_console.run_command_list([
+ f'host bind 0 {cat_data}',
+ 'cat host 0 hello'])
+ assert 'hello world' in response