mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-11 12:33:53 -06:00
The CI runner sets XDG_CONFIG_HOME to its own home, and the installer now reads it as RetroArch does. Tests that fake HOME then found the runner's RetroArch folders. The suite clears the three XDG variables it reads, and a test that exercises one sets it itself.
48 lines
2.1 KiB
Python
48 lines
2.1 KiB
Python
"""No test downloads a release asset unless it says so.
|
|
|
|
The CI job sets RETROBIOS_OFFLINE, but a local run of the documented command
|
|
did not, and e2e fixtures queried the large-files release and wrote its
|
|
answers into the shared .cache/large. A test that serves its own assets
|
|
clears the variable for itself.
|
|
|
|
Scratch files go under the repository's tmp/, which git does not track: a
|
|
fresh clone has none, and a module run alone raised FileNotFoundError on a
|
|
temporary directory instead of naming the missing parent.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
import tempfile
|
|
from pathlib import Path
|
|
|
|
os.environ.setdefault("RETROBIOS_OFFLINE", "1")
|
|
# The installer reads the XDG base directories as RetroArch and the
|
|
# emulators do. The CI runner sets XDG_CONFIG_HOME to its own home, so tests
|
|
# that fake HOME found the runner's folders instead of theirs. A test that
|
|
# exercises one of them sets it for itself.
|
|
for _name in ("XDG_CONFIG_HOME", "XDG_DATA_HOME", "XDG_CACHE_HOME"):
|
|
os.environ.pop(_name, None)
|
|
# A test never waits on, nor blocks, the measurements running on the host.
|
|
os.environ.setdefault(
|
|
"RETROBIOS_PROBE_LOCK",
|
|
str(Path(__file__).resolve().parent.parent / "tmp" / "tests" / "probe.lock"),
|
|
)
|
|
|
|
_SCRATCH = Path(__file__).resolve().parent.parent / "tmp" / "tests"
|
|
_SCRATCH.mkdir(parents=True, exist_ok=True)
|
|
# A TemporaryDirectory() without dir= landed in /tmp, a 4 GB tmpfs here: once
|
|
# another run filled it, modules unrelated to any change failed with ENOSPC.
|
|
# The default is the repository's tmp/, for this process and its children.
|
|
os.environ["TMPDIR"] = str(_SCRATCH)
|
|
tempfile.tempdir = str(_SCRATCH)
|
|
# A scratch directory is not part of this checkout: git run inside one must
|
|
# not walk up to the repository, as it could not from /tmp.
|
|
os.environ["GIT_CEILING_DIRECTORIES"] = str(_SCRATCH)
|
|
# The installer's cache (the games index, what reading a card found) is the
|
|
# suite's own: a run never reads nor fills the one of the person running it.
|
|
os.environ.setdefault(
|
|
"RETROBIOS_CACHE",
|
|
str(Path(__file__).resolve().parent.parent / "tmp" / "tests" / "cache"),
|
|
)
|