about summary refs log tree commit diff
path: root/src/libcore/tests
diff options
context:
space:
mode:
authorClément RENAULT <crenault@vente-privee.com>2018-07-09 14:50:54 +0200
committerClément RENAULT <crenault@vente-privee.com>2018-07-09 14:50:54 +0200
commitaf87a3594a9f852de0eb7fec7a2f2e7c5fdb4fe8 (patch)
tree305670a0121fb74be6fb6156e28626cf5ec7b82f /src/libcore/tests
parent603553458639cd65f3cc75b9b74f8176af81aa2b (diff)
downloadrust-af87a3594a9f852de0eb7fec7a2f2e7c5fdb4fe8.tar.gz
rust-af87a3594a9f852de0eb7fec7a2f2e7c5fdb4fe8.zip
Add a basic test to `Option::replace`
Diffstat (limited to 'src/libcore/tests')
-rw-r--r--src/libcore/tests/lib.rs1
-rw-r--r--src/libcore/tests/option.rs15
2 files changed, 16 insertions, 0 deletions
diff --git a/src/libcore/tests/lib.rs b/src/libcore/tests/lib.rs
index 9d4a5213992..ca7db6e4639 100644
--- a/src/libcore/tests/lib.rs
+++ b/src/libcore/tests/lib.rs
@@ -44,6 +44,7 @@
 #![feature(reverse_bits)]
 #![feature(iterator_find_map)]
 #![feature(slice_internals)]
+#![feature(option_replace)]
 
 extern crate core;
 extern crate test;
diff --git a/src/libcore/tests/option.rs b/src/libcore/tests/option.rs
index 22109e28edd..bc3e61a4f54 100644
--- a/src/libcore/tests/option.rs
+++ b/src/libcore/tests/option.rs
@@ -297,3 +297,18 @@ fn test_try() {
     }
     assert_eq!(try_option_err(), Err(NoneError));
 }
+
+#[test]
+fn test_replace() {
+    let mut x = Some(2);
+    let old = x.replace(5);
+
+    assert_eq!(x, Some(5));
+    assert_eq!(old, Some(2));
+
+    let mut x = None;
+    let old = x.replace(3);
+
+    assert_eq!(x, Some(3));
+    assert_eq!(old, None);
+}