]> git.lizzy.rs Git - rust.git/commitdiff
Add run-make test for Command::spawn on Windows
authorOliver Middleton <olliemail27@gmail.com>
Mon, 5 Jun 2017 16:57:32 +0000 (17:57 +0100)
committerOliver Middleton <olliemail27@gmail.com>
Mon, 5 Jun 2017 16:57:32 +0000 (17:57 +0100)
Make sure args aren't interpreted as part of the program name.

src/test/run-make/windows-spawn/Makefile [new file with mode: 0644]
src/test/run-make/windows-spawn/hello.rs [new file with mode: 0644]
src/test/run-make/windows-spawn/spawn.rs [new file with mode: 0644]

diff --git a/src/test/run-make/windows-spawn/Makefile b/src/test/run-make/windows-spawn/Makefile
new file mode 100644 (file)
index 0000000..f0d4242
--- /dev/null
@@ -0,0 +1,14 @@
+-include ../tools.mk
+
+ifdef IS_WINDOWS
+
+all:
+       $(RUSTC) -o "$(TMPDIR)/hopefullydoesntexist bar.exe" hello.rs
+       $(RUSTC) spawn.rs
+       $(TMPDIR)/spawn.exe
+
+else
+
+all:
+
+endif
diff --git a/src/test/run-make/windows-spawn/hello.rs b/src/test/run-make/windows-spawn/hello.rs
new file mode 100644 (file)
index 0000000..b177f41
--- /dev/null
@@ -0,0 +1,13 @@
+// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+fn main() {
+    println!("Hello World!");
+}
diff --git a/src/test/run-make/windows-spawn/spawn.rs b/src/test/run-make/windows-spawn/spawn.rs
new file mode 100644 (file)
index 0000000..2913cbe
--- /dev/null
@@ -0,0 +1,22 @@
+// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+use std::io::ErrorKind;
+use std::process::Command;
+
+fn main() {
+    // Make sure it doesn't try to run "hopefullydoesntexist bar.exe".
+    assert_eq!(Command::new("hopefullydoesntexist")
+                   .arg("bar")
+                   .spawn()
+                   .unwrap_err()
+                   .kind(),
+               ErrorKind::NotFound);
+}