From 4c5e42ef8ff5506675301cac0ad14ab31bcb205a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesper=20H=C3=A5kansson?= Date: Sun, 27 Jan 2019 13:57:57 +0100 Subject: [PATCH] test(binaryinstall): Windows specific tests --- binary-install/tests/all/download.rs | 54 ++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/binary-install/tests/all/download.rs b/binary-install/tests/all/download.rs index 4c722be..d65bfb8 100644 --- a/binary-install/tests/all/download.rs +++ b/binary-install/tests/all/download.rs @@ -29,7 +29,8 @@ fn it_returns_binary_name_for_unix() { } #[test] -fn it_bails_if_not_file() { +#[cfg(not(windows))] +fn it_bails_if_not_file_for_unix() { let binary_name = "wasm-pack"; let dir = tempfile::TempDir::new().unwrap(); @@ -51,7 +52,31 @@ fn it_bails_if_not_file() { } #[test] -fn it_bails_if_not_executable() { +#[cfg(windows)] +fn it_bails_if_not_file_for_windows() { + let binary_name = "wasm-pack.exe"; + + let dir = tempfile::TempDir::new().unwrap(); + let download = Download::at(dir.path()); + + let full_path = dir.path().join(binary_name); + + let mut options = OpenOptions::new(); + options.create(true); + options.write(true); + + let binary = download.binary(binary_name); + + assert!(binary.is_err()); + assert_eq!( + format!("{} binary does not exist", full_path.to_str().unwrap()), + binary.unwrap_err().to_string() + ); +} + +#[test] +#[cfg(not(windows))] +fn it_bails_if_not_executable_for_unix() { let binary_name = "wasm-pack"; let dir = tempfile::TempDir::new().unwrap(); @@ -73,3 +98,28 @@ fn it_bails_if_not_executable() { binary.unwrap_err().to_string() ); } + +#[test] +#[cfg(windows)] +fn it_bails_if_not_executable_for_windows() { + let binary_name = "wasm-pack.exe"; + + let dir = tempfile::TempDir::new().unwrap(); + let download = Download::at(dir.path()); + + let full_path = dir.path().join(binary_name); + + let mut options = OpenOptions::new(); + options.create(true); + options.write(true); + + options.open(&full_path).unwrap(); + + let binary = download.binary(binary_name); + + assert!(binary.is_err()); + assert_eq!( + format!("{} is not executable", full_path.to_str().unwrap()), + binary.unwrap_err().to_string() + ); +}