about summary refs log tree commit diff
path: root/src/test/stdtest
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/stdtest')
-rw-r--r--src/test/stdtest/result.rs17
-rw-r--r--src/test/stdtest/stdtest.rc1
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