Skip to content

Update scipy to run the full test suite - #6320

Open
jjerphan wants to merge 3 commits into
emscripten-forge:mainfrom
jjerphan:scipy-run-full-test-suite
Open

Update scipy to run the full test suite#6320
jjerphan wants to merge 3 commits into
emscripten-forge:mainfrom
jjerphan:scipy-run-full-test-suite

Conversation

@jjerphan

@jjerphan jjerphan commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Rebased onto main after Add scipy-tests #6334.
  • Diagnostic control for Update numpy to use OpenBLAS #6310: run scipy.test(label="fast") on main's SciPy and NumPy (no OpenBLAS-linked NumPy).
  • scipy stays runtime-only. The fast suite runs from the scipy-tests package via long_pytester.py.
  • Ubuntu CI on the first commit aborted in scipy.linalg.tests.test_basic with RuntimeError: function signature mismatch. That abort is not caused by OpenBLAS-linked NumPy.
  • A later run finished the suite on all three pytester backends (~20 min each): 71962 passed, 11368 skipped, 19 failed, no function-signature abort.
  • Remaining failures (now skipped): tfqmr iterative solve, test_sparse_dense_divide, test_ckdtree_memuse, special rounding/overflow, QMC validations, and a few stats inf-value / Brunner-Munzel cases.
  • Wasm-incompatible tests (threads, processes, mmap, FITPACK, FFT backends, tridiagonal eigensolvers, DPSS, raw LAPACK) are skipped in scipy/conftest.py. GC is disabled and os._exit is used after the session. Playwright timeout is raised to 60 minutes. Build number stays at 2 (same as main after Add scipy-tests #6334).

Template B: Checklist for updating a package

  • ⚠️ Bump build number if the version remains unchanged
  • Or reset build number to 0 if updating the package to a newer version

PR Formatting

  • PR title follows format: Add [package-name] or Update [package-name] to [version]
  • PR description includes:
    • Version being added/updated
    • Any special build considerations or patches applied

Package Details

  • Package Name: scipy / scipy-tests
  • Version: 1.18.0 (build 2, same as main)

Build Notes

Not intended as a product change. NumPy stays the main-channel no-BLAS build. SciPy still links OpenBLAS, as on main. Skip-only patches keep build number 2.

Test plan

  • Ubuntu CI rebuilds scipy and scipy-tests and runs scipy.test(label="fast")
  • Run completes with pytest return code 0 on all three backends
  • Remaining failures can be compared with Update numpy to use OpenBLAS #6310

jjerphan added a commit to jjerphan/recipes that referenced this pull request Aug 21, 2026
The function-signature mismatch after linalg/tests/test_basic.py also
happens on main's NumPy in emscripten-forge#6320, so it is not OpenBLAS-specific.
Disable GC, skip the Cython ABI checks, and log tests with -v.

Signed-off-by: Julien Jerphanion <git@jjerphan.xyz>
@jjerphan jjerphan mentioned this pull request Aug 21, 2026
4 tasks
@jjerphan
jjerphan force-pushed the scipy-run-full-test-suite branch from e4d9da0 to 7375c0d Compare August 24, 2026 08:27
Rebase onto main after scipy-tests landed. Keep scipy runtime-only,
skip wasm-unsupported tests in conftest.py, and call scipy.test()
from the scipy-tests package.

Signed-off-by: Julien Jerphanion <git@jjerphan.xyz>
Keep skips that actually failed or abort wasm. Restore FFT backends,
GIL tests, MMIO except fast_matrix_market, Cython BLAS/LAPACK modules
except ABI checks, and all tfqmr/nyquist cases but the known ones.

Signed-off-by: Julien Jerphanion <git@jjerphan.xyz>
Emscripten fenv.h is a stub (pyodide#4859, numpy#32036, WebAssembly
design#1384): cholesky returns NaNs, fesetround is a no-op, and
hardware FP traps never fire. Label those skips separately from
missing getrusage and the known tfqmr float32 non-convergence.

Signed-off-by: Julien Jerphanion <git@jjerphan.xyz>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant