summary refs log tree commit diff
path: root/src/test
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
parent2b62a80202e2855d47f20d271842e0e9aec6d8e2 (diff)
downloadrust-2cebef095e61608a3d35710cb5fd3d7de18b68ac.tar.gz
rust-2cebef095e61608a3d35710cb5fd3d7de18b68ac.zip
stdlib: Make io failures recoverable by returning a result
Diffstat (limited to 'src/test')
-rw-r--r--src/test/bench/task-perf-word-count.rs3
-rw-r--r--src/test/compile-fail/missingmod.rc3
-rw-r--r--src/test/stdtest/io.rs50
3 files changed, 53 insertions, 3 deletions
diff --git a/src/test/bench/task-perf-word-count.rs b/src/test/bench/task-perf-word-count.rs
index 321dfb57caa..2c50327454a 100644
--- a/src/test/bench/task-perf-word-count.rs
+++ b/src/test/bench/task-perf-word-count.rs
@@ -20,6 +20,7 @@ import std::io;
 
 import std::time;
 import std::u64;
+import std::result;
 
 import std::task;
 import std::task::joinable_task;
@@ -30,7 +31,7 @@ import std::comm::recv;
 import std::comm::send;
 
 fn map(filename: str, emit: map_reduce::putter) {
-    let f = io::file_reader(filename);
+    let f = result::get(io::file_reader(filename));
 
 
     while true {
diff --git a/src/test/compile-fail/missingmod.rc b/src/test/compile-fail/missingmod.rc
new file mode 100644
index 00000000000..6e13a970509
--- /dev/null
+++ b/src/test/compile-fail/missingmod.rc
@@ -0,0 +1,3 @@
+// error-pattern:error opening
+
+mod doesnotexist;
\ No newline at end of file
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() { }