diff options
| author | Brian Anderson <banderson@mozilla.com> | 2011-10-28 21:19:59 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2011-10-29 01:25:11 -0700 |
| commit | 2cebef095e61608a3d35710cb5fd3d7de18b68ac (patch) | |
| tree | cb24a5d2506444d157edfe16fac08f2d31892a28 /src/test/stdtest | |
| parent | 2b62a80202e2855d47f20d271842e0e9aec6d8e2 (diff) | |
| download | rust-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.rs | 50 |
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() { } |
