]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
test_maple_tree: Fix mas_reuse_node() zeroing again.
authorLiam R. Howlett <Liam.Howlett@oracle.com>
Thu, 3 Mar 2022 16:51:42 +0000 (11:51 -0500)
committerLiam R. Howlett <Liam.Howlett@oracle.com>
Tue, 8 Mar 2022 18:19:16 +0000 (13:19 -0500)
Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
lib/test_maple_tree.c

index a9599bdb9dc9c0db9b4e74a52826144069821410..b26d74c89ac82c6ad28e05970bae6e33d4a867c0 100644 (file)
@@ -37359,6 +37359,69 @@ static noinline void check_fuzzer(struct maple_tree *mt)
        mtree_test_load(mt, 0); // 0x1
        mtree_destroy(mt);
 
+       /*
+        * 7. Previous fix was incomplete, fix mas_resuse_node() clearing of old
+        * data by overwriting it first - that way metadata is of no concern.
+        */
+       mt_init_flags(mt, 0);
+       mtree_test_load(mt, 1); // (nil)
+       mtree_test_insert(mt, 102, (void *)0xcd); // -17
+       mtree_test_erase(mt, 2); // (nil)
+       mtree_test_erase(mt, 0); // (nil)
+       mtree_test_load(mt, 0); // (nil)
+       mtree_test_insert(mt, 4, (void *)0x9); // 0
+       mtree_test_insert(mt, 2, (void *)0x5); // 0
+       mtree_test_insert(mt, 110, (void *)0xdd); // 0
+       mtree_test_insert(mt, 1, (void *)0x3); // 0
+       mtree_test_insert_range(mt, 5, 0, (void *)0xb); // 0
+       mtree_test_erase(mt, 2); // (nil)
+       mtree_test_store(mt , 0, (void *)0x1); // -22
+       mtree_test_store(mt , 112, (void *)0xe1); // 0
+       mtree_test_insert(mt, 21, (void *)0x2b); // 0
+       mtree_test_store(mt , 1, (void *)0x3); // 0
+       mtree_test_insert_range(mt, 110, 2, (void *)0xdd); // 0
+       mtree_test_store(mt , 2, (void *)0x5); // -22
+       mtree_test_load(mt, 22); // 0x5
+       mtree_test_erase(mt, 2); // (nil)
+       mtree_test_store(mt , 210, (void *)0x1a5); // 0
+       mtree_test_store_range(mt, 0, 2, (void *)0x1); // 0
+       mtree_test_store(mt , 2, (void *)0x5); // 0
+       mtree_test_erase(mt, 2); // 0x5
+       mtree_test_erase(mt, 22); // 0x5
+       mtree_test_erase(mt, 1); // (nil)
+       mtree_test_erase(mt, 2); // (nil)
+       mtree_test_store(mt , 0, (void *)0x1); // 0
+       mtree_test_load(mt, 112); // (nil)
+       mtree_test_insert(mt, 2, (void *)0x5); // 0
+       mtree_test_erase(mt, 2); // (nil)
+       mtree_test_store(mt , 1, (void *)0x3); // 0
+       mtree_test_insert_range(mt, 1, 2, (void *)0x3); // 0
+       mtree_test_erase(mt, 0); // 0x5
+       mtree_test_erase(mt, 2); // 0x1
+       mtree_test_store(mt , 2, (void *)0x5); // -17
+       mtree_test_erase(mt, 0); // 0x5
+       mtree_test_erase(mt, 2); // (nil)
+       mtree_test_store(mt , 0, (void *)0x1); // 0
+       mtree_test_store(mt , 0, (void *)0x1); // 0
+       mtree_test_erase(mt, 2); // 0x5
+       mtree_test_store(mt , 2, (void *)0x5); // 0
+       mtree_test_erase(mt, 2); // (nil)
+       mtree_test_insert(mt, 2, (void *)0x5); // 0
+       mtree_test_insert_range(mt, 1, 2, (void *)0x3); // 0
+       mtree_test_erase(mt, 0); // 0x5
+       mtree_test_erase(mt, 2); // 0x1
+       mtree_test_store(mt , 0, (void *)0x1); // -17
+       mtree_test_load(mt, 112); // 0x5
+       mtree_test_store_range(mt, 110, 12, (void *)0xdd); // 0
+       mtree_test_store(mt , 2, (void *)0x5); // -22
+       mtree_test_load(mt, 110); // (nil)
+       mtree_test_insert_range(mt, 4, 71, (void *)0x9); // 0
+       mtree_test_load(mt, 2); // (nil)
+       mtree_test_store(mt , 2, (void *)0x5); // 0
+       mtree_test_insert_range(mt, 11, 22, (void *)0x17); // 0
+       mtree_test_erase(mt, 12); // 0x5
+       mtree_test_store(mt , 2, (void *)0x5); // -17
+       mtree_test_load(mt, 22); // 0x9
 }
 
 static DEFINE_MTREE(tree);