mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

Verify interval_tree_span_iter_xxx() helpers works as expected. Link: https://lkml.kernel.org/r/20250310074938.26756-6-richard.weiyang@gmail.com Signed-off-by: Wei Yang <richard.weiyang@gmail.com> Cc: Matthew Wilcox <willy@infradead.org> Cc: Michel Lespinasse <michel@lespinasse.org> Cc: Jason Gunthorpe <jgg@nvidia.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
58 lines
1.5 KiB
C
58 lines
1.5 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* interval_tree.c: Userspace Interval Tree test-suite
|
|
* Copyright (c) 2025 Wei Yang <richard.weiyang@gmail.com>
|
|
*/
|
|
#include <linux/math64.h>
|
|
#include <linux/kern_levels.h>
|
|
#include "shared.h"
|
|
#include "maple-shared.h"
|
|
|
|
#include "../../../lib/interval_tree_test.c"
|
|
|
|
int usage(void)
|
|
{
|
|
fprintf(stderr, "Userland interval tree test cases\n");
|
|
fprintf(stderr, " -n: Number of nodes in the interval tree\n");
|
|
fprintf(stderr, " -p: Number of iterations modifying the tree\n");
|
|
fprintf(stderr, " -q: Number of searches to the interval tree\n");
|
|
fprintf(stderr, " -s: Number of iterations searching the tree\n");
|
|
fprintf(stderr, " -a: Searches will iterate all nodes in the tree\n");
|
|
fprintf(stderr, " -m: Largest value for the interval's endpoint\n");
|
|
fprintf(stderr, " -r: Random seed\n");
|
|
exit(-1);
|
|
}
|
|
|
|
void interval_tree_tests(void)
|
|
{
|
|
interval_tree_test_init();
|
|
interval_tree_test_exit();
|
|
}
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
int opt;
|
|
|
|
while ((opt = getopt(argc, argv, "n:p:q:s:am:r:")) != -1) {
|
|
if (opt == 'n')
|
|
nnodes = strtoul(optarg, NULL, 0);
|
|
else if (opt == 'p')
|
|
perf_loops = strtoul(optarg, NULL, 0);
|
|
else if (opt == 'q')
|
|
nsearches = strtoul(optarg, NULL, 0);
|
|
else if (opt == 's')
|
|
search_loops = strtoul(optarg, NULL, 0);
|
|
else if (opt == 'a')
|
|
search_all = true;
|
|
else if (opt == 'm')
|
|
max_endpoint = strtoul(optarg, NULL, 0);
|
|
else if (opt == 'r')
|
|
seed = strtoul(optarg, NULL, 0);
|
|
else
|
|
usage();
|
|
}
|
|
|
|
maple_tree_init();
|
|
interval_tree_tests();
|
|
return 0;
|
|
}
|