diff options
Diffstat (limited to 'source3/tdb/tdbtest.c')
-rw-r--r-- | source3/tdb/tdbtest.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/source3/tdb/tdbtest.c b/source3/tdb/tdbtest.c index 67580f9067..9e636eef83 100644 --- a/source3/tdb/tdbtest.c +++ b/source3/tdb/tdbtest.c @@ -177,6 +177,43 @@ static int traverse_fn(TDB_CONTEXT *db, TDB_DATA key, TDB_DATA dbuf, void *state return 0; } +static void merge_test() +{ + int klen, dlen; + int i; + char keys[5][2]; + TDB_DATA key, data; + + for (i = 0; i < 5; i++) { + sprintf(keys[i], "%d", i); + key.dptr = keys[i]; + key.dsize = 2; + + data.dptr = "test"; + data.dsize = 4; + + if (tdb_store(db, key, data, TDB_REPLACE) != 0) { + fatal("tdb_store failed"); + } + } + + key.dptr = keys[0]; + tdb_delete(db, key); + tdb_printfreelist(db); + key.dptr = keys[4]; + tdb_delete(db, key); + tdb_printfreelist(db); + key.dptr = keys[2]; + tdb_delete(db, key); + tdb_printfreelist(db); + key.dptr = keys[1]; + tdb_delete(db, key); + tdb_printfreelist(db); + key.dptr = keys[3]; + tdb_delete(db, key); + tdb_printfreelist(db); +} + int main(int argc, char *argv[]) { int i, seed=0; @@ -201,6 +238,8 @@ int main(int argc, char *argv[]) printf("gdbm got %.2f ops/sec\n", i/end_timer()); #endif + merge_test(); + srand(seed); start_timer(); for (i=0;i<loops;i++) addrec_db(); |