From c35f06e1919c782933cf29ae95b709f560f92c40 Mon Sep 17 00:00:00 2001 From: Max Wash Date: Wed, 25 Jan 2023 18:17:34 +0000 Subject: [PATCH] sandbox: increase number of nodes in btree test --- sandbox/base/main.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/sandbox/base/main.c b/sandbox/base/main.c index 37f7ec6..d89d496 100644 --- a/sandbox/base/main.c +++ b/sandbox/base/main.c @@ -10,7 +10,7 @@ #include #include -#define NR_BTREE_NODES 32 +#define NR_BTREE_NODES 1024 /* we're working with 512MiB of simulated system RAM */ #define MEMORY_SIZE_MB 512 @@ -169,7 +169,7 @@ void btree_print(btree_node_t *node, int depth) } else { printf("? "); } - + } printf("%llu (h:%d)\n", node->b_key, node->b_height); @@ -230,13 +230,32 @@ static int btree_avl_validate(btree_node_t *x) return height; } +static btree_key_t alloc_unique_key(btree_node_t *nodes, size_t count) +{ + while (1) { + btree_key_t k = (rand() % 8192) + 1; + + for (size_t i = 0; i < count; i++) { + if (nodes[i].b_key == k) { + continue; + } + } + + return k; + } + + return (btree_key_t)-1; +} + + + static int btree_test(void) { btree_t tree = {}; btree_node_t *nodes = calloc(NR_BTREE_NODES, sizeof *nodes); for (int i = 0; i < NR_BTREE_NODES; i++) { - nodes[i].b_key = (rand() % 128) + 1; + nodes[i].b_key = alloc_unique_key(nodes, i); printf(" - node %d: %llu\n", i, nodes[i].b_key); }