about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/test/ui-fulldeps/compiler-calls.rs1
-rw-r--r--src/test/ui-fulldeps/mod_dir_path_canonicalized.rs1
-rw-r--r--src/tools/compiletest/src/header.rs1
-rw-r--r--src/tools/remote-test-client/src/main.rs2
-rw-r--r--src/tools/remote-test-server/src/main.rs39
5 files changed, 32 insertions, 12 deletions
diff --git a/src/test/ui-fulldeps/compiler-calls.rs b/src/test/ui-fulldeps/compiler-calls.rs
index bd9113c7079..e97dcab6ae5 100644
--- a/src/test/ui-fulldeps/compiler-calls.rs
+++ b/src/test/ui-fulldeps/compiler-calls.rs
@@ -3,6 +3,7 @@
 
 // ignore-cross-compile
 // ignore-stage1
+// ignore-remote
 
 #![feature(rustc_private)]
 
diff --git a/src/test/ui-fulldeps/mod_dir_path_canonicalized.rs b/src/test/ui-fulldeps/mod_dir_path_canonicalized.rs
index 3c5738f574c..ff7bbafe7c2 100644
--- a/src/test/ui-fulldeps/mod_dir_path_canonicalized.rs
+++ b/src/test/ui-fulldeps/mod_dir_path_canonicalized.rs
@@ -1,6 +1,7 @@
 // run-pass
 // Testing that a librustc_ast can parse modules with canonicalized base path
 // ignore-cross-compile
+// ignore-remote
 
 #![feature(rustc_private)]
 
diff --git a/src/tools/compiletest/src/header.rs b/src/tools/compiletest/src/header.rs
index cb648db8830..9d1940dd4d6 100644
--- a/src/tools/compiletest/src/header.rs
+++ b/src/tools/compiletest/src/header.rs
@@ -853,6 +853,7 @@ impl Config {
             name == util::get_pointer_width(&self.target) ||    // pointer width
             name == self.stage_id.split('-').next().unwrap() || // stage
             (self.target != self.host && name == "cross-compile") ||
+            (self.remote_test_client.is_some() && name == "remote") ||
             match self.compare_mode {
                 Some(CompareMode::Nll) => name == "compare-mode-nll",
                 Some(CompareMode::Polonius) => name == "compare-mode-polonius",
diff --git a/src/tools/remote-test-client/src/main.rs b/src/tools/remote-test-client/src/main.rs
index 259477e9a1c..efc29163455 100644
--- a/src/tools/remote-test-client/src/main.rs
+++ b/src/tools/remote-test-client/src/main.rs
@@ -224,7 +224,7 @@ fn run(support_lib_count: usize, exe: String, all_args: Vec<String>) {
     // by the client.
     for (k, v) in env::vars() {
         match &k[..] {
-            "PATH" | "LD_LIBRARY_PATH" | "PWD" => continue,
+            "PATH" | "LD_LIBRARY_PATH" | "PWD" | "RUST_TEST_TMPDIR" => continue,
             _ => {}
         }
         t!(client.write_all(k.as_bytes()));
diff --git a/src/tools/remote-test-server/src/main.rs b/src/tools/remote-test-server/src/main.rs
index e7eff35e557..8c56910e2df 100644
--- a/src/tools/remote-test-server/src/main.rs
+++ b/src/tools/remote-test-server/src/main.rs
@@ -41,6 +41,7 @@ macro_rules! t {
 
 static TEST: AtomicUsize = AtomicUsize::new(0);
 
+#[derive(Copy, Clone)]
 struct Config {
     pub remote: bool,
     pub verbose: bool,
@@ -71,6 +72,12 @@ impl Config {
     }
 }
 
+fn print_verbose(s: &str, conf: Config) {
+    if conf.verbose {
+        println!("{}", s);
+    }
+}
+
 fn main() {
     println!("starting test server");
 
@@ -83,16 +90,19 @@ fn main() {
     };
 
     let listener = t!(TcpListener::bind(bind_addr));
-    let work: PathBuf = if cfg!(target_os = "android") {
-        "/data/tmp/work".into()
+    let (work, tmp): (PathBuf, PathBuf) = if cfg!(target_os = "android") {
+        ("/data/tmp/work".into(), "/data/tmp/work/tmp".into())
     } else {
-        let mut temp_dir = env::temp_dir();
-        temp_dir.push("work");
-        temp_dir
+        let mut work_dir = env::temp_dir();
+        work_dir.push("work");
+        let mut tmp_dir = work_dir.clone();
+        tmp_dir.push("tmp");
+        (work_dir, tmp_dir)
     };
-    println!("listening!");
+    println!("listening on {}!", bind_addr);
 
     t!(fs::create_dir_all(&work));
+    t!(fs::create_dir_all(&tmp));
 
     let lock = Arc::new(Mutex::new(()));
 
@@ -103,22 +113,25 @@ fn main() {
             continue;
         }
         if &buf[..] == b"ping" {
+            print_verbose("Received ping", config);
             t!(socket.write_all(b"pong"));
         } else if &buf[..] == b"push" {
-            handle_push(socket, &work);
+            handle_push(socket, &work, config);
         } else if &buf[..] == b"run " {
             let lock = lock.clone();
             let work = work.clone();
-            thread::spawn(move || handle_run(socket, &work, &lock));
+            let tmp = tmp.clone();
+            thread::spawn(move || handle_run(socket, &work, &tmp, &lock, config));
         } else {
             panic!("unknown command {:?}", buf);
         }
     }
 }
 
-fn handle_push(socket: TcpStream, work: &Path) {
+fn handle_push(socket: TcpStream, work: &Path, config: Config) {
     let mut reader = BufReader::new(socket);
-    recv(&work, &mut reader);
+    let dst = recv(&work, &mut reader);
+    print_verbose(&format!("push {:#?}", dst), config);
 
     let mut socket = reader.into_inner();
     t!(socket.write_all(b"ack "));
@@ -134,7 +147,7 @@ impl Drop for RemoveOnDrop<'_> {
     }
 }
 
-fn handle_run(socket: TcpStream, work: &Path, lock: &Mutex<()>) {
+fn handle_run(socket: TcpStream, work: &Path, tmp: &Path, lock: &Mutex<()>, config: Config) {
     let mut arg = Vec::new();
     let mut reader = BufReader::new(socket);
 
@@ -201,6 +214,7 @@ fn handle_run(socket: TcpStream, work: &Path, lock: &Mutex<()>) {
     // binary is and then we'll download it all to the exe path we calculated
     // earlier.
     let exe = recv(&path, &mut reader);
+    print_verbose(&format!("run {:#?}", exe), config);
 
     let mut cmd = Command::new(&exe);
     cmd.args(args);
@@ -226,6 +240,9 @@ fn handle_run(socket: TcpStream, work: &Path, lock: &Mutex<()>) {
         cmd.env("LD_LIBRARY_PATH", format!("{}:{}", work.display(), path.display()));
     }
 
+    // Some tests assume RUST_TEST_TMPDIR exists
+    cmd.env("RUST_TEST_TMPDIR", tmp.to_owned());
+
     // Spawn the child and ferry over stdout/stderr to the socket in a framed
     // fashion (poor man's style)
     let mut child =