about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorMark Rousskov <mark.simulacrum@gmail.com>2019-07-03 09:59:16 -0400
committerGitHub <noreply@github.com>2019-07-03 09:59:16 -0400
commit05704e80bc2da5a6370ac263ebf5bc0f5085c290 (patch)
tree4c14499df21e0bc5c428e6fa549febff65c0600d /src/libstd
parentd9dfed8ca2edfcc2a845eca35f12c085fb3fb20f (diff)
parent2a375827ab56900bf550161ee08ada664e68b267 (diff)
downloadrust-05704e80bc2da5a6370ac263ebf5bc0f5085c290.tar.gz
rust-05704e80bc2da5a6370ac263ebf5bc0f5085c290.zip
Rollup merge of #62183 - alexcrichton:fix-tests, r=nikomatsakis
std: Move a process test out of libstd

This commit moves a test out of libstd which is causing deadlocks on
musl on CI. Looks like the recent update in musl versions brings in some
internal updates to musl which makes `setgid` and `setuid` invalid to
call after a `fork` in a multithreaded program. The issue seen here is
that the child thread was attempting to grab a lock held by a
nonexistent thread, meaning that the child process simply deadlocked
causing the whole test to deadlock.

This commit moves the test to its own file with no threads which should
work.
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/process.rs27
1 files changed, 0 insertions, 27 deletions
diff --git a/src/libstd/process.rs b/src/libstd/process.rs
index a568f466637..000f80f99e7 100644
--- a/src/libstd/process.rs
+++ b/src/libstd/process.rs
@@ -1765,33 +1765,6 @@ mod tests {
         assert_eq!(out, "foobar\n");
     }
 
-
-    #[test]
-    #[cfg_attr(target_os = "android", ignore)]
-    #[cfg(unix)]
-    fn uid_works() {
-        use crate::os::unix::prelude::*;
-
-        let mut p = Command::new("/bin/sh")
-                            .arg("-c").arg("true")
-                            .uid(unsafe { libc::getuid() })
-                            .gid(unsafe { libc::getgid() })
-                            .spawn().unwrap();
-        assert!(p.wait().unwrap().success());
-    }
-
-    #[test]
-    #[cfg_attr(target_os = "android", ignore)]
-    #[cfg(unix)]
-    fn uid_to_root_fails() {
-        use crate::os::unix::prelude::*;
-
-        // if we're already root, this isn't a valid test. Most of the bots run
-        // as non-root though (android is an exception).
-        if unsafe { libc::getuid() == 0 } { return }
-        assert!(Command::new("/bin/ls").uid(0).gid(0).spawn().is_err());
-    }
-
     #[test]
     #[cfg_attr(target_os = "android", ignore)]
     fn test_process_status() {