1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
/*
* Copyright (C) 2010. See COPYRIGHT in top-level directory.
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conflict_tree.h>
#define NELT 1000
uint8_t *data[NELT];
int main(int argc, char **argv) {
int i;
ctree_t ctree = CTREE_EMPTY;
srand(time(NULL));
for (i = 0; i < NELT; i++)
data[i] = ((uint8_t*) NULL) + i;
// Perform NELT random swaps
for (i = 0; i < NELT; i++) {
int j = rand() % NELT;
int k = rand() % NELT;
uint8_t *tmp = data[j];
data[j] = data[k];
data[k] = tmp;
}
for (i = 0; i < NELT; i++) {
printf(" + Inserting [%p, %p]\n", data[i], data[i]);
int conflict = ctree_insert(&ctree, data[i], data[i]);
if (conflict) {
printf("*** Error, conflict inserting %p\n", data[i]);
ctree_print(ctree);
exit(1);
}
}
printf("\n");
ctree_print(ctree);
printf("\n");
for (i = 0; i < NELT; i++) {
printf(" + Checking [%p, %p]\n", data[i], data[i]);
int conflict = ctree_insert(&ctree, data[i], data[i]);
if (!conflict) {
printf("*** Error, no conflict inserting %p\n", data[i]);
ctree_print(ctree);
exit(1);
}
}
ctree_destroy(&ctree);
return 0;
}
|