test: Mark tests as skipped if requirements were not satisfied

Instead of not creating the test at all, let's always create test but
simply mark them as skipped as this is more observable than simply not
creating the test at all.
This commit is contained in:
Daan De Meyer
2025-03-27 15:53:28 +01:00
parent c2d2b382b6
commit 29a1e7df64
2 changed files with 9 additions and 4 deletions

View File

@@ -365,6 +365,7 @@ def main() -> None:
parser.add_argument('--coredump-exclude-regex', required=True)
parser.add_argument('--sanitizer-exclude-regex', required=True)
parser.add_argument('--rtc', action=argparse.BooleanOptionalAction)
parser.add_argument('--skip', action=argparse.BooleanOptionalAction)
parser.add_argument('mkosi_args', nargs='*')
args = parser.parse_args()
@@ -386,6 +387,10 @@ def main() -> None:
print(f'TEST_NO_QEMU=1, skipping {args.name}', file=sys.stderr)
exit(77)
if args.skip:
print(f'meson requirements for test {args.name} were not fulfilled, skipping', file=sys.stderr)
exit(77)
for s in os.getenv('TEST_SKIP', '').split():
if s in args.name:
print(f'Skipping {args.name} due to TEST_SKIP', file=sys.stderr)

View File

@@ -125,6 +125,10 @@ foreach integration_test : integration_tests
integration_test_args += ['--rtc']
endif
if not integration_test['enabled']
integration_test_args += ['--skip']
endif
if not mkosi.found()
continue
endif
@@ -153,10 +157,6 @@ foreach integration_test : integration_tests
integration_test_env += {'SYSTEMD_INTEGRATION_TESTS': '1'}
endif
if not integration_test['enabled']
continue
endif
# We don't explicitly depend on the "mkosi" target because that means the image is rebuilt on every
# "ninja -C build". Instead, the mkosi target has to be rebuilt manually before running the
# integration tests with mkosi.