diff --git a/smoke/venv.sh b/smoke/venv.sh index 8240a21..e7bfea2 100755 --- a/smoke/venv.sh +++ b/smoke/venv.sh @@ -11,8 +11,9 @@ TOX=${TOX:-true} CYTHON=${CYTHON:-true} INSTALL_OR_SKIP=${INSTALL_OR_SKIP:-false} -# clean from possible older runs -rm -rf venv .tox __pycache__ .pytest* test_*.py *.pyx *.c *.so ensurepiptestroot || : +# Work from a custom directory +workdir="$(mktemp --directory)" +cd "$workdir" if [ "$INSTALL_OR_SKIP" == "true" ] && [ ! -f "/usr/bin/$PYTHON" ]; then dnf -y install "/usr/bin/$PYTHON" || : @@ -130,3 +131,7 @@ EOF # A more complex example with pytest tox + +# Clean up if everything else went well +cd - +rm -rf "$workdir" diff --git a/tests.yml b/tests.yml index cc1ab6a..da26cbd 100644 --- a/tests.yml +++ b/tests.yml @@ -6,6 +6,8 @@ - dnf: name: "*" state: latest + - ansible.builtin.user: + name: testuser - hosts: localhost roles: @@ -15,56 +17,57 @@ tests: - smoke_default: dir: smoke - run: ./venv.sh + run: runuser testuser -c './venv.sh' - smoke27: dir: smoke - run: VERSION=2.7 METHOD=virtualenv ./venv.sh + run: runuser testuser -c 'VERSION=2.7 METHOD=virtualenv ./venv.sh' - smoke27_seeder_pip: dir: smoke - run: VERSION=2.7 METHOD=virtualenv-seeder-pip ./venv.sh + run: runuser testuser -c 'VERSION=2.7 METHOD=virtualenv-seeder-pip ./venv.sh' - smoke35: dir: smoke - run: VERSION=3.5 METHOD=virtualenv-no-download INSTALL_OR_SKIP=true ./venv.sh + run: runuser testuser -c 'VERSION=3.5 METHOD=virtualenv-no-download INSTALL_OR_SKIP=true ./venv.sh' - smoke36: dir: smoke - run: VERSION=3.6 METHOD=venv TOX=false ./venv.sh + run: runuser testuser -c 'VERSION=3.6 METHOD=venv TOX=false ./venv.sh' - smoke37: dir: smoke - run: VERSION=3.7 METHOD=venv ./venv.sh + run: runuser testuser -c 'VERSION=3.7 METHOD=venv ./venv.sh' - smoke38: dir: smoke - run: VERSION=3.8 METHOD=venv ./venv.sh + run: runuser testuser -c 'VERSION=3.8 METHOD=venv ./venv.sh' - smoke39: dir: smoke - run: VERSION=3.9 METHOD=venv ./venv.sh + run: runuser testuser -c 'VERSION=3.9 METHOD=venv ./venv.sh' - smoke311: dir: smoke - run: VERSION=3.11 METHOD=venv CYTHON=false ./venv.sh + run: runuser testuser -c 'VERSION=3.11 METHOD=venv CYTHON=false ./venv.sh' - smoke39_seeder_pip: dir: smoke - run: VERSION=3.9 METHOD=virtualenv-seeder-pip ./venv.sh + run: runuser testuser -c 'VERSION=3.9 METHOD=virtualenv-seeder-pip ./venv.sh' - smoke34_optional: dir: smoke - run: VERSION=3.4 METHOD=venv INSTALL_OR_SKIP=true ./venv.sh + run: runuser testuser -c 'VERSION=3.4 METHOD=venv INSTALL_OR_SKIP=true ./venv.sh' - smokepypy: dir: smoke - run: VERSION=2.7 METHOD=virtualenv PYTHON=pypy ./venv.sh + run: runuser testuser -c 'VERSION=2.7 METHOD=virtualenv PYTHON=pypy ./venv.sh' - smokepypy38: dir: smoke - run: VERSION=3.8 METHOD=venv PYTHON=pypy3.8 ./venv.sh + run: runuser testuser -c 'VERSION=3.8 METHOD=venv PYTHON=pypy3.8 ./venv.sh' - selftest37: dir: selftest - run: VERSION=3.7 X="-x test_socket -x test_asyncgen -x test_asyncio -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./parallel.sh + run: runuser testuser -c 'VERSION=3.7 X="-x test_socket -x test_asyncgen -x test_asyncio -x test_compile -x test_concurrent_futures -x test_itertools -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_shutil -x test_time -x test_multiprocessing_spawn -x test_threading -x test_wsgiref" ./parallel.sh' - debugtest38: dir: selftest - run: VERSION=3.8 PYTHON="python3-debug" X="test_ssl" ./parallel.sh + run: runuser testuser -c 'VERSION=3.8 PYTHON="python3-debug" X="test_ssl" ./parallel.sh' - debugflags: dir: flags - run: python3-debug ./assertflags.py -O0 + run: runuser testuser -c 'python3-debug ./assertflags.py -O0' - marshalparser_compatibility: dir: marshalparser - run: SAMPLE=10 test_marshalparser_compatibility.sh + run: runuser testuser -c 'SAMPLE=10 test_marshalparser_compatibility.sh' required_packages: + - util-linux # for runuser - dnf - gcc - gcc-c++