1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
// spell-checker:ignore (API) nodename osname sysname
use platform_info::*;
#[test]
fn platform() -> Result<(), String> {
let info = PlatformInfo::new().unwrap();
let sysname = info.sysname().to_string_lossy();
let nodename = info.nodename().to_string_lossy();
let release = info.release().to_string_lossy();
let version = info.version().to_string_lossy();
let machine = info.machine().to_string_lossy();
let osname = info.osname().to_string_lossy();
assert!(!sysname.is_empty());
assert!(!nodename.is_empty());
assert!(!release.is_empty());
assert!(!version.is_empty());
assert!(!machine.is_empty());
assert!(!osname.is_empty());
// assert!(false);
Ok(())
}
#[test]
fn platform_no_invisible_contents() -> Result<(), String> {
let info = PlatformInfo::new().unwrap();
let sysname = info.sysname().to_string_lossy();
let nodename = info.nodename().to_string_lossy();
let release = info.release().to_string_lossy();
let version = info.version().to_string_lossy();
let machine = info.machine().to_string_lossy();
let osname = info.osname().to_string_lossy();
let s = format!("sysname='{sysname}';nodename='{nodename}';release='{release}';version='{version}';machine='{machine}';osname='{osname}'");
println!("s = [{}]\"{}\"", s.len(), s);
// let re = regex::Regex::new("[^[[:print:]]]").unwrap(); // matches invisible (and emojis)
let re = regex::Regex::new("[^[[:print:]]\\p{Other_Symbol}]").unwrap(); // matches invisible only (not emojis)
assert_eq!(re.find(&s), None);
Ok(())
}
#[test]
fn platform_clone() -> Result<(), String> {
let info = PlatformInfo::new().unwrap();
#[allow(clippy::redundant_clone)] // ignore `clippy::redundant_clone` warning for direct testing
let info_copy = info.clone();
println!("{info:?}");
assert_eq!(info_copy, info);
Ok(())
}
|