41 lines
1.5 KiB
Bash
Executable file
41 lines
1.5 KiB
Bash
Executable file
#!/bin/sh -eux
|
|
|
|
# set default version to %{python3_version} if available
|
|
VERSION=${VERSION:-$(rpm --eval '%{?python3_version}')} || true
|
|
# ...or 3.8 if that macro is not available or rpm fails for any reason
|
|
VERSION=${VERSION:-3.8}
|
|
|
|
PYTHON=${PYTHON:-python$VERSION}
|
|
|
|
# what to skip
|
|
# test_socket swaps and kills the machine https://bugs.python.org/issue34587
|
|
X=${X:-"-x test_socket"}
|
|
|
|
TIMEOUT=${TIMEOUT:-1800}
|
|
|
|
# parallel jobs, 0 lets Python decide what's best
|
|
JOBS=${JOBS:-0}
|
|
|
|
# Fedora sets explicit minimum/maximum TLS versions.
|
|
# Python's test suite assumes that the minimum/maximum version is set to
|
|
# a magic marker. We workaround the test problem by setting:
|
|
export OPENSSL_CONF=/non-existing-file
|
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1618753
|
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1778357
|
|
# https://bugs.python.org/issue35045
|
|
# https://bugs.python.org/issue38815
|
|
|
|
# setuptools 60+ uses its own copy of distutils by default
|
|
# this setting must be overriden with the environment variable for
|
|
# Python tests to use the standard library's distutils
|
|
# We only do this if stdlib distutils actually exists
|
|
$PYTHON -c 'import distutils' 2>/dev/null && export SETUPTOOLS_USE_DISTUTILS=stdlib || true
|
|
|
|
$PYTHON -m test.pythoninfo
|
|
$PYTHON -m test -wW -j$JOBS --timeout=$TIMEOUT $X && e=0 || e=$?
|
|
# https://tmt.readthedocs.io/en/stable/spec/tests.html#framework says only exit code 1 is failure, rest is error
|
|
# https://github.com/python/cpython/blob/v3.14.0/Lib/test/libregrtest/results.py#L18 says a bad test exits with 2
|
|
if [ $e -eq 2 ]; then
|
|
exit 1
|
|
fi
|
|
exit $e
|