Skip to content

Commit

Permalink
Auto merge of #11614 - ehuss:fix-unused-attr-warn, r=weihanglo
Browse files Browse the repository at this point in the history
Fix unused attribute on Windows.

The change introduced in #11610 is causing unused_attribute warnings on Windows because there are two `ignore` attributes when CARGO_PUBLIC_NETWORK_TESTS is not set. The solution here is to make `cargo_test` support a hard-coded option for an additional reason to ignore a test.

Ideally I think this would use something like a `cfg()` expression, but those can't really be evaluated within the proc-macro (without pulling in `cargo_platform`). Could also just `allow(unused_attributes)`, but that felt a little icky.
  • Loading branch information
bors committed Jan 22, 2023
2 parents af8ec14 + 9247e81 commit ca0557a
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 5 deletions.
3 changes: 3 additions & 0 deletions crates/cargo-test-macro/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,9 @@ pub fn cargo_test(attr: TokenStream, item: TokenStream) -> TokenStream {
s if s.starts_with("reason=") => {
explicit_reason = Some(s[7..].parse().unwrap());
}
s if s.starts_with("ignore_windows=") => {
set_ignore!(cfg!(windows), "{}", &s[16..s.len() - 1]);
}
_ => panic!("unknown rule {:?}", rule),
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/doc/contrib/src/tests/writing.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ The options it supports are:
These should work on Linux, macOS, and Windows where possible.
Unfortunately these tests are not run in CI for macOS or Windows (no Docker on macOS, and Windows does not support Linux images).
See [`crates/cargo-test-support/src/containers.rs`](https://github.com/rust-lang/cargo/blob/master/crates/cargo-test-support/src/containers.rs) for more on writing these tests.

* `ignore_windows="reason"` — Indicates that the test should be ignored on windows for the given reason.

#### Testing Nightly Features

Expand Down
6 changes: 2 additions & 4 deletions tests/testsuite/ssh.rs
Original file line number Diff line number Diff line change
Expand Up @@ -385,11 +385,10 @@ Caused by:
.run();
}

#[cargo_test(public_network_test)]
// For unknown reasons, this test occasionally fails on Windows with a
// LIBSSH2_ERROR_KEY_EXCHANGE_FAILURE error:
// failed to start SSH session: Unable to exchange encryption keys; class=Ssh (23)
#[cfg_attr(windows, ignore = "test is flaky on windows")]
#[cargo_test(public_network_test, ignore_windows = "test is flaky on windows")]
fn invalid_github_key() {
// A key for github.com in known_hosts should override the built-in key.
// This uses a bogus key which should result in an error.
Expand Down Expand Up @@ -420,11 +419,10 @@ fn invalid_github_key() {
.run();
}

#[cargo_test(public_network_test)]
// For unknown reasons, this test occasionally fails on Windows with a
// LIBSSH2_ERROR_KEY_EXCHANGE_FAILURE error:
// failed to start SSH session: Unable to exchange encryption keys; class=Ssh (23)
#[cfg_attr(windows, ignore = "test is flaky on windows")]
#[cargo_test(public_network_test, ignore_windows = "test is flaky on windows")]
fn bundled_github_works() {
// The bundled key for github.com works.
//
Expand Down

0 comments on commit ca0557a

Please sign in to comment.