about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/run-pass/issue-15149.rs4
-rw-r--r--src/test/run-pass/issue-16272.rs45
2 files changed, 46 insertions, 3 deletions
diff --git a/src/test/run-pass/issue-15149.rs b/src/test/run-pass/issue-15149.rs
index d76a7109ced..cb4410cc1aa 100644
--- a/src/test/run-pass/issue-15149.rs
+++ b/src/test/run-pass/issue-15149.rs
@@ -18,9 +18,7 @@ use std::io::{TempDir, Command, fs};
 use std::os;
 use std::task::TaskBuilder;
 
-// FIXME(#15149) libgreen still needs to be update. There is an open PR for it
-//               but it is not yet merged.
-// green_start!(main)
+green_start!(main)
 
 fn main() {
     // If we're the child, make sure we were invoked correctly
diff --git a/src/test/run-pass/issue-16272.rs b/src/test/run-pass/issue-16272.rs
new file mode 100644
index 00000000000..86427f5e9dd
--- /dev/null
+++ b/src/test/run-pass/issue-16272.rs
@@ -0,0 +1,45 @@
+// Copyright 2014 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.
+
+#![feature(phase)]
+#[phase(plugin)]
+extern crate green;
+extern crate native;
+
+use native::NativeTaskBuilder;
+use std::io::{process, Command};
+use std::os;
+use std::task::TaskBuilder;
+
+green_start!(main)
+
+fn main() {
+    let len = os::args().len();
+
+    if len == 1 {
+        test();
+        let (tx, rx) = channel();
+        TaskBuilder::new().native().spawn(proc() {
+            tx.send(test());
+        });
+        rx.recv();
+    } else {
+        assert_eq!(len, 3);
+    }
+}
+
+fn test() {
+    let status = Command::new(os::self_exe_name().unwrap())
+                         .arg("foo").arg("")
+                         .stdout(process::InheritFd(1))
+                         .stderr(process::InheritFd(2))
+                         .status().unwrap();
+    assert!(status.success());
+}