Skip to content

Commit 0e5f9fd

Browse files
committed
ci: drop --test-all from the NVHPC cpu test step
The cpu lane spent about 102 of its ~120 minutes in `mfc.sh test`, running the full suite once per NVHPC release, 15 times over. --test-all does two unrelated things (toolchain/mfc/test/test.py). At build time it adds post_process to the compiled binaries (line 389). At test time it re-runs pre_process+simulation+post_process a second time for every case and post-processes the silo output (line 735). Only the first is the compile coverage these lanes exist for; the second roughly doubles the runtime and duplicates checking the GNU, Intel and self-hosted lanes already do. So the flag moves out of the shared MFC_NVHPC_TEST_FLAGS and onto the build step alone. post_process is still compiled on all 15 releases -- no loss of compiler coverage, which is the point of the matrix -- it just is not re-run here. --no-mpi stays shared, since that one genuinely must match between build and test. The gpu lanes are untouched: they already pass --test-all explicitly and never referenced the env var. Claude-Session: https://claude.ai/code/session_01XPqfEaUBG7ZaZVzeMWnKHd
1 parent 73edd77 commit 0e5f9fd

1 file changed

Lines changed: 15 additions & 6 deletions

File tree

.github/workflows/test.yml

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ jobs:
257257
-e "FFLAGS=-tp=px -Kieee -noswitcherror" \
258258
-e CFLAGS=-tp=px \
259259
-e CXXFLAGS=-tp=px \
260-
-e "MFC_NVHPC_TEST_FLAGS=--test-all --no-mpi" \
260+
-e "MFC_NVHPC_TEST_FLAGS=--no-mpi" \
261261
"$NVHPC_IMAGE" sleep infinity
262262
263263
- name: Setup NVHPC
@@ -296,16 +296,25 @@ jobs:
296296
# MFC_NVHPC_TEST_FLAGS carries --no-mpi: post_process segfaults under
297297
# mpirun in these containers, and every failure the lanes have produced
298298
# has been an MPI test (see PR #1822). The harness skips ppn>1 cases
299-
# without MPI, so the rest of --test-all -- the compile coverage these
300-
# lanes exist for -- is unaffected, as is MPI coverage elsewhere. Set in
301-
# one place so the build and test steps cannot disagree: a no-MPI build
302-
# tested with MPI would run ppn>1 cases against a binary that has none.
299+
# without MPI, so compile coverage is unaffected, as is MPI coverage
300+
# elsewhere. It stays in one place because a no-MPI build tested with
301+
# MPI would run ppn>1 cases against a binary that has none.
302+
#
303+
# --test-all is deliberately NOT shared, and sits on the build only.
304+
# It does two separate things (toolchain/mfc/test/test.py): at build
305+
# time it adds post_process to the set of compiled binaries, and at
306+
# test time it re-runs pre_process+simulation+post_process a second
307+
# time for every case. The first is the compile coverage these lanes
308+
# exist for; the second is roughly half the lane's ~120 min wall clock
309+
# and duplicates runtime checking the GNU, Intel and self-hosted lanes
310+
# already do. So: build with it, test without it. post_process is
311+
# still compiled on all 15 releases, just not re-run here.
303312
- name: Build (NVHPC)
304313
if: matrix.target == 'cpu'
305314
run: |
306315
docker exec nvhpc bash -c '
307316
source /etc/nvhpc-env.sh
308-
/bin/bash mfc.sh test -v --dry-run -j $(nproc) $MFC_NVHPC_TEST_FLAGS
317+
/bin/bash mfc.sh test -v --dry-run -j $(nproc) --test-all $MFC_NVHPC_TEST_FLAGS
309318
'
310319
311320
- name: Build (NVHPC GPU)

0 commit comments

Comments
 (0)