Skip to content

ci: add opt-in SIMD unit-test coverage mode - #473

Open
aunjgr wants to merge 1 commit into
matrixorigin:mainfrom
aunjgr:ci/optional-simd-coverage
Open

aunjgr wants to merge 1 commit into
matrixorigin:mainfrom
aunjgr:ci/optional-simd-coverage

Conversation

@aunjgr

@aunjgr aunjgr commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

What type of PR is this?

  • API-change
  • BUG
  • Improvement
  • Documentation
  • Feature
  • Test and CI
  • Code Refactoring

Which issue(s) this PR fixes:

Part of matrixorigin/matrixone#32325. The issue remains open until the MO caller is enabled and the required merged coverage gate is verified.

What this PR does / why we need it:

Add a default-off simd_coverage input to the UT coverage workflow. Enabling it selects GOEXPERIMENT=simd and GOAMD64=v3 before package discovery, instrumentation, native preparation and test execution, and logs compiler/platform/build-mode identity. Omitted or false preserves the existing environment.

Coverage currently invokes Go directly and can exclude SIMD-tagged tests even when the production binary includes their implementation. Keep the existing runner, package scope, assertions, thresholds, exclusions, permissions and artifact protocol. Add fast environment/failure contract tests, including propagation through the actual runner, and enforce them in the workflow validator without requiring SIMD hardware or a new Go SDK there.

Design and validation

  • Approved versioned design.
  • python3 scripts/test_coverage_build_mode.py -v: 6 tests pass (1.406s), covering omitted/false/true, preservation of ambient values, ordering, actual-runner inheritance and rejection before discovery.
  • Existing runner success/failure tests: 2 pass (0.171s).
  • CI-pinned actionlint 1.7.12: all workflows pass locally. The current PR CI has also passed workflow-schema validation and actionlint; its remaining validator steps are still running.
  • Self-review: default-off behavior, step-local environment ownership, existing runner inheritance, artifact/eligibility/timeout preservation, and arm64-validator compatibility checked. No production arithmetic changed.

Delivery

Merge this prerequisite first. The separate MO caller PR is prepared locally and will be published only after this workflow ref accepts the new input. The ordinary MO UT lane remains scalar. Because MO uses pull_request_target, verify actual opt-in execution in a fresh decimal PR CI generation after the caller merges; local unit coverage is not the final merged coverage verdict.

@aunjgr

aunjgr commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor Author

@XuPeng-SH could you please review this PR? It adds a default-off SIMD coverage mode so the shared UT coverage producer can run the SIMD implementations and tests used by MatrixOne production builds. Existing callers retain their mode, and coverage thresholds/exclusions stay unchanged. The workflow validator has passed.

This is the shared-CI prerequisite for matrixorigin/matrixone#32325 and matrixorigin/matrixone#32237.

This branch has not been deployed

No deployments
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