about summary refs log tree commit diff
path: root/src/liballoc
diff options
context:
space:
mode:
authorCharles Gleason <charles_gleason@alumni.brown.edu>2019-10-02 15:18:31 -0400
committerCharles Gleason <charles_gleason@alumni.brown.edu>2019-10-02 15:18:31 -0400
commit864e6feaf857f4a48ace3eafd2003a32ac46602b (patch)
treea18f833ae0f80d38680192a669963252609753dc /src/liballoc
parent5055d4b1c6d7dedaec015e4ba9d96c94b1d978fd (diff)
downloadrust-864e6feaf857f4a48ace3eafd2003a32ac46602b.tar.gz
rust-864e6feaf857f4a48ace3eafd2003a32ac46602b.zip
Add test for LinkedList clone_from
Diffstat (limited to 'src/liballoc')
-rw-r--r--src/liballoc/collections/linked_list/tests.rs43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/liballoc/collections/linked_list/tests.rs b/src/liballoc/collections/linked_list/tests.rs
index ecb5948f11b..1001f6bba3b 100644
--- a/src/liballoc/collections/linked_list/tests.rs
+++ b/src/liballoc/collections/linked_list/tests.rs
@@ -111,6 +111,49 @@ fn test_append() {
 }
 
 #[test]
+fn test_clone_from() {
+    // Short cloned from long
+    {
+        let v = vec![1, 2, 3, 4, 5];
+        let u = vec![8, 7, 6, 2, 3, 4, 5];
+        let mut m = list_from(&v);
+        let n = list_from(&u);
+        m.clone_from(&n);
+        check_links(&m);
+        assert_eq!(m, n);
+        for elt in u {
+            assert_eq!(m.pop_front(), Some(elt))
+        }
+    }
+    // Long cloned from short
+    {
+        let v = vec![1, 2, 3, 4, 5];
+        let u = vec![6, 7, 8];
+        let mut m = list_from(&v);
+        let n = list_from(&u);
+        m.clone_from(&n);
+        check_links(&m);
+        assert_eq!(m, n);
+        for elt in u {
+            assert_eq!(m.pop_front(), Some(elt))
+        }
+    }
+    // Two equal length lists
+    {
+        let v = vec![1, 2, 3, 4, 5];
+        let u = vec![9, 8, 1, 2, 3];
+        let mut m = list_from(&v);
+        let n = list_from(&u);
+        m.clone_from(&n);
+        check_links(&m);
+        assert_eq!(m, n);
+        for elt in u {
+            assert_eq!(m.pop_front(), Some(elt))
+        }
+    }
+}
+
+#[test]
 fn test_insert_prev() {
     let mut m = list_from(&[0, 2, 4, 6, 8]);
     let len = m.len();