Skip to content

Commit b7f673a

Browse files
committed
auto merge of #11784 : eminence/rust/fix_run_tests, r=alexcrichton
This test is designed to ensure that running a non-existent executable results in a correct error message (FileNotFound in this case of this test). However, if you try to run an executable that doesn't exist, and that requires searching through the $PATH, and one of the $PATH components is not readable, then a PermissionDenied error will be returned, instead of FileNotFound. Using an absolute path skips the $PATH search logic in exec, thus by-passing the logic in exec that would have returned a PermissionDenied In the specific case of my machine, /usr/bin/games was part of $PATH, but my user account wasn't in the games group (thus being unable to read /usr/bin/games) See the man pages for execv and execve for more details. I've tested this on Linux and OSX, and I am fairly certain that there will be no problems on Windows
2 parents 7ac516a + 506c71c commit b7f673a

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/libstd/run.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ mod tests {
360360
trapped_io_error = true;
361361
assert_eq!(e.kind, FileNotFound);
362362
}).inside(|| -> Option<run::ProcessOutput> {
363-
run::process_output("no-binary-by-this-name-should-exist", [])
363+
run::process_output("/no-binary-by-this-name-should-exist", [])
364364
});
365365
assert!(trapped_io_error);
366366
assert!(opt_outp.is_none());

0 commit comments

Comments
 (0)