mirror of
https://gitlab.com/apparmor/apparmor
synced 2025-08-22 01:57:43 +00:00
Having a __pycache__ on check can result in all kinds of weird issues. Notaby, the test environment is currently clearing all environment variables, including those responsible for keeping a reproducible build. This is not immediately a problem for functionality, but complicates downstream distribution in systems such as nix, where it is considered a bug [1]. It might also be possible to force determinism by exporting env vars instead: ``` DETERMINISTIC_BUILD=1 PYTHONHASHSEED=0 ``` This forces a special mode on the pycache, where instead of a `moddate`, it will then store a hash of the outputs [2]. This would be an alternative fix, but considering apparmor upstream does not (yet) test for bit-reproducibility, it is likely too fragile here. [1] https://github.com/NixOS/nixpkgs/issues/409032 [2] https://peps.python.org/pep-0552/
22 lines
616 B
Makefile
22 lines
616 B
Makefile
if HAVE_PYTHON
|
|
|
|
# NOTE: tests needs to exist in test/test*.py for python's setuptools
|
|
# not to treat it as a script to install.
|
|
|
|
test_python.py: test_python.py.in $(top_builddir)/config.status
|
|
$(AM_V_GEN)cd "$(top_builddir)" && \
|
|
$(SHELL) ./config.status --file="swig/python/test/$@"
|
|
chmod +x test_python.py
|
|
|
|
CLEANFILES = test_python.py
|
|
|
|
PYTHON_DIST_BUILD_PATH = '$(builddir)/../build/$$($(PYTHON) buildpath.py)'
|
|
|
|
TESTS = test_python.py
|
|
TESTS_ENVIRONMENT = \
|
|
LD_LIBRARY_PATH='$(top_builddir)/src/.libs:$(PYTHON_DIST_BUILD_PATH)' \
|
|
PYTHONPATH='$(PYTHON_DIST_BUILD_PATH)' \
|
|
PYTHONDONTWRITEBYTECODE='1'
|
|
|
|
endif
|