mirror of
https://github.com/raspberrypi/linux.git
synced 2026-01-04 18:27:36 +00:00
lib/rbtree: add random seed
Current test use pseudo rand function with fixed seed, which means the test data is the same pattern each time. Add random seed parameter to randomize the test. Link: https://lkml.kernel.org/r/20250310074938.26756-4-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>
This commit is contained in:
@@ -42,6 +42,8 @@ typedef __s16 s16;
|
||||
typedef __u8 u8;
|
||||
typedef __s8 s8;
|
||||
|
||||
typedef unsigned long long ullong;
|
||||
|
||||
#ifdef __CHECKER__
|
||||
#define __bitwise __attribute__((bitwise))
|
||||
#else
|
||||
|
||||
@@ -18,6 +18,7 @@ int usage(void)
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -31,7 +32,7 @@ int main(int argc, char **argv)
|
||||
{
|
||||
int opt;
|
||||
|
||||
while ((opt = getopt(argc, argv, "n:p:q:s:am:")) != -1) {
|
||||
while ((opt = getopt(argc, argv, "n:p:q:s:am:r:")) != -1) {
|
||||
if (opt == 'n')
|
||||
nnodes = strtoul(optarg, NULL, 0);
|
||||
else if (opt == 'p')
|
||||
@@ -44,6 +45,8 @@ int main(int argc, char **argv)
|
||||
search_all = true;
|
||||
else if (opt == 'm')
|
||||
max_endpoint = strtoul(optarg, NULL, 0);
|
||||
else if (opt == 'r')
|
||||
seed = strtoul(optarg, NULL, 0);
|
||||
else
|
||||
usage();
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ int usage(void)
|
||||
fprintf(stderr, " -n: Number of nodes in the rb-tree\n");
|
||||
fprintf(stderr, " -p: Number of iterations modifying the rb-tree\n");
|
||||
fprintf(stderr, " -c: Number of iterations modifying and verifying the rb-tree\n");
|
||||
fprintf(stderr, " -r: Random seed\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
@@ -29,13 +30,15 @@ int main(int argc, char **argv)
|
||||
{
|
||||
int opt;
|
||||
|
||||
while ((opt = getopt(argc, argv, "n:p:c:")) != -1) {
|
||||
while ((opt = getopt(argc, argv, "n:p:c:r:")) != -1) {
|
||||
if (opt == 'n')
|
||||
nnodes = strtoul(optarg, NULL, 0);
|
||||
else if (opt == 'p')
|
||||
perf_loops = strtoul(optarg, NULL, 0);
|
||||
else if (opt == 'c')
|
||||
check_loops = strtoul(optarg, NULL, 0);
|
||||
else if (opt == 'r')
|
||||
seed = strtoul(optarg, NULL, 0);
|
||||
else
|
||||
usage();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user