diff options
Diffstat (limited to 'src/test/stdtest')
| -rw-r--r-- | src/test/stdtest/result.rs | 17 | ||||
| -rw-r--r-- | src/test/stdtest/stdtest.rc | 1 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/test/stdtest/result.rs b/src/test/stdtest/result.rs new file mode 100644 index 00000000000..9a7b390a523 --- /dev/null +++ b/src/test/stdtest/result.rs @@ -0,0 +1,17 @@ +import std::result; + +fn op1() -> result::t<int, str> { result::ok(666) } + +fn op2(&&i: int) -> result::t<uint, str> { result::ok(i as uint + 1u) } + +fn op3() -> result::t<int, str> { result::err("sadface") } + +#[test] +fn chain_success() { + assert result::get(result::chain(op1(), op2)) == 667u; +} + +#[test] +fn chain_failure() { + assert result::get_err(result::chain(op3(), op2)) == "sadface"; +} \ No newline at end of file diff --git a/src/test/stdtest/stdtest.rc b/src/test/stdtest/stdtest.rc index b2b7522c2e1..c47b85c65f8 100644 --- a/src/test/stdtest/stdtest.rc +++ b/src/test/stdtest/stdtest.rc @@ -31,6 +31,7 @@ mod test; mod uint; mod float; mod math; +mod result; // Local Variables: // mode: rust |
