diff options
| author | Peter Atashian <retep998@gmail.com> | 2016-12-22 02:47:09 -0500 |
|---|---|---|
| committer | Peter Atashian <retep998@gmail.com> | 2016-12-22 06:43:43 -0500 |
| commit | 23cfcddd775e5e4b3888033b65d90a0f6c4c3506 (patch) | |
| tree | 9bb3b307df0a5f0419a70bef73b61d20e6651009 /src/libstd | |
| parent | c217ab6c8dc1a305304b00a414be5f39ea6a2c81 (diff) | |
| download | rust-23cfcddd775e5e4b3888033b65d90a0f6c4c3506.tar.gz rust-23cfcddd775e5e4b3888033b65d90a0f6c4c3506.zip | |
Fix fs tests on Windows systems with non-english locales.
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/fs.rs | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/src/libstd/fs.rs b/src/libstd/fs.rs index 176b5f66fc4..d15446e49ac 100644 --- a/src/libstd/fs.rs +++ b/src/libstd/fs.rs @@ -1767,6 +1767,16 @@ mod tests { } ) } + #[cfg(windows)] + macro_rules! error { ($e:expr, $s:expr) => ( + match $e { + Ok(_) => panic!("Unexpected success. Should've been: {:?}", $s), + Err(ref err) => assert!(err.raw_os_error() == Some($s), + format!("`{}` did not have a code of `{}`", err, $s)) + } + ) } + + #[cfg(unix)] macro_rules! error { ($e:expr, $s:expr) => ( match $e { Ok(_) => panic!("Unexpected success. Should've been: {:?}", $s), @@ -1787,12 +1797,9 @@ mod tests { match symlink_file(r"nonexisting_target", link) { Ok(_) => true, - Err(ref err) => - if err.to_string().contains("A required privilege is not held by the client.") { - false - } else { - true - } + // ERROR_PRIVILEGE_NOT_HELD = 1314 + Err(ref err) if err.raw_os_error() == Some(1314) => false, + Err(_) => true, } } @@ -1823,12 +1830,10 @@ mod tests { let filename = &tmpdir.join("file_that_does_not_exist.txt"); let result = File::open(filename); - if cfg!(unix) { - error!(result, "No such file or directory"); - } - if cfg!(windows) { - error!(result, "The system cannot find the file specified"); - } + #[cfg(unix)] + error!(result, "No such file or directory"); + #[cfg(windows)] + error!(result, 2); // ERROR_FILE_NOT_FOUND } #[test] @@ -1838,12 +1843,10 @@ mod tests { let result = fs::remove_file(filename); - if cfg!(unix) { - error!(result, "No such file or directory"); - } - if cfg!(windows) { - error!(result, "The system cannot find the file specified"); - } + #[cfg(unix)] + error!(result, "No such file or directory"); + #[cfg(windows)] + error!(result, 2); // ERROR_FILE_NOT_FOUND } #[test] @@ -2598,8 +2601,10 @@ mod tests { let mut a = OO::new(); a.append(true); let mut ra = OO::new(); ra.read(true).append(true); - let invalid_options = if cfg!(windows) { "The parameter is incorrect" } - else { "Invalid argument" }; + #[cfg(windows)] + let invalid_options = 87; // ERROR_INVALID_PARAMETER + #[cfg(unix)] + let invalid_options = "Invalid argument"; // Test various combinations of creation modes and access modes. // |
