]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
test_maple_tree: Add fuzz 8 test
authorLiam R. Howlett <Liam.Howlett@oracle.com>
Fri, 4 Mar 2022 02:15:09 +0000 (21:15 -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 b26d74c89ac82c6ad28e05970bae6e33d4a867c0..61781df806826fa6eb1879062dc9a326fd5286dd 100644 (file)
@@ -37422,6 +37422,57 @@ static noinline void check_fuzzer(struct maple_tree *mt)
        mtree_test_erase(mt, 12); // 0x5
        mtree_test_store(mt , 2, (void *)0x5); // -17
        mtree_test_load(mt, 22); // 0x9
+       mtree_destroy(mt);
+
+
+       /*
+        * 8.  When rebalancing or spanning_rebalance(), the max of the new node
+        * may be set incorrectly to the final pivot and not the right max.
+        * Fix by setting the left max to orig right max if the entire node is
+        * consumed.
+        */
+       mt_init_flags(mt, 0);
+       mtree_test_store(mt , 6, (void *)0xd); // 0
+       mtree_test_store(mt , 67, (void *)0x87); // 0
+       mtree_test_insert(mt, 15, (void *)0x1f); // 0
+       mtree_test_insert(mt, 6716, (void *)0x3479); // 0
+       mtree_test_store(mt , 61, (void *)0x7b); // 0
+       mtree_test_insert(mt, 13, (void *)0x1b); // 0
+       mtree_test_store(mt , 8, (void *)0x11); // 0
+       mtree_test_insert(mt, 1, (void *)0x3); // 0
+       mtree_test_load(mt, 0); // (nil)
+       mtree_test_erase(mt, 67167); // (nil)
+       mtree_test_insert_range(mt, 6, 7167, (void *)0xd); // 0
+       mtree_test_insert(mt, 6, (void *)0xd); // -17
+       mtree_test_erase(mt, 67); // (nil)
+       mtree_test_insert(mt, 1, (void *)0x3); // -17
+       mtree_test_erase(mt, 667167); // 0x87
+       mtree_test_insert(mt, 6, (void *)0xd); // -17
+       mtree_test_store(mt , 67, (void *)0x87); // -17
+       mtree_test_insert(mt, 5, (void *)0xb); // 0
+       mtree_test_erase(mt, 1); // 0x3479
+       mtree_test_insert(mt, 6, (void *)0xd); // 0
+       mtree_test_erase(mt, 67); // 0x3
+       mtree_test_insert(mt, 15, (void *)0x1f); // -17
+       mtree_test_insert(mt, 67167, (void *)0x20cbf); // -17
+       mtree_test_insert(mt, 1, (void *)0x3); // 0
+       mtree_test_load(mt, 7); // 0x87
+       mtree_test_insert(mt, 16, (void *)0x21); // 0
+       mtree_test_insert(mt, 36, (void *)0x49); // 0
+       mtree_test_store(mt , 67, (void *)0x87); // 0
+       mtree_test_store(mt , 6, (void *)0xd); // 0
+       mtree_test_insert(mt, 367, (void *)0x2df); // 0
+       mtree_test_insert(mt, 115, (void *)0xe7); // 0
+       mtree_test_store(mt , 0, (void *)0x1); // 0
+       mtree_test_store_range(mt, 1, 3, (void *)0x3); // 0
+       mtree_test_store(mt , 1, (void *)0x3); // 0
+       mtree_test_erase(mt, 67167); // (nil)
+       mtree_test_insert_range(mt, 6, 47, (void *)0xd); // 0
+       mtree_test_store(mt , 1, (void *)0x3); // -17
+       mtree_test_insert_range(mt, 1, 67, (void *)0x3); // 0
+       mtree_test_load(mt, 67); // 0x20cbf
+       mtree_test_insert(mt, 1, (void *)0x3); // -17
+       mtree_test_erase(mt, 67167); // 0x87
 }
 
 static DEFINE_MTREE(tree);