Skip to content

Archive gotestsum JSON for unit and acc tests#5068

Draft
pietern wants to merge 1 commit intotest-time-windows-skipfrom
test-time-profiling
Draft

Archive gotestsum JSON for unit and acc tests#5068
pietern wants to merge 1 commit intotest-time-windows-skipfrom
test-time-profiling

Conversation

@pietern
Copy link
Copy Markdown
Contributor

@pietern pietern commented Apr 22, 2026

Summary

Previously make test wrote both the test-unit and test-acc runs to the same test-output.json, so the acc run overwrote the unit run (confirmed when inspecting the first artifact — no unit-package entries). Each target now writes to a filename that mirrors it:

  • make test-unittest-output-unit.json
  • make test-acctest-output-acc.json

Both files are uploaded as a per-matrix-entry artifact (test-output-<os>-<deployment>), so we can run gotestsum tool slowest or ad-hoc queries against the full per-test timing set offline. make cover (push-to-main path) is adjusted to the same filenames.

The make slowest workflow step is dropped — the same analysis is available offline from the uploaded artifact, and GOTESTSUM_CMD no longer hard-codes a default jsonfile path.

This pull request and its description were written by Isaac.

pietern added a commit that referenced this pull request Apr 23, 2026
Profiling via gotestsum JSON (PR #5068) shows Windows acceptance tests
run at 2.1-2.4x the Linux duration uniformly across every directory,
and a large subset of those tests exercise server-side logic through
bundle deploy/update cycles without touching OS-specific CLI behavior.
Linux coverage alone is sufficient for those subtrees.

Skipping on both Windows and macOS (via GOOS.windows/GOOS.darwin =
false) in:

- `bundle/resources/` — jobs, pipelines, clusters, dashboards, grants,
  permissions, model_serving_endpoints, postgres_*, quality_monitors,
  secret_scopes, volumes, models, registered_models, schemas, etc.
- `bundle/deployment/bind/` and `bundle/deployment/unbind/` --
  server-side state binding
- `bundle/run_as/` -- server-side identity impersonation
- `bundle/resource_deps/` -- server-side dependency resolution
- `bundle/templates/default-python/{combinations,integration_classic,
  serverless}` -- server-side template rendering; Windows/macOS still
  smoke-tests the template machinery via `templates/default-python/
  classic/`.

All `out.test.toml` files regenerated via `make generate-out-test-toml`
so the materialized config snapshot reflects the new GOOS filters.

Expected impact:
- windows/terraform: ~32m -> ~12-15m
- macos/terraform:   ~13m -> ~7-9m
- linux/terraform:   unchanged (full coverage preserved)

Co-authored-by: Isaac
@pietern pietern force-pushed the test-time-profiling branch from 3a9f772 to 6e061e3 Compare April 23, 2026 08:37
@pietern pietern changed the title ci(wip): upload gotestsum JSON, one-acc-test smoke Archive gotestsum JSON for unit and acc tests Apr 23, 2026
@pietern pietern changed the base branch from main to test-time-windows-skip April 23, 2026 08:40
Previously `make test` wrote both test-unit and test-acc output to the
same `test-output.json`, so the acc run overwrote the unit run. Make
each target write to a filename that matches it:

- `make test-unit` -> `test-output-unit.json`
- `make test-acc`  -> `test-output-acc.json`

Upload both as a single per-matrix-entry artifact so we can run
`gotestsum tool slowest` or ad-hoc queries against the full per-test
timing set. `make cover` (push-to-main path) is adjusted to match.

Drop the `make slowest` workflow step -- the same analysis is available
offline from the uploaded artifact, and we no longer hard-code a
default `test-output.json` in `GOTESTSUM_CMD`.

Co-authored-by: Isaac
@pietern pietern force-pushed the test-time-profiling branch from 6e061e3 to 4eb7689 Compare April 23, 2026 08:41
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