From: Ahmad Fatoum <a.fatoum@barebox.org>
To: barebox@lists.infradead.org
Cc: David Dgien <dgienda125@gmail.com>, Claude <noreply@claude.ai>,
Ahmad Fatoum <a.fatoum@barebox.org>
Subject: [PATCH 11/13] test: conftest: add support for describing FW_CFG environment in YAML
Date: Fri, 16 Jan 2026 17:06:34 +0100 [thread overview]
Message-ID: <20260116160654.3981425-12-a.fatoum@barebox.org> (raw)
In-Reply-To: <20260116160654.3981425-1-a.fatoum@barebox.org>
We can inject new environment files via FW_CFG with pytest --env.
Add support for an env: key that allows manipulating the barebox
environment with only the YAML.
Co-developed-by: Claude <noreply@claude.ai>
Signed-off-by: Ahmad Fatoum <a.fatoum@barebox.org>
---
conftest.py | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/conftest.py b/conftest.py
index ef6ca221a5db..4241ebce7702 100644
--- a/conftest.py
+++ b/conftest.py
@@ -143,6 +143,12 @@ def strategy(request, target, pytestconfig): # noqa: max-complexity=30
except KeyError:
features = []
+ try:
+ main = target.env.config.data["targets"]["main"]
+ yaml_env = main["env"]
+ except KeyError:
+ yaml_env = {}
+
try:
main = target.env.config.data["targets"]["main"]
qemu_bin = main["drivers"]["QEMUDriver"]["qemu_bin"]
@@ -218,6 +224,19 @@ def strategy(request, target, pytestconfig): # noqa: max-complexity=30
else:
pytest.exit("--env unsupported for target\n", 1)
+ for envpath, value in yaml_env.items():
+ if virtio:
+ if value.startswith('@'):
+ source = f"file='{value[1:]}'"
+ else:
+ source = f"string='{value}'"
+
+ strategy.append_qemu_args(
+ '-fw_cfg', f'name=opt/org.barebox.env/{envpath},{source}'
+ )
+ else:
+ pytest.exit("env unsupported for target\n", 1)
+
if len(pytestconfig.option.bootarg) > 0:
strategy.append_qemu_bootargs(pytestconfig.option.bootarg)
--
2.47.3
next prev parent reply other threads:[~2026-01-16 16:07 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-16 16:06 [PATCH 00/13] ARM32: modules: fix bitrot and add test Ahmad Fatoum
2026-01-16 16:06 ` [PATCH 01/13] kbuild: fold rmdirs into rmfiles Ahmad Fatoum
2026-01-16 16:06 ` [PATCH 02/13] boards: qemu-virt: reserve BIOS device tree Ahmad Fatoum
2026-01-16 16:06 ` [PATCH 03/13] ARM: qemu-virt: add image for use as -bios Ahmad Fatoum
2026-01-16 16:06 ` [PATCH 04/13] kbuild: build *.mod.c with -std=gnu11 Ahmad Fatoum
2026-01-16 16:06 ` [PATCH 05/13] ARM32: mark modules as incompatible with ARM_MMU_PERMISSIONS Ahmad Fatoum
2026-01-16 16:06 ` [PATCH 06/13] treewide: fix some missing EXPORT_SYMBOL Ahmad Fatoum
2026-01-16 16:06 ` [PATCH 07/13] pci: ecam: enable build as module Ahmad Fatoum
2026-01-16 16:06 ` [PATCH 08/13] kbuild: add support for installing and stripping modules Ahmad Fatoum
2026-01-16 16:06 ` [PATCH 09/13] ARM32: module: handle more relocations Ahmad Fatoum
2026-01-16 16:06 ` [PATCH 10/13] commands: pm_domain: make command tristate Ahmad Fatoum
2026-01-16 16:06 ` Ahmad Fatoum [this message]
2026-01-16 16:06 ` [PATCH 12/13] defaultenv: add barebox_modules_env target Ahmad Fatoum
2026-01-16 16:06 ` [PATCH 13/13] test: arm: add simple driver/command module test Ahmad Fatoum
2026-01-19 7:28 ` [PATCH 00/13] ARM32: modules: fix bitrot and add test Sascha Hauer
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=20260116160654.3981425-12-a.fatoum@barebox.org \
--to=a.fatoum@barebox.org \
--cc=barebox@lists.infradead.org \
--cc=dgienda125@gmail.com \
--cc=noreply@claude.ai \
/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