Skip to content

Commit

Permalink
RFC3239: Add tests for compact cfg(target(..))
Browse files Browse the repository at this point in the history
  • Loading branch information
Urgau committed May 24, 2022
1 parent 8345571 commit b9ae3db
Show file tree
Hide file tree
Showing 9 changed files with 152 additions and 0 deletions.
17 changes: 17 additions & 0 deletions src/test/ui/cfg/cfg-target-compact-errors.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// check-fail

#![feature(cfg_target_compact)]

#[cfg(target(o::o))]
//~^ ERROR `cfg` predicate key must be an identifier
fn one() {}

#[cfg(target(os = 8))]
//~^ ERROR literal in `cfg` predicate value must be a string
fn two() {}

#[cfg(target(os = "linux", pointer(width = "64")))]
//~^ ERROR invalid predicate `target_pointer`
fn three() {}

fn main() {}
22 changes: 22 additions & 0 deletions src/test/ui/cfg/cfg-target-compact-errors.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
error: `cfg` predicate key must be an identifier
--> $DIR/cfg-target-compact-errors.rs:5:14
|
LL | #[cfg(target(o::o))]
| ^^^^

error[E0565]: literal in `cfg` predicate value must be a string
--> $DIR/cfg-target-compact-errors.rs:9:19
|
LL | #[cfg(target(os = 8))]
| ^

error[E0537]: invalid predicate `target_pointer`
--> $DIR/cfg-target-compact-errors.rs:13:28
|
LL | #[cfg(target(os = "linux", pointer(width = "64")))]
| ^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 3 previous errors

Some errors have detailed explanations: E0537, E0565.
For more information about an error, try `rustc --explain E0537`.
10 changes: 10 additions & 0 deletions src/test/ui/cfg/cfg-target-compact.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// run-pass
#![feature(cfg_target_compact)]

#[cfg(target(os = "linux", pointer_width = "64"))]
pub fn main() {
}

#[cfg(not(target(os = "linux", pointer_width = "64")))]
pub fn main() {
}
15 changes: 15 additions & 0 deletions src/test/ui/check-cfg/compact-names.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// This test check that we correctly emit an warning for compact cfg
//
// check-pass
// compile-flags:--check-cfg=names() -Z unstable-options

#![feature(cfg_target_compact)]

#[cfg(target(os = "linux", arch = "arm"))]
pub fn expected() {}

#[cfg(target(os = "linux", architecture = "arm"))]
//~^ WARNING unexpected `cfg` condition name
pub fn unexpected() {}

fn main() {}
10 changes: 10 additions & 0 deletions src/test/ui/check-cfg/compact-names.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
warning: unexpected `cfg` condition name
--> $DIR/compact-names.rs:11:28
|
LL | #[cfg(target(os = "linux", architecture = "arm"))]
| ^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unexpected_cfgs)]` on by default

warning: 1 warning emitted

15 changes: 15 additions & 0 deletions src/test/ui/check-cfg/compact-values.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// This test check that we correctly emit an warning for compact cfg
//
// check-pass
// compile-flags:--check-cfg=values() -Z unstable-options

#![feature(cfg_target_compact)]

#[cfg(target(os = "linux", arch = "arm"))]
pub fn expected() {}

#[cfg(target(os = "linux", arch = "X"))]
//~^ WARNING unexpected `cfg` condition value
pub fn unexpected() {}

fn main() {}
11 changes: 11 additions & 0 deletions src/test/ui/check-cfg/compact-values.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
warning: unexpected `cfg` condition value
--> $DIR/compact-values.rs:11:28
|
LL | #[cfg(target(os = "linux", arch = "X"))]
| ^^^^^^^^^^
|
= note: `#[warn(unexpected_cfgs)]` on by default
= note: expected values for `target_arch` are: aarch64, arm, avr, bpf, hexagon, m68k, mips, mips64, msp430, nvptx64, powerpc, powerpc64, riscv32, riscv64, s390x, sparc, sparc64, wasm32, wasm64, x86, x86_64

warning: 1 warning emitted

13 changes: 13 additions & 0 deletions src/test/ui/feature-gates/feature-gate-cfg-target-compact.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#[cfg(target(os = "x"))] //~ ERROR compact `cfg(target(..))` is experimental
struct Foo(u64, u64);

#[cfg_attr(target(os = "x"), x)] //~ ERROR compact `cfg(target(..))` is experimental
struct Bar(u64, u64);

#[cfg(not(any(all(target(os = "x")))))] //~ ERROR compact `cfg(target(..))` is experimental
fn foo() {}

fn main() {
cfg!(target(os = "x"));
//~^ ERROR compact `cfg(target(..))` is experimental and subject to change
}
39 changes: 39 additions & 0 deletions src/test/ui/feature-gates/feature-gate-cfg-target-compact.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
error[E0658]: compact `cfg(target(..))` is experimental and subject to change
--> $DIR/feature-gate-cfg-target-compact.rs:1:7
|
LL | #[cfg(target(os = "x"))]
| ^^^^^^^^^^^^^^^^
|
= note: see issue #96901 <https://github.com/rust-lang/rust/issues/96901> for more information
= help: add `#![feature(cfg_target_compact)]` to the crate attributes to enable

error[E0658]: compact `cfg(target(..))` is experimental and subject to change
--> $DIR/feature-gate-cfg-target-compact.rs:4:12
|
LL | #[cfg_attr(target(os = "x"), x)]
| ^^^^^^^^^^^^^^^^
|
= note: see issue #96901 <https://github.com/rust-lang/rust/issues/96901> for more information
= help: add `#![feature(cfg_target_compact)]` to the crate attributes to enable

error[E0658]: compact `cfg(target(..))` is experimental and subject to change
--> $DIR/feature-gate-cfg-target-compact.rs:7:19
|
LL | #[cfg(not(any(all(target(os = "x")))))]
| ^^^^^^^^^^^^^^^^
|
= note: see issue #96901 <https://github.com/rust-lang/rust/issues/96901> for more information
= help: add `#![feature(cfg_target_compact)]` to the crate attributes to enable

error[E0658]: compact `cfg(target(..))` is experimental and subject to change
--> $DIR/feature-gate-cfg-target-compact.rs:11:10
|
LL | cfg!(target(os = "x"));
| ^^^^^^^^^^^^^^^^
|
= note: see issue #96901 <https://github.com/rust-lang/rust/issues/96901> for more information
= help: add `#![feature(cfg_target_compact)]` to the crate attributes to enable

error: aborting due to 4 previous errors

For more information about this error, try `rustc --explain E0658`.

0 comments on commit b9ae3db

Please sign in to comment.