Merged
Conversation
Collaborator
Member
Author
|
This is how LLVM warnings look like if we hash RUSTFLAGS into |
This is a regression test to prevent issues like rust-lang#7416. The test only run on Linux, as other platforms have different requirements for PGO, or emit different PGO function missing warnings.
epage
approved these changes
Nov 26, 2024
ehuss
reviewed
Nov 28, 2024
| } | ||
|
|
||
| let Some(llvm_profdata) = llvm_profdata() else { | ||
| return; |
Contributor
There was a problem hiding this comment.
Would it be possible to enforce that this exists in CI? Otherwise we don't know if this test is ever actually running.
Member
Author
There was a problem hiding this comment.
Yeah I've considered that and found it needs more work than the current one.
I'll try to improve it!
Comment on lines
+25
to
+31
| #[cargo_test] | ||
| fn pgo_works() { | ||
| if cfg!(not(target_os = "linux")) { | ||
| // macOS may emit different LLVM PGO warnings. | ||
| // Windows LLVM has different requirements. | ||
| return; | ||
| } |
Contributor
There was a problem hiding this comment.
Can you make sure to use the ignore attribute when disabling a test? Otherwise it can be confusing when tests don't seem to change when you expect them to, are say that they are passing when you expect them to fail.
I realize there's still a big hole when llvm-profdata is missing. We could maybe add that to our requires mechanism?
Suggested change
| #[cargo_test] | |
| fn pgo_works() { | |
| if cfg!(not(target_os = "linux")) { | |
| // macOS may emit different LLVM PGO warnings. | |
| // Windows LLVM has different requirements. | |
| return; | |
| } | |
| #[cargo_test] | |
| // macOS may emit different LLVM PGO warnings. | |
| // Windows LLVM has different requirements. | |
| #[cfg_attr(not(target_os = "linux"), ignore = "linux only")] | |
| fn pgo_works() { |
bors
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Nov 30, 2024
Update cargo 8 commits in 4c39aaff66862cc0da52fe529aa1990bb8bb9a22..3908f64086a3d7b9af8d87b4da2bd100776c3e61 2024-11-25 16:36:17 +0000 to 2024-11-29 17:32:44 +0000 - chore(deps): update msrv (rust-lang/cargo#14867) - fix(fix): Migrate cargo script manifests across editions (rust-lang/cargo#14864) - feat(toml): Allow adding/removing from cargo scripts (rust-lang/cargo#14857) - Add future-incompat warning against keywords in cfgs and add raw-idents (rust-lang/cargo#14671) - test(build-std): download deps first (rust-lang/cargo#14861) - test(pgo): ensure PGO works (rust-lang/cargo#14859) - git-fetch-with-cli: Set `GIT_DIR` for bare repository compatibility (rust-lang/cargo#14860) - fix(build-std): always link to std when testing proc-macros (rust-lang/cargo#14850)
This was referenced Nov 30, 2024
github-merge-queue bot
pushed a commit
that referenced
this pull request
Nov 30, 2024
### What does this PR try to resolve? The new syntax is key-value pair like `requires = "rustfmt"`, comparing to the previous `requires_<cmd>`. This enables `cargo_test` to require that the CLI contains non-alphabetic names, such as `llvm-profdata`. ### How should we test and review this PR? CI passes ### Additional information This is a request from <#14859 (comment)>, but I found it a bit tricky so split off this change first.
github-merge-queue bot
pushed a commit
that referenced
this pull request
Nov 30, 2024
### What does this PR try to resolve? Address #14859 (comment) I found that detecting llvm-profdata [requires more works](weihanglo#73), so do this first.
bors
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Dec 4, 2024
Update cargo 17 commits in 4c39aaff66862cc0da52fe529aa1990bb8bb9a22..05f54fdc34310f458033af8a63ce1d699fae8bf6 2024-11-25 16:36:17 +0000 to 2024-12-03 03:14:12 +0000 - test(pgo): only run on nightly (rust-lang/cargo#14887) - chore: Bump to 0.86.0; update changelog (rust-lang/cargo#14885) - docs(ref): Finish a sentence on rust-versions (rust-lang/cargo#14884) - chore(deps): update rust crate cargo_metadata to 0.19.0 (rust-lang/cargo#14878) - chore(deps): update rust crate gix to 0.68.0 (rust-lang/cargo#14879) - fix: Remove default registry reference in `info` cmd docs (rust-lang/cargo#14880) - test(pgo): determine test runnability at compile time (rust-lang/cargo#14874) - test: `requires` attribute accepts string literals for cmds (rust-lang/cargo#14875) - chore(deps): update msrv (3 versions) to v1.81 (rust-lang/cargo#14871) - chore(deps): update msrv (rust-lang/cargo#14867) - fix(fix): Migrate cargo script manifests across editions (rust-lang/cargo#14864) - feat(toml): Allow adding/removing from cargo scripts (rust-lang/cargo#14857) - Add future-incompat warning against keywords in cfgs and add raw-idents (rust-lang/cargo#14671) - test(build-std): download deps first (rust-lang/cargo#14861) - test(pgo): ensure PGO works (rust-lang/cargo#14859) - git-fetch-with-cli: Set `GIT_DIR` for bare repository compatibility (rust-lang/cargo#14860) - fix(build-std): always link to std when testing proc-macros (rust-lang/cargo#14850)
github-actions bot
pushed a commit
to rust-lang/miri
that referenced
this pull request
Dec 6, 2024
Update cargo 17 commits in 4c39aaff66862cc0da52fe529aa1990bb8bb9a22..05f54fdc34310f458033af8a63ce1d699fae8bf6 2024-11-25 16:36:17 +0000 to 2024-12-03 03:14:12 +0000 - test(pgo): only run on nightly (rust-lang/cargo#14887) - chore: Bump to 0.86.0; update changelog (rust-lang/cargo#14885) - docs(ref): Finish a sentence on rust-versions (rust-lang/cargo#14884) - chore(deps): update rust crate cargo_metadata to 0.19.0 (rust-lang/cargo#14878) - chore(deps): update rust crate gix to 0.68.0 (rust-lang/cargo#14879) - fix: Remove default registry reference in `info` cmd docs (rust-lang/cargo#14880) - test(pgo): determine test runnability at compile time (rust-lang/cargo#14874) - test: `requires` attribute accepts string literals for cmds (rust-lang/cargo#14875) - chore(deps): update msrv (3 versions) to v1.81 (rust-lang/cargo#14871) - chore(deps): update msrv (rust-lang/cargo#14867) - fix(fix): Migrate cargo script manifests across editions (rust-lang/cargo#14864) - feat(toml): Allow adding/removing from cargo scripts (rust-lang/cargo#14857) - Add future-incompat warning against keywords in cfgs and add raw-idents (rust-lang/cargo#14671) - test(build-std): download deps first (rust-lang/cargo#14861) - test(pgo): ensure PGO works (rust-lang/cargo#14859) - git-fetch-with-cli: Set `GIT_DIR` for bare repository compatibility (rust-lang/cargo#14860) - fix(build-std): always link to std when testing proc-macros (rust-lang/cargo#14850)
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.
What does this PR try to resolve?
This is a regression test to prevent issues like #7416.
The test only run on Linux,
as other platforms have different requirements for PGO,
or emit different PGO function missing warnings.
How should we test and review this PR?
Not sure how brittle it is. We can optionally run it only on Cargo's CI?
cc #14830