fix: validate retained test-tool identities - #167
Open
sylvesterkaczmarek wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Make the retained
cargo-llvm-covvalidator require the exact supported platform matrix and official source identities, rather than accepting any four checksum-valid records.Problem
script/validate-test-toolscompares the committed lockfile and generated manifest, validates versions and checksums, and requires exactly four retainedcargo-llvm-covartifacts. On the base commit, however, it does not verify that those four records are the intended four platform/architecture/target tuples, and it does not bind their recorded URLs to the official release locations.Because the lockfile and generated manifest are checked against each other, the same malformed or relabelled record can appear in both and still satisfy that equality check. Counting four records is not equivalent to proving the four supported host artifacts are represented exactly once.
Evidence / reproduction
linux-x86_64 | x86_64 | linux | x86_64-unknown-linux-gnulinux-aarch64 | aarch64 | linux | aarch64-unknown-linux-gnumacos-x86_64 | x86_64 | macos | x86_64-apple-darwinmacos-aarch64 | aarch64 | macos | aarch64-apple-darwinscript/validate-test-toolscurrently checks only that each artifact record is non-empty, has the expected version, points to a safe relative path, hashes to the recorded digest, contains the executable, and that the total count is four.script/install-test-toolslater selects the retained artifact by the runtimeplatformandtarget, so these identity fields are operationally significant.Change
platform | arch | os | targettuplescargo-llvm-covrelease URL for each targetNo retained artifact bytes, versions, or installation behavior change.