diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 88b0b6f91..acfe80ded 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,8 +4,10 @@ on: [push, pull_request] jobs: test: strategy: + fail-fast: false matrix: - python_version: ['3.10', '3.12', '3.13', '3.14'] + # python_version: ['3.10', '3.11', '3.12', '3.13', '3.14', '3.14t'] + python_version: ['3.14', '3.14t'] # Use less resources while debugging... os: [ubuntu-latest] runs-on: ${{ matrix.os }} timeout-minutes: 30 @@ -147,6 +149,10 @@ jobs: # like _socket. This is a workaround. unset LD_LIBRARY_PATH PWNLIB_NOTERM=1 python -bb -m coverage run -m sphinx -b doctest docs/source docs/build/doctest + pip install pytest-sphinx + PWNLIB_NOTERM=1 python -bb -m coverage run -m pytest docs/source docs/build/doctest || true + echo "=== pytest --doctest-modules ===" + PWNLIB_NOTERM=1 python -bb -m coverage run -m pytest --doctest-modules docs/source docs/build/doctest --ignore=docs/source/conf.py - name: Coverage running examples run: | @@ -220,6 +226,23 @@ jobs: pwn libcdb lookup puts 5f0 __libc_start_main_ret d0a pwn libcdb hash b229d1da1e161f95e839cf90cded5f719e5de308 + - name: Test free-threaded Python code with pytest-run-parallel + # https://py-free-threading.github.io/testing + env: + TERM: linux + timeout-minutes: 15 + run: | + python -m pip install pytest pytest-timeout # pytest-run-parallel + echo "pytest -vvv --doctest-modules ..." + pytest -vvv || true # collecting ... collected 0 items + pytest -vvv --doctest-modules --timeout=60 pwnlib/adb/adb.py || true + pytest -vvv --doctest-modules --timeout=60 pwnlib/adb || true + pytest -vvv --doctest-modules --timeout=60 || true + python -m pip install pytest-run-parallel + pytest -vvv --doctest-modules --iterations=8 --timeout=60 || true + pytest -vvv --doctest-modules --parallel-threads=auto --timeout=60 || true + pytest -vvv --doctest-modules --iterations=8 --parallel-threads=auto + - name: Build source and wheel distributions run: | python -m build