Skip to content

Commit

Permalink
fmt trait tests
Browse files Browse the repository at this point in the history
  • Loading branch information
arcnmx committed Aug 26, 2019
1 parent d9819ca commit 248d6bb
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 0 deletions.
5 changes: 5 additions & 0 deletions test_suite/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,8 @@ edition = "2018"
name = "bitflags-test-no-implicit-prelude-2018"
path = "tests/no_implicit_prelude_2018.rs"
edition = "2018"

[[test]]
name = "bitflags-formatting"
path = "tests/formatting.rs"
edition = "2018"
74 changes: 74 additions & 0 deletions test_suite/tests/formatting.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
use enumflags2_derive::EnumFlags;

include!("../common.rs");

#[test]
fn debug_format() {
use enumflags2::BitFlags;

// Assert that our Debug output format meets expectations

assert_eq!(
format!("{:?}", BitFlags::<Test>::all()),
"BitFlags<Test>(0b1111, A | B | C | D)"
);

assert_eq!(
format!("{:?}", BitFlags::<Test>::empty()),
"BitFlags<Test>(0b0)"
);

assert_eq!(
format!("{:04x?}", BitFlags::<Test>::all()),
"BitFlags<Test>(0x0f, A | B | C | D)"
);

assert_eq!(
format!("{:04X?}", BitFlags::<Test>::all()),
"BitFlags<Test>(0x0F, A | B | C | D)"
);

// Also check alternate struct formatting

assert_eq!(
format!("{:#010?}", BitFlags::<Test>::all()),
"BitFlags<Test> {
bits: 0b00001111,
flags: A | B | C | D,
}"
);

assert_eq!(
format!("{:#?}", BitFlags::<Test>::empty()),
"BitFlags<Test> {
bits: 0b0,
}"
);
}

#[test]
fn format() {
use enumflags2::BitFlags;

// Assert BitFlags<T> impls fmt::{Binary, Octal, LowerHex, UpperHex}

assert_eq!(
format!("{:b}", BitFlags::<Test>::all()),
"1111"
);

assert_eq!(
format!("{:o}", BitFlags::<Test>::all()),
"17"
);

assert_eq!(
format!("{:x}", BitFlags::<Test>::all()),
"f"
);

assert_eq!(
format!("{:#04X}", BitFlags::<Test>::all()),
"0x0F"
);
}

0 comments on commit 248d6bb

Please sign in to comment.