| //! A small test library for ensuring `--stamp` data is correctly set at compile time. |
| |
| pub fn build_timestamp() -> &'static str { |
| env!("BUILD_TIMESTAMP") |
| } |
| |
| pub fn build_user() -> &'static str { |
| env!("BUILD_USER") |
| } |
| |
| #[cfg(test)] |
| mod test { |
| use super::*; |
| |
| #[cfg(any( |
| feature = "always_stamp", |
| feature = "consult_cmdline_value_is_true", |
| feature = "always_stamp_build_flag_true", |
| feature = "always_stamp_build_flag_false" |
| ))] |
| #[test] |
| fn stamp_resolved_for_library() { |
| assert!(!build_timestamp().contains("BUILD_TIMESTAMP")); |
| assert!(build_timestamp().chars().all(char::is_numeric)); |
| |
| assert!(!build_user().contains("BUILD_USER")); |
| } |
| |
| #[cfg(any( |
| feature = "always_stamp", |
| feature = "consult_cmdline_value_is_true", |
| feature = "always_stamp_build_flag_true", |
| feature = "always_stamp_build_flag_false" |
| ))] |
| #[test] |
| fn stamp_resolved_for_test() { |
| assert!(!env!("BUILD_TIMESTAMP").contains("BUILD_TIMESTAMP")); |
| assert!(env!("BUILD_TIMESTAMP").chars().all(char::is_numeric)); |
| |
| assert!(!env!("BUILD_USER").contains("BUILD_USER")); |
| } |
| |
| #[cfg(any( |
| feature = "never_stamp", |
| feature = "consult_cmdline_value_is_false", |
| feature = "never_stamp_build_flag_true", |
| feature = "never_stamp_build_flag_false" |
| ))] |
| #[test] |
| fn stamp_not_resolved_for_library() { |
| assert!(build_timestamp().contains("BUILD_TIMESTAMP")); |
| assert!(build_user().contains("BUILD_USER")); |
| } |
| |
| #[cfg(any( |
| feature = "never_stamp", |
| feature = "consult_cmdline_value_is_false", |
| feature = "never_stamp_build_flag_true", |
| feature = "never_stamp_build_flag_false" |
| ))] |
| #[test] |
| fn stamp_not_resolved_for_test() { |
| assert!(env!("BUILD_TIMESTAMP").contains("BUILD_TIMESTAMP")); |
| assert!(env!("BUILD_USER").contains("BUILD_USER")); |
| } |
| } |