test: Add option to save in progress test journals to /tmp

The journal isn't the best at being fast, especially when writing
to disk and not to memory, which can cause integration tests to
grind to a halt on beefy systems due to all the systemd-journal-remote
instances not being able to write journal entries to disk fast enough.

Let's introduce an option to allow writing in progress test journals
to use /tmp which can be used on beefy systems with lots of memory to
speed things up.
This commit is contained in:
Daan De Meyer
2025-01-10 16:13:58 +01:00
parent 7893362508
commit e49fdecd16
2 changed files with 15 additions and 1 deletions
+11 -1
View File
@@ -10,6 +10,7 @@ import json
import os
import re
import shlex
import shutil
import subprocess
import sys
import tempfile
@@ -441,7 +442,11 @@ def main() -> None:
"""
)
journal_file = (args.meson_build_dir / (f'test/journal/{name}.journal')).absolute()
if os.getenv('TEST_JOURNAL_USE_TMP', '0') == '1':
journal_file = Path(f'/tmp/systemd-integration-tests/journal/{name.journal}')
else:
journal_file = (args.meson_build_dir / f'test/journal/{name}.journal').absolute()
journal_file.unlink(missing_ok=True)
if not sys.stderr.isatty():
@@ -551,6 +556,11 @@ def main() -> None:
):
journal_file.unlink(missing_ok=True)
if os.getenv('TEST_JOURNAL_USE_TMP', '0') == '1':
dst = args.meson_build_dir / f'test/journal/{name}.journal'
dst.parent.mkdir(parents=True, exist_ok=True)
shutil.move(journal_file, dst)
if shell or (result.returncode in (args.exit_code, 77) and not coredumps and not sanitizer):
exit(0 if shell or result.returncode == args.exit_code else 77)