From: Ahmad Fatoum <a.fatoum@pengutronix.de>
To: barebox@lists.infradead.org
Cc: Ahmad Fatoum <a.fatoum@pengutronix.de>, rcz@pengutronix.de
Subject: [PATCH 12/17] test: add first sample tests
Date: Mon, 12 Apr 2021 09:16:46 +0200 [thread overview]
Message-ID: <20210412071651.8769-13-a.fatoum@pengutronix.de> (raw)
In-Reply-To: <20210412071651.8769-1-a.fatoum@pengutronix.de>
The test can be run manually with e.g.
labgrid-pytest --lg-env test/arm/qemu_virt64_defconfig.yaml test/py
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
test/.gitignore | 1 +
test/__init__.py | 0
test/conftest.py | 21 +++++++++++++++++++++
test/py/__init__.py | 0
test/py/helper.py | 33 +++++++++++++++++++++++++++++++++
test/py/test_shell.py | 16 ++++++++++++++++
6 files changed, 71 insertions(+)
create mode 100644 test/.gitignore
create mode 100644 test/__init__.py
create mode 100644 test/conftest.py
create mode 100644 test/py/__init__.py
create mode 100644 test/py/helper.py
create mode 100644 test/py/test_shell.py
diff --git a/test/.gitignore b/test/.gitignore
new file mode 100644
index 000000000000..bee8a64b79a9
--- /dev/null
+++ b/test/.gitignore
@@ -0,0 +1 @@
+__pycache__
diff --git a/test/__init__.py b/test/__init__.py
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/test/conftest.py b/test/conftest.py
new file mode 100644
index 000000000000..019840d0909d
--- /dev/null
+++ b/test/conftest.py
@@ -0,0 +1,21 @@
+import pytest
+from .py import helper
+
+
+@pytest.fixture(scope='function')
+def barebox(strategy, target):
+ strategy.transition('barebox')
+ return target.get_driver('BareboxDriver')
+
+
+@pytest.fixture(scope='function')
+def shell(strategy, target):
+ strategy.transition('shell')
+ return target.get_driver('ShellDriver')
+
+
+@pytest.fixture(scope="session")
+def barebox_config(strategy, target):
+ strategy.transition('barebox')
+ command = target.get_driver("BareboxDriver")
+ return helper.get_config(command)
diff --git a/test/py/__init__.py b/test/py/__init__.py
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/test/py/helper.py b/test/py/helper.py
new file mode 100644
index 000000000000..f4a110d89a09
--- /dev/null
+++ b/test/py/helper.py
@@ -0,0 +1,33 @@
+from labgrid.driver import BareboxDriver
+import pytest
+
+
+def get_config(command):
+ """Returns the enabled config options of barebox, either from
+ a running instance if supported or by looking into .config
+ in the build directory.
+ Args:
+ command (BareboxDriver): An instance of the BareboxDriver
+ Returns:
+ list: list of the enabled config options
+ """
+ assert isinstance(command, BareboxDriver)
+
+ out, err, returncode = command.run("cat /env/data/config")
+ if returncode != 0:
+ try:
+ with open('.config') as f:
+ out = f.read().splitlines()
+ except OSError:
+ return []
+
+ options = []
+ for line in out:
+ if line and line.startswith("CONFIG_"):
+ options.append(line.split('=')[0])
+ return options
+
+
+def skip_disabled(config, option):
+ if bool(config) and not option in config:
+ pytest.skip("skipping test due to disabled " + option + "=y dependency")
diff --git a/test/py/test_shell.py b/test/py/test_shell.py
new file mode 100644
index 000000000000..13a57061f6db
--- /dev/null
+++ b/test/py/test_shell.py
@@ -0,0 +1,16 @@
+import pytest
+from .helper import *
+
+
+def test_barebox_true(barebox, barebox_config):
+ skip_disabled(barebox_config, "CONFIG_CMD_TRUE")
+
+ _, _, returncode = barebox.run('true')
+ assert returncode == 0
+
+
+def test_barebox_false(barebox, barebox_config):
+ skip_disabled(barebox_config, "CONFIG_CMD_FALSE")
+
+ _, _, returncode = barebox.run('false')
+ assert returncode == 1
--
2.29.2
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2021-04-12 7:18 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-12 7:16 [PATCH 00/17] add barebox in-tree testing infrastructure Ahmad Fatoum
2021-04-12 7:16 ` [PATCH 01/17] kbuild: add install target Ahmad Fatoum
2021-04-12 7:16 ` [PATCH 02/17] kbuild: add ARCH={i386, x86_64} as aliases for x86 Ahmad Fatoum
2021-04-12 7:16 ` [PATCH 03/17] kbuild: add ARCH=um alias for sandbox Ahmad Fatoum
2021-04-12 7:16 ` [PATCH 04/17] MIPS: qemu-malta: generate swapped image as part of multi-image build Ahmad Fatoum
2021-04-12 9:27 ` Jules Maselbas
2021-04-12 9:45 ` Ahmad Fatoum
2021-04-12 7:16 ` [PATCH 05/17] MIPS: qemu-malta: replace board code with syscon-reboot Ahmad Fatoum
2021-04-12 7:16 ` [PATCH 06/17] MIPS: configs: qemu-malta: enable Virt I/O Ahmad Fatoum
2021-04-12 7:16 ` [PATCH 07/17] openrisc: set default KBUILD_IMAGE Ahmad Fatoum
2021-04-12 7:16 ` [PATCH 08/17] Documentation: boards: RISC-V: update TinyEMU support Ahmad Fatoum
2021-04-12 7:16 ` [PATCH 09/17] test: add basic barebox self-test infrastructure Ahmad Fatoum
2021-04-12 10:12 ` Jules Maselbas
2021-04-12 7:16 ` [PATCH 10/17] test: self: port Linux printf kselftest Ahmad Fatoum
2021-04-12 7:16 ` [PATCH 11/17] test: add labgrid configs for some emulated targets Ahmad Fatoum
2021-04-12 7:16 ` Ahmad Fatoum [this message]
2021-04-12 7:16 ` [PATCH 13/17] test: support running labgrid-pytest from out-of-tree build directory Ahmad Fatoum
2021-04-12 7:16 ` [PATCH 14/17] test: add emulate.pl, a runner for barebox on emulated targets Ahmad Fatoum
2021-04-12 7:16 ` [PATCH 15/17] test: self: run selftests as part of the pytest suite Ahmad Fatoum
2021-04-12 7:16 ` [PATCH 16/17] test: add bthread test Ahmad Fatoum
2021-04-12 7:16 ` [PATCH 17/17] [RFC] test: run ./test/emulate.pl in Github action Ahmad Fatoum
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210412071651.8769-13-a.fatoum@pengutronix.de \
--to=a.fatoum@pengutronix.de \
--cc=barebox@lists.infradead.org \
--cc=rcz@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox