test(build-time-versioning): add version/startup-log consistency check
Adds src/tools/test-version-startup-consistency.sh (same house style as task 6.1's test-build-version-regression.sh), which builds xce_scheduler and xce_apiserver for real, starts each daemon, and asserts the commit id and build time reported by --version/-version are identical to the values in the daemon's own startup log -- proving Requirement 2.2's guarantee that the two can never disagree for the same artifact. apiserver's build routes around two pre-existing, unrelated sandbox blockers (bug-1597's missing CGO env in `make build-server`, and go_build's hardcoded GOPROXY hanging in this sandbox) via a direct `go build -mod=readonly -ldflags` invocation that computes commit_id/build_time identically to go_build and injects them the same way; only the orchestration layer differs, not what main.go (task 4.4, unmodified) consumes. Verified independently by review, including live reproduction of both build-path blockers. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
176f0cf835
commit
79941a9f42
2 changed files with 504 additions and 3 deletions
|
|
@ -114,9 +114,10 @@
|
|||
- _Requirements: 4.1, 4.2, 4.3, 5.1, 5.2_
|
||||
- _Depends: 2.1, 3.2, 3.3_
|
||||
|
||||
- [ ] 6.2 Version/startup-log consistency test
|
||||
- For one C daemon (controller or scheduler) and one Go binary (apiserver), capture the startup log's version line and separately run `--version`/`-version`, asserting the two report byte-identical commit id and build time
|
||||
- Observable: a passing test proves `--version` and the startup log can never disagree for the same artifact
|
||||
- [x] 6.2 Version/startup-log consistency test
|
||||
- New standalone script `src/tools/test-version-startup-consistency.sh` (same house style as task 6.1's `test-build-version-regression.sh`) builds `xce_scheduler` and `xce_apiserver` for real, starts each daemon, greps its startup log, and asserts the commit-id/build-time VALUES (not whole-line text, since the C daemon's plain-text log line and apiserver's structured zap-JSON fields are differently shaped by design) are identical between `--version`/`-version` output and the startup log
|
||||
- apiserver's build routes around two pre-existing, unrelated, independently-reproduced sandbox blockers -- `make build-server`'s missing CGO env (bug-1597) and `xce-build.sh apiserver`'s `go_build`-hardcoded `GOPROXY=goproxy.cn` hanging in this sandbox (confirmed live by review via orphaned processes) -- via a direct `go build -mod=readonly -ldflags` invocation computing `commit_id`/`build_time` with the identical logic and injecting them via the identical `-X` shape `go_build` itself uses; only the orchestration layer differs, not what's injected or how task 4.4's unmodified `main.go` consumes it
|
||||
- Observable confirmed live (independently re-run in full by both implementer and review, real builds + real daemon startups each time): scheduler and apiserver both PASS with matching, real commit id + build time; a demonstration block proves the check correctly rejects a commit-id mismatch, a build-time mismatch, and an empty field on either side
|
||||
- _Requirements: 2.2_
|
||||
- _Depends: 3.2, 4.4_
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue