This is an automated email from the ASF dual-hosted git repository.

zeroshade pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-go.git


The following commit(s) were added to refs/heads/main by this push:
     new 3d806803 ci: run parquet/file once on macOS (#1422)
3d806803 is described below

commit 3d8068034d243b5f07545802fc5b3f1c5c3ee208
Author: Matt Topol <[email protected]>
AuthorDate: Mon Oct 26 17:49:54 2026 +0000

    ci: run parquet/file once on macOS (#1422)
    
    ### Rationale for this change
    
    The macOS ARM64 Test jobs are running into their `timeout-minutes`. In
    the last 40 Test runs, successful `ARM64 macOS 14 Go 1.26` jobs took
    14–17 minutes against a 20-minute limit, and two jobs were cancelled at
    the limit today (#1414's `ARM64 macOS 14 Go 1.26`, #1421's `ARM64 macOS
    14 Go 1.26 - CGO`), both during the last command of
    `ci/scripts/test.sh`: `go test -race -tags assert,noasm …/parquet/file`.
    All tests that had run passed.
    
    On macOS, `parquet/file` runs in its own invocation, once per tag set
    (`assert`, then `assert,noasm`); under `-race` that takes about 90
    seconds or more each time. But `parquet/file` has no `noasm`-specific
    code: every `noasm` variant lives in `parquet/internal/bmi`,
    `parquet/internal/encoding`, `parquet/internal/utils` and
    `parquet/metadata`, which are still tested in both passes. The second
    run repeats the same tests.
    
    ### What changes are included in this PR?
    
    `ci/scripts/test.sh` runs the macOS-only `parquet/file` invocation once,
    with `-tags assert`, after both passes over the other parquet packages.
    Other platforms are unchanged (`parquet/file` stays part of `./...` in
    both passes there).
    
    ### Are these changes tested?
    
    `bash -n` passes. A dry run of the script with `go` stubbed to report
    darwin and print each `go test` command shows the arrow passes
    unchanged, the other parquet packages in both `assert` and
    `assert,noasm` passes, and `parquet/file` once with `assert`. This PR's
    own macOS jobs exercise it.
    
    ### Are there any user-facing changes?
    
    No.
---
 ci/scripts/test.sh | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/ci/scripts/test.sh b/ci/scripts/test.sh
index 3f18097b..b60c36fd 100755
--- a/ci/scripts/test.sh
+++ b/ci/scripts/test.sh
@@ -141,9 +141,14 @@ fi
 
 for parquet_tags in assert assert,noasm; do
   go test "${test_args[@]}" -tags "${parquet_tags}" "${parquet_pkgs[@]}"
-  if [[ ${#serial_pkgs[@]} -gt 0 ]]; then
-    go test "${test_args[@]}" -tags "${parquet_tags}" "${serial_pkgs[@]}"
-  fi
 done
 
+# parquet/file has no noasm-specific code: every noasm variant it depends on
+# (parquet/internal/{bmi,encoding,utils}, parquet/metadata) is already tested
+# in both passes above, so a second run under noasm only repeats its slow
+# -race tests and has pushed the macOS jobs past their timeout.
+if [[ ${#serial_pkgs[@]} -gt 0 ]]; then
+  go test "${test_args[@]}" -tags assert "${serial_pkgs[@]}"
+fi
+
 popd

Reply via email to