Skip to content

Commit 00fe7e1

Browse files
committed
tests ~ expand and simplify tests for improved coverage
1 parent 27b70c0 commit 00fe7e1

File tree

5 files changed

+96
-124
lines changed

5 files changed

+96
-124
lines changed

src/platform/unix.rs

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -194,16 +194,14 @@ mod unix_safe {
194194
#[test]
195195
fn test_osname() {
196196
let info = PlatformInfo::new().unwrap();
197-
let osname = match info.osname().to_os_string().into_string() {
198-
Ok(s) => {
199-
println!("osname = [{}]'{}'", s.len(), s);
200-
s
201-
}
202-
Err(os_s) => {
203-
let s = os_s.to_string_lossy();
204-
println!("osname = [{}]'{:?}' => '{}'", os_s.len(), os_s, s);
205-
String::from(s)
206-
}
207-
};
197+
let osname = info.osname().to_string_lossy();
208198
assert!(osname.starts_with(crate::HOST_OS_NAME));
209199
}
200+
201+
#[test]
202+
fn structure_clone() {
203+
let info = PlatformInfo::new().unwrap();
204+
println!("{:?}", info);
205+
let info_copy = info.clone();
206+
assert_eq!(info_copy, info);
207+
}

src/platform/unknown.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,3 +68,11 @@ fn test_unknown() {
6868
assert_eq!(platform_info.machine().to_string_lossy(), "unknown");
6969
assert_eq!(platform_info.osname().to_string_lossy(), "unknown");
7070
}
71+
72+
#[test]
73+
fn structure_clone() {
74+
let info = PlatformInfo::new().unwrap();
75+
println!("{:?}", info);
76+
let info_copy = info.clone();
77+
assert_eq!(info_copy, info);
78+
}

src/platform/windows.rs

Lines changed: 32 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -528,25 +528,17 @@ fn test_sysname() {
528528
let info = PlatformInfo::new().unwrap();
529529
let sysname = info.sysname().to_os_string();
530530
let expected = std::env::var_os("OS").unwrap_or_else(|| OsString::from("Windows_NT"));
531+
println!("sysname=[{}]'{:#?}'", sysname.len(), sysname);
531532
assert_eq!(sysname, expected);
532533
}
533534

534535
#[test]
535536
#[allow(non_snake_case)]
536537
fn test_nodename_no_trailing_NUL() {
537538
let info = PlatformInfo::new().unwrap();
538-
let nodename = match info.nodename().to_os_string().into_string() {
539-
Ok(s) => {
540-
println!("nodename = [{}]'{}'", s.len(), s);
541-
s
542-
}
543-
Err(os_s) => {
544-
let s = os_s.to_string_lossy();
545-
println!("nodename = [{}]'{:?}' => '{}'", os_s.len(), os_s, s);
546-
String::from(s)
547-
}
548-
};
539+
let nodename = info.nodename().to_string_lossy();
549540
let trimmed = nodename.trim().trim_end_matches(|c| c == '\0');
541+
println!("nodename=[{}]'{}'", nodename.len(), nodename);
550542
assert_eq!(nodename, trimmed);
551543
}
552544

@@ -578,35 +570,17 @@ fn test_machine() {
578570
println!("target={:#?}", target);
579571

580572
let info = PlatformInfo::new().unwrap();
581-
let machine = match info.machine().to_os_string().into_string() {
582-
Ok(s) => {
583-
println!("machine = [{}]'{:?}'", s.len(), s);
584-
s
585-
}
586-
Err(os_s) => {
587-
let s = os_s.to_string_lossy();
588-
println!("machine = [{}]'{:?}' => '{:?}'", os_s.len(), os_s, s);
589-
String::from(s)
590-
}
591-
};
573+
let machine = info.machine().to_string_lossy();
574+
println!("machine=[{}]'{}'", machine.len(), machine);
592575

593576
assert!(target.contains(&&machine[..]));
594577
}
595578

596579
#[test]
597580
fn test_osname() {
598581
let info = PlatformInfo::new().unwrap();
599-
let osname = match info.osname().to_os_string().into_string() {
600-
Ok(s) => {
601-
println!("osname = [{}]'{:?}'", s.len(), s);
602-
s
603-
}
604-
Err(os_s) => {
605-
let s = os_s.to_string_lossy();
606-
println!("osname = [{}]'{:?}' => '{:?}'", os_s.len(), os_s, s);
607-
String::from(s)
608-
}
609-
};
582+
let osname = info.osname().to_string_lossy();
583+
println!("osname=[{}]'{}'", osname.len(), osname);
610584
assert!(osname.starts_with(crate::HOST_OS_NAME));
611585
}
612586

@@ -749,3 +723,28 @@ fn test_known_winos_names() {
749723
"Windows 11"
750724
);
751725
}
726+
727+
#[test]
728+
fn structure_clone() {
729+
let info = PlatformInfo::new().unwrap();
730+
println!("{:?}", info);
731+
let info_copy = info.clone();
732+
assert_eq!(info_copy, info);
733+
734+
let mmbr = MmbrVersion {
735+
major: 1,
736+
minor: 2,
737+
build: 3,
738+
release: 4,
739+
};
740+
println!("{:?}", mmbr);
741+
let mmbr_copy = mmbr.clone();
742+
assert_eq!(mmbr_copy, mmbr);
743+
744+
let fvi = WinApiFileVersionInfo {
745+
data: vec![1, 2, 3, 4],
746+
};
747+
println!("{:?}", fvi);
748+
let fvi_copy = fvi.clone();
749+
assert_eq!(fvi_copy, fvi);
750+
}

src/platform/windows_safe.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -523,3 +523,27 @@ pub fn NTDLL_RtlGetVersion() -> Result<OSVERSIONINFOEXW, Box<dyn Error>> {
523523
}
524524

525525
//#endregion (unsafe code)
526+
527+
//=== Tests
528+
529+
#[test]
530+
fn structure_clone() {
531+
let ffi = VS_FIXEDFILEINFO {
532+
dwSignature: 0,
533+
dwStrucVersion: 0,
534+
dwFileVersionMS: 0,
535+
dwFileVersionLS: 0,
536+
dwProductVersionMS: 0,
537+
dwProductVersionLS: 0,
538+
dwFileFlagsMask: 0,
539+
dwFileFlags: 0,
540+
dwFileOS: 0,
541+
dwFileType: 0,
542+
dwFileSubtype: 0,
543+
dwFileDateMS: 0,
544+
dwFileDateLS: 0,
545+
};
546+
println!("{:?}", ffi);
547+
let ffi_copy = ffi.clone();
548+
assert_eq!(ffi_copy, ffi);
549+
}

tests/integration_test.rs

Lines changed: 23 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -6,77 +6,14 @@ use platform_info::*;
66

77
#[test]
88
fn platform() -> Result<(), String> {
9-
let uname = match PlatformInfo::new() {
10-
Ok(info) => info,
11-
Err(error) => panic!("{}", error),
12-
};
9+
let info = PlatformInfo::new().unwrap();
1310

14-
let sysname = match uname.sysname().to_os_string().into_string() {
15-
Ok(s) => {
16-
println!("sysname = [{}]'{}'", s.len(), s);
17-
s
18-
}
19-
Err(os_s) => {
20-
let s = os_s.to_string_lossy();
21-
println!("sysname = [{}]'{:?}' => '{}'", os_s.len(), os_s, s);
22-
String::from(s)
23-
}
24-
};
25-
let nodename = match uname.nodename().to_os_string().into_string() {
26-
Ok(s) => {
27-
println!("nodename = [{}]'{}'", s.len(), s);
28-
s
29-
}
30-
Err(os_s) => {
31-
let s = os_s.to_string_lossy();
32-
println!("nodename = [{}]'{:?}' => '{}'", os_s.len(), os_s, s);
33-
String::from(s)
34-
}
35-
};
36-
let release = match uname.release().to_os_string().into_string() {
37-
Ok(s) => {
38-
println!("release = [{}]'{}'", s.len(), s);
39-
s
40-
}
41-
Err(os_s) => {
42-
let s = os_s.to_string_lossy();
43-
println!("release = [{}]'{:?}' => '{}'", os_s.len(), os_s, s);
44-
String::from(s)
45-
}
46-
};
47-
let version = match uname.version().to_os_string().into_string() {
48-
Ok(s) => {
49-
println!("version = [{}]'{}'", s.len(), s);
50-
s
51-
}
52-
Err(os_s) => {
53-
let s = os_s.to_string_lossy();
54-
println!("version = [{}]'{:?}' => '{}'", os_s.len(), os_s, s);
55-
String::from(s)
56-
}
57-
};
58-
let machine = match uname.machine().to_os_string().into_string() {
59-
Ok(s) => {
60-
println!("machine = [{}]'{}'", s.len(), s);
61-
s
62-
}
63-
Err(os_s) => {
64-
let s = os_s.to_string_lossy();
65-
println!("machine = [{}]'{:?}' => '{}'", os_s.len(), os_s, s);
66-
String::from(s)
67-
}
68-
};
69-
let osname = match uname.osname().to_os_string().into_string() {
70-
Ok(s) => {
71-
println!("osname = [{}]'{}'", s.len(), s);
72-
s
73-
}
74-
Err(os_s) => {
75-
let s = os_s.to_string_lossy();
76-
println!("osname = [{}]'{:?}' => '{}'", os_s.len(), os_s, s);
77-
String::from(s)
78-
}
79-
};
11+
let sysname = info.sysname().to_string_lossy();
12+
let nodename = info.nodename().to_string_lossy();
13+
let release = info.release().to_string_lossy();
14+
let version = info.version().to_string_lossy();
15+
let machine = info.machine().to_string_lossy();
16+
let osname = info.osname().to_string_lossy();
8017

8118
assert!(!sysname.is_empty());
8219
assert!(!nodename.is_empty());
@@ -91,17 +28,14 @@ fn platform() -> Result<(), String> {
9128

9229
#[test]
9330
fn platform_no_invisible_contents() -> Result<(), String> {
94-
let uname = match PlatformInfo::new() {
95-
Ok(info) => info,
96-
Err(error) => panic!("{}", error),
97-
};
31+
let info = PlatformInfo::new().unwrap();
9832

99-
let sysname = uname.sysname().to_string_lossy();
100-
let nodename = uname.nodename().to_string_lossy();
101-
let release = uname.release().to_string_lossy();
102-
let version = uname.version().to_string_lossy();
103-
let machine = uname.machine().to_string_lossy();
104-
let osname = uname.osname().to_string_lossy();
33+
let sysname = info.sysname().to_string_lossy();
34+
let nodename = info.nodename().to_string_lossy();
35+
let release = info.release().to_string_lossy();
36+
let version = info.version().to_string_lossy();
37+
let machine = info.machine().to_string_lossy();
38+
let osname = info.osname().to_string_lossy();
10539

10640
let s = format!("sysname='{sysname}';nodename='{nodename}';release='{release}';version='{version}';machine='{machine}';osname='{osname}'");
10741
println!("s = [{}]\"{}\"", s.len(), s);
@@ -112,3 +46,12 @@ fn platform_no_invisible_contents() -> Result<(), String> {
11246

11347
Ok(())
11448
}
49+
50+
#[test]
51+
fn platform_clone() -> Result<(), String> {
52+
let info = PlatformInfo::new().unwrap();
53+
let info_copy = info.clone();
54+
println!("{:?}", info);
55+
assert_eq!(info_copy, info);
56+
Ok(())
57+
}

0 commit comments

Comments
 (0)