Commit bc4e024d authored by Barry Perlman's avatar Barry Perlman Committed by Yoni Fogel

Addresses #1993 refs[t:1993] Added test of second callback to checkpoint.

git-svn-id: file:///svn/toku/tokudb@14370 c7de825b-a66e-492c-adef-691d508d4ae1
parent 554596ce
/* -*- mode: C; c-basic-offset: 4 -*- */
#ident "Copyright (c) 2007 Tokutek Inc. All rights reserved."
#ident "$Id$"
#include "test.h"
#include <db.h>
#include <sys/stat.h>
#include "checkpoint_test.h"
// Purpose of test is to verify that callbacks are called correctly
// without breaking a simple checkpoint (copied from tests/checkpoint_1.c).
static void
checkpoint_test_1(u_int32_t flags, u_int32_t n, int snap_all) {
if (verbose) {
printf("%s(%s):%d, n=0x%03x, checkpoint=%01x, flags=0x%05x\n",
__FILE__, __FUNCTION__, __LINE__,
n, snap_all, flags);
fflush(stdout);
}
dir_create();
env_startup(0, FALSE);
int run;
int r;
DICTIONARY_S db_control;
init_dictionary(&db_control, flags, "control");
DICTIONARY_S db_test;
init_dictionary(&db_test, flags, "test");
db_startup(&db_test, NULL);
db_startup(&db_control, NULL);
const int num_runs = 4;
for (run = 0; run < num_runs; run++) {
u_int32_t i;
for (i=0; i < n/2/num_runs; i++)
insert_random(db_test.db, db_control.db, NULL);
snapshot(&db_test, snap_all);
for (i=0; i < n/2/num_runs; i++)
insert_random(db_test.db, NULL, NULL);
db_replace(&db_test, NULL);
r = compare_dbs(db_test.db, db_control.db);
assert(r==0);
}
db_shutdown(&db_test);
db_shutdown(&db_control);
env_shutdown();
}
static void checkpoint_callback_1(void * extra) {
printf("checkpoint callback 1 called with extra = %s\n", *((char**) extra));
}
static void checkpoint_callback_2(void * extra) {
printf("checkpoint callback 2 called with extra = %s\n", *((char**) extra));
}
static char * string_1 = "extra1";
static char * string_2 = "extra2";
int
test_main (int argc, char *argv[]) {
parse_args(argc, argv);
db_env_set_checkpoint_callback(checkpoint_callback_1, &string_1);
db_env_set_checkpoint_callback2(checkpoint_callback_2, &string_2);
checkpoint_test_1(0,4096,1);
return 0;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment