about summary refs log tree commit diff
path: root/src/test/stdtest
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2011-10-28 21:19:59 -0700
committerBrian Anderson <banderson@mozilla.com>2011-10-29 01:25:11 -0700
commit2cebef095e61608a3d35710cb5fd3d7de18b68ac (patch)
treecb24a5d2506444d157edfe16fac08f2d31892a28 /src/test/stdtest
parent2b62a80202e2855d47f20d271842e0e9aec6d8e2 (diff)
downloadrust-2cebef095e61608a3d35710cb5fd3d7de18b68ac.tar.gz
rust-2cebef095e61608a3d35710cb5fd3d7de18b68ac.zip
stdlib: Make io failures recoverable by returning a result
Diffstat (limited to 'src/test/stdtest')
-rw-r--r--src/test/stdtest/io.rs50
1 files changed, 48 insertions, 2 deletions
diff --git a/src/test/stdtest/io.rs b/src/test/stdtest/io.rs
index 08330c619fc..d84b80e2ed3 100644
--- a/src/test/stdtest/io.rs
+++ b/src/test/stdtest/io.rs
@@ -2,6 +2,7 @@
 use std;
 import std::io;
 import std::str;
+import std::result;
 
 #[cfg(target_os = "linux")]
 #[cfg(target_os = "win32")]
@@ -13,10 +14,10 @@ fn test_simple() {
     log frood;
     {
         let out: io::writer =
-            io::file_writer(tmpfile, [io::create, io::truncate]);
+            result::get(io::file_writer(tmpfile, [io::create, io::truncate]));
         out.write_str(frood);
     }
-    let inp: io::reader = io::file_reader(tmpfile);
+    let inp: io::reader = result::get(io::file_reader(tmpfile));
     let frood2: str = inp.read_c_str();
     log frood2;
     assert (str::eq(frood, frood2));
@@ -28,3 +29,48 @@ fn test_simple() {
 #[ignore]
 fn test_simple() { }
 
+#[test]
+fn file_reader_not_exist() {
+    alt io::file_reader("not a file") {
+      result::err(e) {
+        assert e == "error opening not a file";
+      }
+      result::ok(_) { fail; }
+    }
+}
+
+#[cfg(target_os = "linux")]
+#[cfg(target_os = "win32")]
+#[test]
+fn file_buf_writer_bad_name() {
+    alt io::file_buf_writer("/?", []) {
+      result::err(e) {
+        assert e == "error opening /?";
+      }
+      result::ok(_) { fail; }
+    }
+}
+
+// FIXME (726)
+#[cfg(target_os = "macos")]
+#[test]
+#[ignore]
+fn file_buf_writer_bad_name() { }
+
+#[cfg(target_os = "linux")]
+#[cfg(target_os = "win32")]
+#[test]
+fn buffered_file_buf_writer_bad_name() {
+    alt io::buffered_file_buf_writer("/?") {
+      result::err(e) {
+        assert e == "error opening /?";
+      }
+      result::ok(_) { fail; }
+    }
+}
+
+// FIXME (726)
+#[cfg(target_os = "macos")]
+#[test]
+#[ignore]
+fn buffered_file_buf_writer_bad_name() { }