Skip to content

svd: run test_josef in the nightly LAPACK validation, with a stated ignore reason - #131

Merged
shinaoka merged 1 commit into
mainfrom
fix/test-josef
Oct 29, 2026
Merged

shinaoka merged 1 commit into
mainfrom
fix/test-josef

Conversation

@shinaoka

Copy link
Copy Markdown
Member

Summary

linalg::svd::bidiag_svd::tests::test_josef came from upstream with a bare #[ignore] (sarah quiñones added the test and its data in e2d0a6f, 2024-10-18). The maintainer asked to run it and act on the result.

Result: it passes. With --include-ignored, the n = 8660 f32 divide-and-conquer SVD of test_data/svd/svd_josef.txt (full U and V) reconstructs within the test's tolerance. So this is not a correctness defect: no issue is filed, and there is nothing to add to upstream-reports/.

run time peak memory
cargo test --release 65.9 s
cargo test (test profile, opt-level 3) 67.3 s
test binary under /usr/bin/time -v 71.3 s 2.3 GB

Data: faer/test_data/svd/ is present and intact. svd_josef.txt has 8660 diagonal and 8660 subdiagonal entries. It is the only file there above the test's n > 1024 cut; the other six files are skipped by this test.

Change

At about a minute, the test is too slow to run with every test, so it stays ignored, now with a stated reason, and the nightly LAPACK validation runs it:

  • #[ignore = "large (n = 8660): runs in the nightly LAPACK validation"], plus a comment pointing to the runner.
  • scripts/run-lapack-validation.py: a new family svd_large (300 s limit) selected by exact name (LARGE_SVD). The existing svd family could not take it: on the hosted runner it already uses 53 of its 120 s (last nightly run).
  • The family limits now sum to 25 minutes, so the workflow's step timeout goes from 44 to 49 minutes and the job timeout from 50 to 55.
  • scripts/test-lapack-validation.py: classification tests for the new family (test_josef goes to svd_large, other bidiag_svd tests are not selected), and the last family is now svd_large.
  • docs/lapack-validation.md: the timeout figures and the new family.

Verification

  • python3 scripts/test-lapack-validation.py: 8 tests OK. Both scripts compile with Python 3.10.
  • On the real test list of this branch, selected_tests gives svd_large = [test_josef] and svd 88 tests. The limits sum to 1500 s.
  • The command the runner uses for the family (--exact … --include-ignored --nocapture --test-threads=1) passes locally in 71 s.

🤖 Generated with Claude Code

…g ignored without a reason

`linalg::svd::bidiag_svd::tests::test_josef` came from upstream with a bare
`#[ignore]`. Run with `--include-ignored` it passes: the n = 8660 f32
divide-and-conquer SVD of `test_data/svd/svd_josef.txt` reconstructs within
its tolerance (67 s in the test profile, 66 s in release, peak 2.3 GB). The
data is intact (8660 diagonal and 8660 subdiagonal entries); it is the only
file in `test_data/svd/` above the test's n > 1024 cut.

At a minute it is too slow for every test run, so the ignore now states why,
and the nightly LAPACK validation runs it in a family of its own,
`svd_large` (300 s limit), selected by exact name. The svd family could not
take it: it already uses 53 of its 120 s on the hosted runner. The family
limits now sum to 25 minutes, so the step and job timeouts grow by five
minutes (49 and 55).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@shinaoka
shinaoka merged commit 2e8e2d7 into main Oct 29, 2026
7 checks passed
@shinaoka
shinaoka deleted the fix/test-josef branch October 29, 2026 09:36
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