diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 20ef3348b..8c57bb559 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -187,6 +187,7 @@ jobs: -e "FFLAGS=-tp=px -Kieee -noswitcherror" \ -e CFLAGS=-tp=px \ -e CXXFLAGS=-tp=px \ + -e "MFC_NVHPC_TEST_FLAGS=--test-all --no-mpi" \ "$NVHPC_IMAGE" sleep infinity - name: Setup NVHPC @@ -289,12 +290,19 @@ jobs: CHANGED_FILES: ${{ needs.file-changes.outputs.changed_files }} # ── NVHPC build + test (via docker exec into long-lived container) ── + # MFC_NVHPC_TEST_FLAGS carries --no-mpi: post_process segfaults under + # mpirun in these containers, and every failure the lanes have produced + # has been an MPI test (see PR #1822). The harness skips ppn>1 cases + # without MPI, so the rest of --test-all -- the compile coverage these + # lanes exist for -- is unaffected, as is MPI coverage elsewhere. Set in + # one place so the build and test steps cannot disagree: a no-MPI build + # tested with MPI would run ppn>1 cases against a binary that has none. - name: Build (NVHPC) if: matrix.nvhpc && matrix.target == 'cpu' run: | docker exec nvhpc bash -c ' source /etc/nvhpc-env.sh - /bin/bash mfc.sh test -v --dry-run -j $(nproc) --test-all + /bin/bash mfc.sh test -v --dry-run -j $(nproc) $MFC_NVHPC_TEST_FLAGS ' - name: Build (NVHPC GPU) @@ -336,7 +344,7 @@ jobs: docker exec nvhpc bash -c ' source /etc/nvhpc-env.sh ulimit -s unlimited || ulimit -s 65536 || true - /bin/bash mfc.sh test -v --max-attempts 3 -j $(nproc) --test-all + /bin/bash mfc.sh test -v --max-attempts 3 -j $(nproc) $MFC_NVHPC_TEST_FLAGS ' # ── Cleanup ─────────────────────────────────────────────────────────