diff options
author | neal <neal> | 2008-02-11 09:58:16 +0000 |
---|---|---|
committer | neal <neal> | 2008-02-11 09:58:16 +0000 |
commit | 9356d15df55f7870b9081e70797f9a23e3a687af (patch) | |
tree | 7f6c479f9b13d878603b1bdd1dc25c2ff7982575 /libhurd-btree | |
parent | 48b2b7f0722dd64ab6af18e55fa1ba324a920adf (diff) |
2008-02-11 Neal H. Walfield <neal@gnu.org>
* t-stress.c: New file.
Diffstat (limited to 'libhurd-btree')
-rw-r--r-- | libhurd-btree/ChangeLog | 4 | ||||
-rw-r--r-- | libhurd-btree/t-stress.c | 63 |
2 files changed, 67 insertions, 0 deletions
diff --git a/libhurd-btree/ChangeLog b/libhurd-btree/ChangeLog index 262e7bb..66a80ae 100644 --- a/libhurd-btree/ChangeLog +++ b/libhurd-btree/ChangeLog @@ -1,5 +1,9 @@ 2008-02-11 Neal H. Walfield <neal@gnu.org> + * t-stress.c: New file. + +2008-02-11 Neal H. Walfield <neal@gnu.org> + * btree.h (btree_prev): Correctly set NODE's left thread. 2008-02-11 Neal H. Walfield <neal@gnu.org> diff --git a/libhurd-btree/t-stress.c b/libhurd-btree/t-stress.c new file mode 100644 index 0000000..07b0b63 --- /dev/null +++ b/libhurd-btree/t-stress.c @@ -0,0 +1,63 @@ +#define _GNU_SOURCE + +#include <assert.h> +#ifndef assertx +#define assertx(__ax_expr, __ax_fmt, ...) \ + do \ + { \ + if (! (__ax_expr)) \ + printf (__ax_fmt, ##__VA_ARGS__); \ + assert (__ax_expr); \ + } \ + while (0) +#endif + +#include <stdlib.h> + +#include "btree.h" + +static int +int_node_compare (const int *a, const int *b) +{ + return *a - *b; +} + +struct int_node +{ + struct hurd_btree_node node; + int key; +}; + +BTREE_CLASS(int_node, struct int_node, int, key, node, int_node_compare, false) + +int +main () +{ + hurd_btree_int_node_t root; + hurd_btree_int_node_tree_init (&root); + + int total = 0; + while (1) + { + if (total % 1000 == 0) + printf ("Added %d\n", total); + total ++; + + struct int_node *node = node = malloc (sizeof (struct int_node)); + assert (node); + + node->key = rand (); + + struct int_node *ret = hurd_btree_int_node_insert (&root, node); + if (ret) + { + hurd_btree_int_node_detach (&root, ret); + free (ret); + + ret = hurd_btree_int_node_insert (&root, node); + assert (! ret); + } + } + + return 0; +} |