mirror of
https://github.com/systemd/systemd.git
synced 2024-12-21 13:34:21 +03:00
test: Implement TEST_PREFER_QEMU and use it in one of the mkosi jobs
We want to make sure the integration tests that don't require qemu can run successfully both in an nspawn container and in a qemu VM. So let's add one more knob TEST_PREFER_QEMU=1 to run jobs that normally require nspawn in qemu instead. Running these tests in qemu is also possible by not running as root but that's very implicit so we add an explicit knob instead to make it explicit that we want to run these in qemu instead of nspawn.
This commit is contained in:
parent
82d00f0cc6
commit
e022e73e3f
10
.github/workflows/mkosi.yml
vendored
10
.github/workflows/mkosi.yml
vendored
@ -60,48 +60,56 @@ jobs:
|
||||
llvm: 0
|
||||
cflags: "-O2 -D_FORTIFY_SOURCE=3"
|
||||
relabel: no
|
||||
qemu: 1
|
||||
- distro: debian
|
||||
release: testing
|
||||
sanitizers: ""
|
||||
llvm: 0
|
||||
cflags: "-Og"
|
||||
relabel: no
|
||||
qemu: 0
|
||||
- distro: ubuntu
|
||||
release: noble
|
||||
sanitizers: ""
|
||||
llvm: 0
|
||||
cflags: "-Og"
|
||||
relabel: no
|
||||
qemu: 0
|
||||
- distro: fedora
|
||||
release: "41"
|
||||
sanitizers: ""
|
||||
llvm: 0
|
||||
cflags: "-Og"
|
||||
relabel: yes
|
||||
qemu: 0
|
||||
- distro: fedora
|
||||
release: rawhide
|
||||
sanitizers: address,undefined
|
||||
llvm: 1
|
||||
cflags: "-Og"
|
||||
relabel: yes
|
||||
qemu: 0
|
||||
- distro: opensuse
|
||||
release: tumbleweed
|
||||
sanitizers: ""
|
||||
llvm: 0
|
||||
cflags: "-Og"
|
||||
relabel: no
|
||||
qemu: 0
|
||||
- distro: centos
|
||||
release: "9"
|
||||
sanitizers: ""
|
||||
llvm: 0
|
||||
cflags: "-Og"
|
||||
relabel: yes
|
||||
qemu: 0
|
||||
- distro: centos
|
||||
release: "10"
|
||||
sanitizers: ""
|
||||
llvm: 0
|
||||
cflags: "-Og"
|
||||
relabel: yes
|
||||
qemu: 0
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
@ -210,7 +218,7 @@ jobs:
|
||||
run: sudo meson compile -C build mkosi
|
||||
|
||||
- name: Run integration tests
|
||||
run: sudo --preserve-env meson test -C build --no-rebuild --suite integration-tests --print-errorlogs --no-stdsplit --num-processes "$(($(nproc) - 1))"
|
||||
run: sudo --preserve-env env TEST_PREFER_QEMU=${{ matrix.qemu }} meson test -C build --no-rebuild --suite integration-tests --print-errorlogs --no-stdsplit --num-processes "$(($(nproc) - 1))"
|
||||
|
||||
- name: Archive failed test journals
|
||||
uses: actions/upload-artifact@v4
|
||||
|
@ -199,6 +199,8 @@ $ sudo NO_BUILD=1 test/run-integration-tests
|
||||
`TEST_PREFER_NSPAWN=1`: Run all tests that do not require qemu under
|
||||
systemd-nspawn.
|
||||
|
||||
`TEST_PREFER_QEMU=1`: Run all tests under qemu.
|
||||
|
||||
`TEST_NO_KVM=1`: Disable qemu KVM auto-detection (may be necessary when you're
|
||||
trying to run the *vanilla* qemu and have both qemu and qemu-kvm installed)
|
||||
|
||||
|
@ -381,7 +381,7 @@ def main() -> None:
|
||||
),
|
||||
'--credential', f"journal.storage={'persistent' if sys.stderr.isatty() else args.storage}",
|
||||
*(['--runtime-build-sources=no'] if not sys.stderr.isatty() else []),
|
||||
'qemu' if args.vm or os.getuid() != 0 else 'boot',
|
||||
'qemu' if args.vm or os.getuid() != 0 or os.getenv('TEST_PREFER_QEMU', '0') == '1' else 'boot',
|
||||
] # fmt: skip
|
||||
|
||||
result = subprocess.run(cmd)
|
||||
|
Loading…
Reference in New Issue
Block a user