about summary refs log tree commit diff
path: root/src/libstd/run.rs
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2013-10-06 15:07:27 -0700
committerAlex Crichton <alex@alexcrichton.com>2013-10-10 03:38:51 -0700
commitff95904c488f573bfd07e94a0d456e4d35f325ce (patch)
treeb9eb8189e87458018d39a65edbb86b28966fb358 /src/libstd/run.rs
parentb07ab1fe4baa584401fa17a7ba20bea8c97c5043 (diff)
downloadrust-ff95904c488f573bfd07e94a0d456e4d35f325ce.tar.gz
rust-ff95904c488f573bfd07e94a0d456e4d35f325ce.zip
Remove usage of io::FILE_writer
Diffstat (limited to 'src/libstd/run.rs')
-rw-r--r--src/libstd/run.rs25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/libstd/run.rs b/src/libstd/run.rs
index 38fb597f296..8712d01aae9 100644
--- a/src/libstd/run.rs
+++ b/src/libstd/run.rs
@@ -307,7 +307,6 @@ pub fn process_output(prog: &str, args: &[~str]) -> ProcessOutput {
 
 #[cfg(test)]
 mod tests {
-    use io;
     use libc::c_int;
     use option::{Option, None, Some};
     use os;
@@ -315,6 +314,8 @@ mod tests {
     use run;
     use str;
     use unstable::running_on_valgrind;
+    use rt::io::native::file;
+    use rt::io::{Writer, Reader};
 
     #[test]
     #[cfg(not(target_os="android"))]
@@ -412,21 +413,21 @@ mod tests {
     }
 
     fn writeclose(fd: c_int, s: &str) {
-        let writer = io::fd_writer(fd, false);
-        writer.write_str(s);
-        os::close(fd);
+        let mut writer = file::FileDesc::new(fd);
+        writer.write(s.as_bytes());
     }
 
     fn readclose(fd: c_int) -> ~str {
-        #[fixed_stack_segment]; #[inline(never)];
-
-        unsafe {
-            let file = os::fdopen(fd);
-            let reader = io::FILE_reader(file, false);
-            let buf = reader.read_whole_stream();
-            os::fclose(file);
-            str::from_utf8(buf)
+        let mut res = ~[];
+        let mut reader = file::FileDesc::new(fd);
+        let mut buf = [0, ..1024];
+        loop {
+            match reader.read(buf) {
+                Some(n) => { res.push_all(buf.slice_to(n)); }
+                None => break
+            }
         }
+        str::from_utf8_owned(res)
     }
 
     #[test]