Skip to content

Commit

Permalink
Auto merge of #38536 - retep998:flauschige-kaninchen, r=petrochenkov
Browse files Browse the repository at this point in the history
Fix fs tests on Windows systems with non-english locales.

Fixes #34628

r? @alexcrichton
  • Loading branch information
bors committed Dec 26, 2016
2 parents 5752eae + 23cfcdd commit 8493dbe
Showing 1 changed file with 25 additions and 20 deletions.
45 changes: 25 additions & 20 deletions src/libstd/fs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1799,6 +1799,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),
Expand All @@ -1819,12 +1829,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,
}
}

Expand Down Expand Up @@ -1855,12 +1862,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]
Expand All @@ -1870,12 +1875,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]
Expand Down Expand Up @@ -2630,8 +2633,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.
//
Expand Down

0 comments on commit 8493dbe

Please sign in to comment.