Repository navigation
Conversation
Tests of the record internals (manifest and baseline formats, paths, versions, atomic writes, output and generator output hashing, forgetting) move to the record store's own test files and work from output names instead of compile units. The other tests observe the records only through the store: a usable baseline, whether one of the current format exists, whether a compile result is on record, and a snapshot of every file the check keeps for an assembly. No expected reason, byte or count changed.
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
📒 Files selected for processing: 1
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
The store's own tests now record a fixed list of outputs, so nothing checked that a compile result covers the reference assembly the unit names. The test that changes an output now changes the assembly and the reference assembly in turn, and each must send the unit back through the compiler.
f434fce
into
feature/compile-check-changed-files-check
Summary
User Impact
Changes
record_store_test.go,record_store_baseline_test.go,record_format_test.go):baseline(t): a usable baseline from the store. The store only returns one whose input key matches its manifesthasBaselineOf: the store's reason does not start withno baseline:. A baseline that disagrees with its manifest is reported asbaseline compile is no longer on disk, so a baseline written after a failed compile is still detectedhasRecordedCompile: the store's reason is notno baseline: no full compile of this assembly is on record. These assemblies are too small to get a baseline, so that reason only means no compile result is recordedoutputSnapshot: every file under the output directory that belongs to the assembly, except the changed-files check's own response fileremoveUnitOutputs, then the two outputs are gone and the store has no compile result, no baseline and no generator outputVerification
git grep -Pover the test files outside the store's own test files, for record internals (struct names, constants, paths, internal functions, record file names): no matches.removeUnitOutputstest fail;cli/dispatcher:golangci-lint fmt --diff(empty),go vet ./...,golangci-lint run(0 issues), the complexity config (0 issues),go test ./..., andgo test -race ./internal/compilecheck/...pass. Coverage with the CI exclusions: 94.30% (baseline 94.2).cli/release-automation:go test ./...passes. The file-length check passes.