summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2022-10-11 17:35:42 -0400
committerTom Rini <[email protected]>2022-10-11 17:35:42 -0400
commit8db1fa5a0da78c1a9a16882f2e49beac3ccf5308 (patch)
tree917986046cbdb4c39576bb1d733a33523fe44ca8 /test
parent300077cf8cfe6875f3f0a919ec1d0dd32c42b178 (diff)
parentc68e73b65fb9101e3234586db29c3a04e9b37534 (diff)
Merge branch '2022-10-11-assorted-fixes-and-updates'
- Assorted code cleanups and fixes, along with two new commands.
Diffstat (limited to 'test')
-rw-r--r--test/cmd/Makefile1
-rw-r--r--test/cmd/temperature.c39
-rw-r--r--test/py/tests/test_cat/conftest.py35
-rw-r--r--test/py/tests/test_cat/test_cat.py20
-rw-r--r--test/py/tests/test_xxd/conftest.py35
-rw-r--r--test/py/tests/test_xxd/test_xxd.py23
6 files changed, 153 insertions, 0 deletions
diff --git a/test/cmd/Makefile b/test/cmd/Makefile
index 1bb02d93a23..b7b9bd43f6b 100644
--- a/test/cmd/Makefile
+++ b/test/cmd/Makefile
@@ -16,3 +16,4 @@ obj-$(CONFIG_CMD_MEM_SEARCH) += mem_search.o
obj-$(CONFIG_CMD_PINMUX) += pinmux.o
obj-$(CONFIG_CMD_PWM) += pwm.o
obj-$(CONFIG_CMD_SETEXPR) += setexpr.o
+obj-$(CONFIG_CMD_TEMPERATURE) += temperature.o
diff --git a/test/cmd/temperature.c b/test/cmd/temperature.c
new file mode 100644
index 00000000000..2a1ea0611dc
--- /dev/null
+++ b/test/cmd/temperature.c
@@ -0,0 +1,39 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Executes tests for temperature command
+ *
+ * Copyright (C) 2022 Sartura Ltd.
+ */
+
+#include <common.h>
+#include <command.h>
+#include <dm.h>
+#include <dm/test.h>
+#include <test/test.h>
+#include <test/ut.h>
+
+static int dm_test_cmd_temperature(struct unit_test_state *uts)
+{
+ struct udevice *dev;
+
+ ut_assertok(uclass_get_device(UCLASS_THERMAL, 0, &dev));
+ ut_assertnonnull(dev);
+
+ ut_assertok(console_record_reset_enable());
+
+ /* Test that "temperature list" shows the sandbox device */
+ ut_assertok(run_command("temperature list", 0));
+ ut_assert_nextline("| Device | Driver | Parent");
+ ut_assert_nextline("| thermal | thermal-sandbox | root_driver");
+ ut_assert_console_end();
+
+ /* Test that "temperature get thermal" returns expected value */
+ console_record_reset();
+ ut_assertok(run_command("temperature get thermal", 0));
+ ut_assert_nextline("thermal: 100 C");
+ ut_assert_console_end();
+
+ return 0;
+}
+
+DM_TEST(dm_test_cmd_temperature, UT_TESTF_SCAN_FDT | UT_TESTF_CONSOLE_REC);
diff --git a/test/py/tests/test_cat/conftest.py b/test/py/tests/test_cat/conftest.py
new file mode 100644
index 00000000000..058fe523521
--- /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
+
[email protected](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 00000000000..132527bd4c2
--- /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
+
+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
diff --git a/test/py/tests/test_xxd/conftest.py b/test/py/tests/test_xxd/conftest.py
new file mode 100644
index 00000000000..59285aadf40
--- /dev/null
+++ b/test/py/tests/test_xxd/conftest.py
@@ -0,0 +1,35 @@
+# SPDX-License-Identifier: GPL-2.0+
+
+"""Fixture for xxd command test
+"""
+
+import os
+import shutil
+from subprocess import check_call, CalledProcessError
+import pytest
+
[email protected](scope='session')
+def xxd_data(u_boot_config):
+ """Set up a file system to be used in xxd tests
+
+ Args:
+ u_boot_config -- U-boot configuration.
+ """
+ mnt_point = u_boot_config.persistent_data_dir + '/test_xxd'
+ image_path = u_boot_config.persistent_data_dir + '/xxd.img'
+
+ try:
+ os.mkdir(mnt_point, mode = 0o755)
+
+ with open(mnt_point + '/hello', 'w', encoding = 'ascii') as file:
+ file.write('hello world\n\x00\x01\x02\x03\x04\x05')
+
+ 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_xxd/test_xxd.py b/test/py/tests/test_xxd/test_xxd.py
new file mode 100644
index 00000000000..06b9cfc0003
--- /dev/null
+++ b/test/py/tests/test_xxd/test_xxd.py
@@ -0,0 +1,23 @@
+# SPDX-License-Identifier: GPL-2.0+
+
+""" Unit test for xxd command
+"""
+
+import pytest
+
+def test_xxd(u_boot_console, xxd_data):
+ """ Unit test for xxd
+
+ Args:
+ u_boot_console -- U-Boot console
+ xxd_data -- Path to the disk image used for testing.
+ """
+ response = u_boot_console.run_command_list([
+ f'host bind 0 {xxd_data}',
+ 'xxd host 0 hello'])
+
+ assert '00000000: 68 65 6c 6c 6f 20 77 6f 72 6c 64 0a 00 01 02 03 hello world.....\r\r\n' + \
+ '00000010: 04 05 ..' \
+ in response