OpenCloudOS-Kernel/tools/testing/radix-tree
Liam R. Howlett e15e06a839 lib/test_maple_tree: add testing for maple tree
This is a test suite that uses the radix test infrastructure.  It has been
split into its own commit to allow for easier review of the maple tree
code.

The testing includes:
- Allocation of nodes
- gfp flag allocation checks
- Expansion & contraction of tree
- preallocation checks
- tree navigation by next/prev
- tree navigation by iterators (mas_for_each, etc)
- Number of nodes for a given number of entries
- Generic tree construction tests
- Addition and removal of entries in forward and reverse numerical indexes
- gap searching both forward and reverse
- Combining gaps by overwriting entries in different ways
- splitting right-most node
- splitting left-most node
- overwriting multiple slots
- overwriting across different levels of the tree
- overwriting the middle of a tree
- causing a 3-way split up to the root by overwriting the last slot and
  first slot of different nodes and spanning different levels
- RCU stress testing of the tree with threads
- Duplication of the tree by entry count
- Tests which were generated by fuzzers have been added.
- A large number of tests which come from recording crashing in a VM and
  reconstructing the tree (see check_erase2_set())

Link: https://lkml.kernel.org/r/20220906194824.2110408-8-Liam.Howlett@oracle.com
Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
Tested-by: Yu Zhao <yuzhao@google.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>
Cc: SeongJae Park <sj@kernel.org>
Cc: Sven Schnelle <svens@linux.ibm.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2022-09-26 19:46:14 -07:00
..
generated Maple Tree: add new data structure 2022-09-26 19:46:13 -07:00
linux radix tree test suite: add lockdep_is_held to header 2022-09-26 19:46:14 -07:00
trace/events Maple Tree: add new data structure 2022-09-26 19:46:13 -07:00
.gitignore Maple Tree: add new data structure 2022-09-26 19:46:13 -07:00
Makefile lib/test_maple_tree: add testing for maple tree 2022-09-26 19:46:14 -07:00
benchmark.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
bitmap.c xarray: Add XArray unconditional store operations 2018-10-21 10:45:57 -04:00
idr-test.c idr test suite: Improve reporting from idr_find_test_1 2021-04-01 07:50:42 -04:00
iteration_check.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
iteration_check_2.c xarray: Fix early termination of xas_for_each_marked 2020-03-12 17:42:08 -04:00
linux.c radix tree test suite: add support for slab bulk APIs 2022-09-26 19:46:14 -07:00
main.c xarray: Fix early termination of xas_for_each_marked 2020-03-12 17:42:08 -04:00
maple.c Maple Tree: add new data structure 2022-09-26 19:46:13 -07:00
multiorder.c radix tree test suite: Register the main thread with the RCU library 2021-04-01 07:41:30 -04:00
regression.h radix tree: Don't return retry entries from lookup 2018-12-06 08:26:16 -05:00
regression1.c radix tree test suite: Convert tag_tagged_items to XArray 2018-10-21 10:46:45 -04:00
regression2.c radix tree test suite: Convert tag_tagged_items to XArray 2018-10-21 10:46:45 -04:00
regression3.c page cache: Convert find_get_pages_contig to XArray 2018-10-21 10:46:34 -04:00
regression4.c radix tree: Don't return retry entries from lookup 2018-12-06 08:26:16 -05:00
tag_check.c radix tree test suite: Convert tag_tagged_items to XArray 2018-10-21 10:46:45 -04:00
test.c radix tree tests: Convert item_delete_rcu to XArray 2018-10-21 10:46:48 -04:00
test.h radix tree test suite: Fix compilation 2020-10-07 09:07:49 -04:00
xarray.c radix tree test suite: Register the main thread with the RCU library 2021-04-01 07:41:30 -04:00