Commit 0ee84bc8 authored by Rich Prohaska's avatar Rich Prohaska Committed by Yoni Fogel

#4390 speed up loader tests run from the makefile refs[t:4390]

git-svn-id: file:///svn/toku/tokudb@38819 c7de825b-a66e-492c-adef-691d508d4ae1
parent 549ff6da
...@@ -200,6 +200,8 @@ BDB_DONTRUN_TESTS = \ ...@@ -200,6 +200,8 @@ BDB_DONTRUN_TESTS = \
recover-ft6 \ recover-ft6 \
recover-ft7 \ recover-ft7 \
recover-ft8 \ recover-ft8 \
recover-ft9 \
recover-ft10 \
recover-loader-test \ recover-loader-test \
recover-lsn-filter-multiple \ recover-lsn-filter-multiple \
recover-put-multiple \ recover-put-multiple \
...@@ -592,12 +594,6 @@ ABORTCODE=137 ...@@ -592,12 +594,6 @@ ABORTCODE=137
fi \ fi \
$(MAYBEINVERTER) $(SUMMARIZE_CMD) $(MAYBEINVERTER) $(SUMMARIZE_CMD)
.PHONY: %.loader
# Generally these subtests cannot run in parallel unless they support an environment arg
%.loader: %.tdb$(BINSUF) $(PTHREAD_LOCAL)
$(TDBVGRIND) ./$< $(EXTRA_ARGS) $(VERBVERBOSE) $(MAYBEINVERTER) $(SUMMARIZE_CMD)
$(TDBVGRIND) ./$< $(EXTRA_ARGS) -p $(VERBVERBOSE) $(MAYBEINVERTER) $(SUMMARIZE_CMD)
.PHONY: %.recover .PHONY: %.recover
all.recover: $(patsubst %,test_log%.recover,$(TLRECOVER)) $(PTHREAD_LOCAL) ; all.recover: $(patsubst %,test_log%.recover,$(TLRECOVER)) $(PTHREAD_LOCAL) ;
...@@ -906,54 +902,48 @@ test3039.tdbrun: test3039.tdb ...@@ -906,54 +902,48 @@ test3039.tdbrun: test3039.tdb
( ($(VGRIND) ./$< -v -n 1000 ) && ./$< -v ) $(SUMMARIZE_CMD) ( ($(VGRIND) ./$< -v -n 1000 ) && ./$< -v ) $(SUMMARIZE_CMD)
# loader tests # loader tests
.PHONY: %.loader
%.loader: %.nop.loader %.p.loader
true
%.nop.loader: %.tdb$(BINSUF) $(PTHREAD_LOCAL)
$(TDBVGRIND) ./$< $(EXTRA_ARGS) -e dir.$@ $(VERBVERBOSE) $(MAYBEINVERTER) $(SUMMARIZE_CMD)
%.p.loader: %.tdb$(BINSUF) $(PTHREAD_LOCAL)
$(TDBVGRIND) ./$< $(EXTRA_ARGS) -p -e dir.$@ $(VERBVERBOSE) $(MAYBEINVERTER) $(SUMMARIZE_CMD)
# re-enable loader-stress-test3 when upgrade is complete # re-enable loader-stress-test3 when upgrade is complete
#loader-stress-test.loader: $(patsubst %,loader-stress-test%.tdbrun, 0 1 2 3) #loader-stress-test.loader: $(patsubst %,loader-stress-test%.tdbrun, 0 1 2 3)
loader-stress-test.loader: $(patsubst %,loader-stress-test%.tdbrun, 0 1 2) loader-stress-test.loader: $(patsubst %,loader-stress-test%.tdbrun, 0 1 2)
true true
loader-stress-test0.tdbrun: loader-stress-test.tdb$(BINSUF) loader-stress-test0.tdbrun: loader-stress-test.tdb$(BINSUF)
$(TDBVGRIND) ./$< $(EXTRA_ARGS) -e 0 -c $(VERBVERBOSE) $(MAYBEINVERTER) $(SUMMARIZE_CMD) $(TDBVGRIND) ./$< $(EXTRA_ARGS) -c -e dir.$@ $(VERBVERBOSE) $(MAYBEINVERTER) $(SUMMARIZE_CMD)
loader-stress-test1.tdbrun: loader-stress-test.tdb$(BINSUF) loader-stress-test1.tdbrun: loader-stress-test.tdb$(BINSUF)
$(TDBVGRIND) ./$< $(EXTRA_ARGS) -e 1 -c -p $(VERBVERBOSE) $(MAYBEINVERTER) $(SUMMARIZE_CMD) $(TDBVGRIND) ./$< $(EXTRA_ARGS) -c -p -e dir.$@ $(VERBVERBOSE) $(MAYBEINVERTER) $(SUMMARIZE_CMD)
loader-stress-test2.tdbrun: loader-stress-test.tdb$(BINSUF) loader-stress-test2.tdbrun: loader-stress-test.tdb$(BINSUF)
$(TDBVGRIND) ./$< $(EXTRA_ARGS) -e 2 -r 5000 -s $(VERBVERBOSE) $(MAYBEINVERTER) $(SUMMARIZE_CMD) # to manifest #2717. $(TDBVGRIND) ./$< $(EXTRA_ARGS) -r 5000 -s -e dir.$@ $(VERBVERBOSE) $(MAYBEINVERTER) $(SUMMARIZE_CMD) # to manifest #2717.
loader-stress-test3.tdbrun: loader-stress-test.tdb$(BINSUF) loader-stress-test3.tdbrun: loader-stress-test.tdb$(BINSUF)
$(TDBVGRIND) ./$< $(EXTRA_ARGS) -e 3 -u -c $(VERBVERBOSE) $(MAYBEINVERTER) $(SUMMARIZE_CMD) $(TDBVGRIND) ./$< $(EXTRA_ARGS) -u -c -e dir.$@ $(VERBVERBOSE) $(MAYBEINVERTER) $(SUMMARIZE_CMD)
loader-dup-test.loader loader-dup-test.tdbrun: $(patsubst %,loader-dup-test%.tdbrun, 0 1 2 3 4 5) loader-dup-test.loader loader-dup-test.tdbrun: $(patsubst %,loader-dup-test%.tdbrun, 0 1 2 3 4 5)
true $(SUMMARIZE_CMD) #State that this has passed. Override the default rule. true $(SUMMARIZE_CMD) #State that this has passed. Override the default rule.
loader-dup-test0.tdbrun: loader-dup-test.tdb$(BINSUF) loader-dup-test0.tdbrun: loader-dup-test.tdb$(BINSUF)
$(VGRIND) ./loader-dup-test.tdb -e 0 $(SUMMARIZE_CMD) $(VGRIND) ./loader-dup-test.tdb -e dir.$@ $(SUMMARIZE_CMD)
loader-dup-test1.tdbrun: loader-dup-test.tdb$(BINSUF) loader-dup-test1.tdbrun: loader-dup-test.tdb$(BINSUF)
$(VGRIND) ./loader-dup-test.tdb -d 1 -r 500000 -e 1 $(SUMMARIZE_CMD) $(VGRIND) ./loader-dup-test.tdb -d 1 -r 500000 -e dir.$@ $(SUMMARIZE_CMD)
loader-dup-test2.tdbrun: loader-dup-test.tdb$(BINSUF) loader-dup-test2.tdbrun: loader-dup-test.tdb$(BINSUF)
$(VGRIND) ./loader-dup-test.tdb -d 1 -r 1000000 -e 2 $(SUMMARIZE_CMD) $(VGRIND) ./loader-dup-test.tdb -d 1 -r 1000000 -e dir.$@ $(SUMMARIZE_CMD)
loader-dup-test3.tdbrun: loader-dup-test.tdb$(BINSUF) loader-dup-test3.tdbrun: loader-dup-test.tdb$(BINSUF)
$(VGRIND) ./loader-dup-test.tdb -d 1 -s -r 100 -e 3 $(SUMMARIZE_CMD) $(VGRIND) ./loader-dup-test.tdb -d 1 -s -r 100 -e dir.$@ $(SUMMARIZE_CMD)
loader-dup-test4.tdbrun: loader-dup-test.tdb$(BINSUF) loader-dup-test4.tdbrun: loader-dup-test.tdb$(BINSUF)
$(VGRIND) ./loader-dup-test.tdb -d 1 -s -r 1000 -e 4 $(SUMMARIZE_CMD) $(VGRIND) ./loader-dup-test.tdb -d 1 -s -r 1000 -e dir.$@ $(SUMMARIZE_CMD)
loader-dup-test5.tdbrun: loader-dup-test.tdb$(BINSUF) loader-dup-test5.tdbrun: loader-dup-test.tdb$(BINSUF)
$(VGRIND) ./loader-dup-test.tdb -d 1 -s -r 1000 -E -e 5 $(SUMMARIZE_CMD) $(VGRIND) ./loader-dup-test.tdb -d 1 -s -r 1000 -E -e dir.$@ $(SUMMARIZE_CMD)
loader-cleanup-test.loader: $(patsubst %,loader-cleanup-test%.tdbrun, 0 1) loader-cleanup-test.loader: $(patsubst %,loader-cleanup-test%.tdbrun, 0 1)
true true
loader-cleanup-test0.tdbrun: loader-cleanup-test.tdb$(BINSUF) loader-cleanup-test0.tdbrun: loader-cleanup-test.tdb$(BINSUF)
$(VGRIND) ./$< -s -r 8000 -e 0 $(SUMMARIZE_CMD) $(VGRIND) ./$< -s -r 8000 -e dir.$@ $(SUMMARIZE_CMD)
loader-cleanup-test1.tdbrun: loader-cleanup-test.tdb$(BINSUF) loader-cleanup-test1.tdbrun: loader-cleanup-test.tdb$(BINSUF)
$(VGRIND) ./$< -s -r 8000 -p -e 1 $(SUMMARIZE_CMD) $(VGRIND) ./$< -s -r 8000 -p -e dir.$@ $(SUMMARIZE_CMD)
LOADER_USE_DEFAULT_TESTS = create-abort create-close no-puts reference-test stress-test tpch-load
loader-tests: $(LOADER_TESTS) loader-tests: $(LOADER_TESTS)
echo $(LOADER_TESTS) echo $(LOADER_TESTS)
...@@ -964,7 +954,6 @@ CHECK_HOTINDEXER_UNDO_TESTS = $(patsubst %.test,%.run,$(HOTINDEXER_UNDO_TESTS)) ...@@ -964,7 +954,6 @@ CHECK_HOTINDEXER_UNDO_TESTS = $(patsubst %.test,%.run,$(HOTINDEXER_UNDO_TESTS))
hotindexer-undo-do-test.tdbrun: $(CHECK_HOTINDEXER_UNDO_TESTS) hotindexer-undo-do-test.tdbrun: $(CHECK_HOTINDEXER_UNDO_TESTS)
true true
$(CHECK_HOTINDEXER_UNDO_TESTS): %.run: %.test hotindexer-undo-do-test.tdb$(BINSUF) $(CHECK_HOTINDEXER_UNDO_TESTS): %.run: %.test hotindexer-undo-do-test.tdb$(BINSUF)
./run-hotindexer-undo-do-tests.bash $< $(SUMMARIZE_CMD) ./run-hotindexer-undo-do-tests.bash $< $(SUMMARIZE_CMD)
...@@ -998,36 +987,27 @@ stress_tests.drdrun: $(TINY_STRESS_TESTS) \ ...@@ -998,36 +987,27 @@ stress_tests.drdrun: $(TINY_STRESS_TESTS) \
large_test_stress1.drdrun large_test_stress3.drdrun \ large_test_stress1.drdrun large_test_stress3.drdrun \
test_4015.drdrun test_4015.drdrun
true true
tiny_stress_tests.drdrun: $(TINY_STRESS_TESTS) tiny_stress_tests.drdrun: $(TINY_STRESS_TESTS)
true true
mid_stress_tests.drdrun: $(MID_STRESS_TESTS) mid_stress_tests.drdrun: $(MID_STRESS_TESTS)
true true
large_stress_tests.drdrun: $(LARGE_STRESS_TESTS) large_stress_tests.drdrun: $(LARGE_STRESS_TESTS)
true true
tiny_%.drdrun: %.tdb tiny_%.drdrun: %.tdb
$(VALGRIND) --tool=drd --quiet --suppressions=drd.suppressions --error-exitcode=1 ./$< $(VERBVERBOSE) --num_seconds 5 --num_elements 150 --envdir dir.$@ \ $(VALGRIND) --tool=drd --quiet --suppressions=drd.suppressions --error-exitcode=1 ./$< $(VERBVERBOSE) --num_seconds 5 --num_elements 150 --envdir dir.$@ \
$(MAYBEINVERTER) $(SUMMARIZE_CMD) $(MAYBEINVERTER) $(SUMMARIZE_CMD)
mid_%.drdrun: %.tdb mid_%.drdrun: %.tdb
./$< --only_create --envdir dir.$@ --num_elements 10000 && \ ./$< --only_create --envdir dir.$@ --num_elements 10000 && \
$(VALGRIND) --tool=drd --quiet --suppressions=drd.suppressions --error-exitcode=1 ./$< $(VERBVERBOSE) --only_stress --num_seconds 100 --envdir dir.$@ --num_elements 10000 \ $(VALGRIND) --tool=drd --quiet --suppressions=drd.suppressions --error-exitcode=1 ./$< $(VERBVERBOSE) --only_stress --num_seconds 100 --envdir dir.$@ --num_elements 10000 \
$(MAYBEINVERTER) $(SUMMARIZE_CMD) $(MAYBEINVERTER) $(SUMMARIZE_CMD)
large_%.drdrun: %.tdb large_%.drdrun: %.tdb
./$< --only_create --envdir dir.$@ && \ ./$< --only_create --envdir dir.$@ && \
$(VALGRIND) --tool=drd --quiet --suppressions=drd.suppressions --error-exitcode=1 ./$< $(VERBVERBOSE) --only_stress --num_seconds 1000 --envdir dir.$@ \ $(VALGRIND) --tool=drd --quiet --suppressions=drd.suppressions --error-exitcode=1 ./$< $(VERBVERBOSE) --only_stress --num_seconds 1000 --envdir dir.$@ \
$(MAYBEINVERTER) $(SUMMARIZE_CMD) $(MAYBEINVERTER) $(SUMMARIZE_CMD)
test_4015.drdrun: test_4015.tdb test_4015.drdrun: test_4015.tdb
$(VALGRIND) --tool=drd --quiet --suppressions=drd.suppressions --error-exitcode=1 ./$< --envdir dir.tdb.$@ \ $(VALGRIND) --tool=drd --quiet --suppressions=drd.suppressions --error-exitcode=1 ./$< --envdir dir.tdb.$@ \
$(MAYBEINVERTER) $(SUMMARIZE_CMD) $(MAYBEINVERTER) $(SUMMARIZE_CMD)
# upgrade tests # upgrade tests
UPGRADE_TEST_SRCS = $(wildcard upgrade-test-*.c) UPGRADE_TEST_SRCS = $(wildcard upgrade-test-*.c)
UPGRADE_TESTS = $(patsubst %.c,%,$(UPGRADE_TEST_SRCS)) UPGRADE_TESTS = $(patsubst %.c,%,$(UPGRADE_TEST_SRCS))
...@@ -1036,7 +1016,6 @@ UPGRADE_TESTS_VALGRIND = $(patsubst upgrade-test-%,upgrade-test-%.valgrind,$(UPG ...@@ -1036,7 +1016,6 @@ UPGRADE_TESTS_VALGRIND = $(patsubst upgrade-test-%,upgrade-test-%.valgrind,$(UPG
upgrade-tests.tdbrun: $(UPGRADE_TESTS_VALGRIND) upgrade-tests.tdbrun: $(UPGRADE_TESTS_VALGRIND)
echo $(UPGRADE_TESTS_VALGRIND) echo $(UPGRADE_TESTS_VALGRIND)
true true
upgrade-test-%.valgrind: upgrade-test-%.tdb upgrade-test-%.valgrind: upgrade-test-%.tdb
$(VGRIND) ./$< $(VERBVERBOSE) $(SUMMARIZE_CMD) $(VGRIND) ./$< $(VERBVERBOSE) $(SUMMARIZE_CMD)
...@@ -1045,22 +1024,16 @@ keyrange.tdbrun: keyrange-get0.tdbrun keyrange-get1.tdbrun \ ...@@ -1045,22 +1024,16 @@ keyrange.tdbrun: keyrange-get0.tdbrun keyrange-get1.tdbrun \
keyrange-random-get0.tdbrun keyrange-random-get1.tdbrun \ keyrange-random-get0.tdbrun keyrange-random-get1.tdbrun \
keyrange-loader-get0.tdbrun keyrange-loader-get1.tdbrun keyrange-loader-get0.tdbrun keyrange-loader-get1.tdbrun
true true
keyrange-get0.tdbrun: keyrange.tdb keyrange-get0.tdbrun: keyrange.tdb
$(TDBVGRIND) ./$< $(VERBVERBOSE) --get 0 --envdir dir.$@ $(MAYBEINVERTER) $(SUMMARIZE_CMD) $(TDBVGRIND) ./$< $(VERBVERBOSE) --get 0 --envdir dir.$@ $(MAYBEINVERTER) $(SUMMARIZE_CMD)
keyrange-get1.tdbrun: keyrange.tdb keyrange-get1.tdbrun: keyrange.tdb
$(TDBVGRIND) ./$< $(VERBVERBOSE) --get 1 --envdir dir.$@ $(MAYBEINVERTER) $(SUMMARIZE_CMD) $(TDBVGRIND) ./$< $(VERBVERBOSE) --get 1 --envdir dir.$@ $(MAYBEINVERTER) $(SUMMARIZE_CMD)
keyrange-random-get0.tdbrun: keyrange.tdb keyrange-random-get0.tdbrun: keyrange.tdb
$(TDBVGRIND) ./$< $(VERBVERBOSE) --get 0 --random_keys 1 --envdir dir.$@ $(MAYBEINVERTER) $(SUMMARIZE_CMD) $(TDBVGRIND) ./$< $(VERBVERBOSE) --get 0 --random_keys 1 --envdir dir.$@ $(MAYBEINVERTER) $(SUMMARIZE_CMD)
keyrange-random-get1.tdbrun: keyrange.tdb keyrange-random-get1.tdbrun: keyrange.tdb
$(TDBVGRIND) ./$< $(VERBVERBOSE) --get 1 --random_keys 1 --envdir dir.$@ $(MAYBEINVERTER) $(SUMMARIZE_CMD) $(TDBVGRIND) ./$< $(VERBVERBOSE) --get 1 --random_keys 1 --envdir dir.$@ $(MAYBEINVERTER) $(SUMMARIZE_CMD)
keyrange-loader-get0.tdbrun: keyrange.tdb keyrange-loader-get0.tdbrun: keyrange.tdb
$(TDBVGRIND) ./$< $(VERBVERBOSE) --get 0 --loader 1 --envdir dir.$@ $(MAYBEINVERTER) $(SUMMARIZE_CMD) $(TDBVGRIND) ./$< $(VERBVERBOSE) --get 0 --loader 1 --envdir dir.$@ $(MAYBEINVERTER) $(SUMMARIZE_CMD)
keyrange-loader-get1.tdbrun: keyrange.tdb keyrange-loader-get1.tdbrun: keyrange.tdb
$(TDBVGRIND) ./$< $(VERBVERBOSE) --get 1 --loader 1 --envdir dir.$@ $(MAYBEINVERTER) $(SUMMARIZE_CMD) $(TDBVGRIND) ./$< $(VERBVERBOSE) --get 1 --loader 1 --envdir dir.$@ $(MAYBEINVERTER) $(SUMMARIZE_CMD)
......
...@@ -751,8 +751,7 @@ static void test_loader(enum test_type t, DB **dbs, int trigger) ...@@ -751,8 +751,7 @@ static void test_loader(enum test_type t, DB **dbs, int trigger)
static int run_test_count = 0; static int run_test_count = 0;
static char *free_me = NULL; static char *envdir = ENVDIR;
static char *env_dir = ENVDIR;
static void run_test(enum test_type t, int trigger) static void run_test(enum test_type t, int trigger)
{ {
...@@ -765,10 +764,10 @@ static void run_test(enum test_type t, int trigger) ...@@ -765,10 +764,10 @@ static void run_test(enum test_type t, int trigger)
fflush(stdout); fflush(stdout);
} }
char rm_cmd[strlen("rm -rf ") + strlen(env_dir) + 1]; char rm_cmd[strlen("rm -rf ") + strlen(envdir) + 1];
sprintf(rm_cmd, "rm -rf %s", env_dir); sprintf(rm_cmd, "rm -rf %s", envdir);
r = system(rm_cmd); CKERR(r); r = system(rm_cmd); CKERR(r);
r = toku_os_mkdir(env_dir, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); r = toku_os_mkdir(envdir, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
r = db_env_create(&env, 0); CKERR(r); r = db_env_create(&env, 0); CKERR(r);
r = env->set_redzone(env, 0); CKERR(r); r = env->set_redzone(env, 0); CKERR(r);
...@@ -777,7 +776,7 @@ static void run_test(enum test_type t, int trigger) ...@@ -777,7 +776,7 @@ static void run_test(enum test_type t, int trigger)
CKERR(r); CKERR(r);
int envflags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE; int envflags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE;
r = env->open(env, env_dir, envflags, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); r = env->open(env, envdir, envflags, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
env->set_errfile(env, stderr); env->set_errfile(env, stderr);
//Disable auto-checkpointing //Disable auto-checkpointing
r = env->checkpointing_set_period(env, 0); CKERR(r); r = env->checkpointing_set_period(env, 0); CKERR(r);
...@@ -961,7 +960,6 @@ int test_main(int argc, char * const *argv) { ...@@ -961,7 +960,6 @@ int test_main(int argc, char * const *argv) {
else else
run_all_tests(); run_all_tests();
printf("run_test_count=%d\n", run_test_count); printf("run_test_count=%d\n", run_test_count);
if (free_me) toku_free(free_me);
return 0; return 0;
} }
...@@ -1020,12 +1018,7 @@ static void do_args(int argc, char * const argv[]) { ...@@ -1020,12 +1018,7 @@ static void do_args(int argc, char * const argv[]) {
db_env_set_loader_size_factor(1); db_env_set_loader_size_factor(1);
} else if (strcmp(argv[0],"-e") == 0 && argc > 1) { } else if (strcmp(argv[0],"-e") == 0 && argc > 1) {
argc--; argv++; argc--; argv++;
if (free_me) toku_free(free_me); envdir = argv[0];
int len = strlen(ENVDIR) + strlen(argv[0]) + 2;
char full_env_dir[len];
int r = snprintf(full_env_dir, len, "%s.%s", ENVDIR, argv[0]);
assert(r<len);
free_me = env_dir = toku_strdup(full_env_dir);
} else { } else {
fprintf(stderr, "Unknown arg: %s\n", argv[0]); fprintf(stderr, "Unknown arg: %s\n", argv[0]);
resultcode=1; resultcode=1;
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include <db.h> #include <db.h>
static int loader_flags = 0; static int loader_flags = 0;
static char *envdir = ENVDIR;
static int put_multiple_generate(DB *UU(dest_db), DB *UU(src_db), DBT *UU(dest_key), DBT *UU(dest_val), const DBT *UU(src_key), const DBT *UU(src_val)) { static int put_multiple_generate(DB *UU(dest_db), DB *UU(src_db), DBT *UU(dest_key), DBT *UU(dest_val), const DBT *UU(src_key), const DBT *UU(src_val)) {
return ENOMEM; return ENOMEM;
...@@ -17,15 +18,17 @@ static int put_multiple_generate(DB *UU(dest_db), DB *UU(src_db), DBT *UU(dest_k ...@@ -17,15 +18,17 @@ static int put_multiple_generate(DB *UU(dest_db), DB *UU(src_db), DBT *UU(dest_k
static void loader_open_abort(void) { static void loader_open_abort(void) {
int r; int r;
r = system("rm -rf " ENVDIR); CKERR(r); char rmcmd[32 + strlen(envdir)];
r = toku_os_mkdir(ENVDIR, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); snprintf(rmcmd, sizeof rmcmd, "rm -rf %s", envdir);
r = system(rmcmd); CKERR(r);
r = toku_os_mkdir(envdir, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
DB_ENV *env; DB_ENV *env;
r = db_env_create(&env, 0); CKERR(r); r = db_env_create(&env, 0); CKERR(r);
r = env->set_generate_row_callback_for_put(env, put_multiple_generate); r = env->set_generate_row_callback_for_put(env, put_multiple_generate);
CKERR(r); CKERR(r);
int envflags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE; int envflags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE;
r = env->open(env, ENVDIR, envflags, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); r = env->open(env, envdir, envflags, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
env->set_errfile(env, stderr); env->set_errfile(env, stderr);
DB_TXN *txn; DB_TXN *txn;
...@@ -58,6 +61,10 @@ static void do_args(int argc, char * const argv[]) { ...@@ -58,6 +61,10 @@ static void do_args(int argc, char * const argv[]) {
if (verbose<0) verbose=0; if (verbose<0) verbose=0;
} else if (strcmp(argv[0], "-p") == 0) { } else if (strcmp(argv[0], "-p") == 0) {
loader_flags = LOADER_USE_PUTS; loader_flags = LOADER_USE_PUTS;
} else if (strcmp(argv[0], "-e") == 0) {
argc--; argv++;
if (argc > 0)
envdir = argv[0];
} else { } else {
fprintf(stderr, "Unknown arg: %s\n", argv[0]); fprintf(stderr, "Unknown arg: %s\n", argv[0]);
resultcode=1; resultcode=1;
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include <db.h> #include <db.h>
static int loader_flags = 0; static int loader_flags = 0;
static char *envdir = ENVDIR;
static int put_multiple_generate(DB *UU(dest_db), DB *UU(src_db), DBT *UU(dest_key), DBT *UU(dest_val), const DBT *UU(src_key), const DBT *UU(src_val)) { static int put_multiple_generate(DB *UU(dest_db), DB *UU(src_db), DBT *UU(dest_key), DBT *UU(dest_val), const DBT *UU(src_key), const DBT *UU(src_val)) {
return ENOMEM; return ENOMEM;
...@@ -17,15 +18,17 @@ static int put_multiple_generate(DB *UU(dest_db), DB *UU(src_db), DBT *UU(dest_k ...@@ -17,15 +18,17 @@ static int put_multiple_generate(DB *UU(dest_db), DB *UU(src_db), DBT *UU(dest_k
static void loader_open_abort(int ndb) { static void loader_open_abort(int ndb) {
int r; int r;
r = system("rm -rf " ENVDIR); CKERR(r); char rmcmd[32 + strlen(envdir)];
r = toku_os_mkdir(ENVDIR, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); snprintf(rmcmd, sizeof rmcmd, "rm -rf %s", envdir);
r = system(rmcmd); CKERR(r);
r = toku_os_mkdir(envdir, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
DB_ENV *env; DB_ENV *env;
r = db_env_create(&env, 0); CKERR(r); r = db_env_create(&env, 0); CKERR(r);
r = env->set_generate_row_callback_for_put(env, put_multiple_generate); r = env->set_generate_row_callback_for_put(env, put_multiple_generate);
CKERR(r); CKERR(r);
int envflags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE; int envflags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE;
r = env->open(env, ENVDIR, envflags, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); r = env->open(env, envdir, envflags, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
env->set_errfile(env, stderr); env->set_errfile(env, stderr);
DB *dbs[ndb]; DB *dbs[ndb];
...@@ -74,6 +77,10 @@ static void do_args(int argc, char * const argv[]) { ...@@ -74,6 +77,10 @@ static void do_args(int argc, char * const argv[]) {
if (verbose<0) verbose=0; if (verbose<0) verbose=0;
} else if (strcmp(argv[0], "-p") == 0) { } else if (strcmp(argv[0], "-p") == 0) {
loader_flags = LOADER_USE_PUTS; loader_flags = LOADER_USE_PUTS;
} else if (strcmp(argv[0], "-e") == 0) {
argc--; argv++;
if (argc > 0)
envdir = argv[0];
} else { } else {
fprintf(stderr, "Unknown arg: %s\n", argv[0]); fprintf(stderr, "Unknown arg: %s\n", argv[0]);
resultcode=1; resultcode=1;
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <db.h> #include <db.h>
static int loader_flags = 0; static int loader_flags = 0;
static char *envdir = ENVDIR;
static int put_multiple_generate(DB *UU(dest_db), DB *UU(src_db), DBT *UU(dest_key), DBT *UU(dest_val), const DBT *UU(src_key), const DBT *UU(src_val)) { static int put_multiple_generate(DB *UU(dest_db), DB *UU(src_db), DBT *UU(dest_key), DBT *UU(dest_val), const DBT *UU(src_key), const DBT *UU(src_val)) {
return ENOMEM; return ENOMEM;
...@@ -16,15 +17,17 @@ static int put_multiple_generate(DB *UU(dest_db), DB *UU(src_db), DBT *UU(dest_k ...@@ -16,15 +17,17 @@ static int put_multiple_generate(DB *UU(dest_db), DB *UU(src_db), DBT *UU(dest_k
static void loader_open_abort(int ndb) { static void loader_open_abort(int ndb) {
int r; int r;
r = system("rm -rf " ENVDIR); CKERR(r); char rmcmd[32 + strlen(envdir)];
r = toku_os_mkdir(ENVDIR, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); snprintf(rmcmd, sizeof rmcmd, "rm -rf %s", envdir);
r = system(rmcmd); CKERR(r);
r = toku_os_mkdir(envdir, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
DB_ENV *env; DB_ENV *env;
r = db_env_create(&env, 0); CKERR(r); r = db_env_create(&env, 0); CKERR(r);
r = env->set_generate_row_callback_for_put(env, put_multiple_generate); r = env->set_generate_row_callback_for_put(env, put_multiple_generate);
CKERR(r); CKERR(r);
int envflags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE; int envflags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE;
r = env->open(env, ENVDIR, envflags, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); r = env->open(env, envdir, envflags, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
env->set_errfile(env, stderr); env->set_errfile(env, stderr);
DB *dbs[ndb]; DB *dbs[ndb];
...@@ -78,6 +81,10 @@ static void do_args(int argc, char * const argv[]) { ...@@ -78,6 +81,10 @@ static void do_args(int argc, char * const argv[]) {
if (verbose<0) verbose=0; if (verbose<0) verbose=0;
} else if (strcmp(argv[0], "-p") == 0) { } else if (strcmp(argv[0], "-p") == 0) {
loader_flags = LOADER_USE_PUTS; loader_flags = LOADER_USE_PUTS;
} else if (strcmp(argv[0], "-e") == 0) {
argc--; argv++;
if (argc > 0)
envdir = argv[0];
} else { } else {
fprintf(stderr, "Unknown arg: %s\n", argv[0]); fprintf(stderr, "Unknown arg: %s\n", argv[0]);
resultcode=1; resultcode=1;
......
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
#include <db.h> #include <db.h>
#include <sys/stat.h> #include <sys/stat.h>
static char *envdir = ENVDIR;
DB_ENV *env; DB_ENV *env;
int USE_PUTS=0; int USE_PUTS=0;
enum {MAX_NAME=128}; enum {MAX_NAME=128};
...@@ -102,8 +104,10 @@ static void test_loader(DB **dbs) ...@@ -102,8 +104,10 @@ static void test_loader(DB **dbs)
static void run_test(void) static void run_test(void)
{ {
int r; int r;
r = system("rm -rf " ENVDIR); CKERR(r); char rmcmd[32 + strlen(envdir)];
r = toku_os_mkdir(ENVDIR, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); snprintf(rmcmd, sizeof rmcmd, "rm -rf %s", envdir);
r = system(rmcmd); CKERR(r);
r = toku_os_mkdir(envdir, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
r = db_env_create(&env, 0); CKERR(r); r = db_env_create(&env, 0); CKERR(r);
r = env->set_default_bt_compare(env, int64_dbt_cmp); CKERR(r); r = env->set_default_bt_compare(env, int64_dbt_cmp); CKERR(r);
...@@ -111,7 +115,7 @@ static void run_test(void) ...@@ -111,7 +115,7 @@ static void run_test(void)
CKERR(r); CKERR(r);
// int envflags = DB_INIT_LOCK | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE | DB_INIT_LOG; // int envflags = DB_INIT_LOCK | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE | DB_INIT_LOG;
int envflags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE | DB_INIT_LOG; int envflags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE | DB_INIT_LOG;
r = env->open(env, ENVDIR, envflags, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); r = env->open(env, envdir, envflags, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
env->set_errfile(env, stderr); env->set_errfile(env, stderr);
//Disable auto-checkpointing //Disable auto-checkpointing
r = env->checkpointing_set_period(env, 0); CKERR(r); r = env->checkpointing_set_period(env, 0); CKERR(r);
...@@ -175,6 +179,10 @@ static void do_args(int argc, char * const argv[]) { ...@@ -175,6 +179,10 @@ static void do_args(int argc, char * const argv[]) {
if (verbose<0) verbose=0; if (verbose<0) verbose=0;
} else if (strcmp(argv[0], "-p")==0) { } else if (strcmp(argv[0], "-p")==0) {
USE_PUTS = 1; USE_PUTS = 1;
} else if (strcmp(argv[0], "-e") == 0) {
argc--; argv++;
if (argc > 0)
envdir = argv[0];
} else { } else {
fprintf(stderr, "Unknown arg: %s\n", argv[0]); fprintf(stderr, "Unknown arg: %s\n", argv[0]);
resultcode=1; resultcode=1;
......
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
#include <db.h> #include <db.h>
#include <sys/stat.h> #include <sys/stat.h>
static char *envdir = ENVDIR;
DB_ENV *env; DB_ENV *env;
int USE_PUTS=0; int USE_PUTS=0;
enum {MAX_NAME=128}; enum {MAX_NAME=128};
...@@ -104,9 +106,13 @@ static void test_loader(DB **dbs) ...@@ -104,9 +106,13 @@ static void test_loader(DB **dbs)
static void run_test(void) static void run_test(void)
{ {
int r; int r;
r = system("rm -rf " ENVDIR); CKERR(r); char rmcmd[32 + strlen(envdir)];
r = toku_os_mkdir(ENVDIR, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); snprintf(rmcmd, sizeof rmcmd, "rm -rf %s", envdir);
r = toku_os_mkdir(ENVDIR "/log", S_IRWXU+S_IRWXG+S_IRWXO); r = system(rmcmd); CKERR(r);
r = toku_os_mkdir(envdir, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
char logdir[8 + strlen(envdir)];
snprintf(logdir, sizeof logdir, "%s/log", envdir);
r = toku_os_mkdir(logdir, S_IRWXU+S_IRWXG+S_IRWXO);
CKERR(r); CKERR(r);
r = db_env_create(&env, 0); CKERR(r); r = db_env_create(&env, 0); CKERR(r);
...@@ -117,7 +123,7 @@ static void run_test(void) ...@@ -117,7 +123,7 @@ static void run_test(void)
CKERR(r); CKERR(r);
// int envflags = DB_INIT_LOCK | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE | DB_INIT_LOG; // int envflags = DB_INIT_LOCK | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE | DB_INIT_LOG;
int envflags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE | DB_INIT_LOG; int envflags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE | DB_INIT_LOG;
r = env->open(env, ENVDIR, envflags, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); r = env->open(env, envdir, envflags, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
env->set_errfile(env, stderr); env->set_errfile(env, stderr);
//Disable auto-checkpointing //Disable auto-checkpointing
r = env->checkpointing_set_period(env, 0); CKERR(r); r = env->checkpointing_set_period(env, 0); CKERR(r);
...@@ -182,6 +188,10 @@ static void do_args(int argc, char * const argv[]) { ...@@ -182,6 +188,10 @@ static void do_args(int argc, char * const argv[]) {
} else if (strcmp(argv[0], "--block_size") == 0) { } else if (strcmp(argv[0], "--block_size") == 0) {
argc--; argv++; argc--; argv++;
block_size = atoi(argv[0]); block_size = atoi(argv[0]);
} else if (strcmp(argv[0], "-e") == 0) {
argc--; argv++;
if (argc > 0)
envdir = argv[0];
} else { } else {
fprintf(stderr, "Unknown arg: %s\n", argv[0]); fprintf(stderr, "Unknown arg: %s\n", argv[0]);
resultcode=1; resultcode=1;
......
...@@ -460,9 +460,7 @@ static void test_loader(DB **dbs) ...@@ -460,9 +460,7 @@ static void test_loader(DB **dbs)
} }
} }
static char *envdir = ENVDIR;
char *free_me = NULL;
char *env_dir = ENVDIR; // the default env_dir.
char *tmp_subdir = "tmp.subdir"; char *tmp_subdir = "tmp.subdir";
#define OLDDATADIR "../../../../tokudb.data/" #define OLDDATADIR "../../../../tokudb.data/"
...@@ -476,7 +474,7 @@ static void setup(void) { ...@@ -476,7 +474,7 @@ static void setup(void) {
src_db_dir = db_v4_dir; src_db_dir = db_v4_dir;
r = snprintf(syscmd, len, "cp -r %s %s", src_db_dir, env_dir); r = snprintf(syscmd, len, "cp -r %s %s", src_db_dir, envdir);
assert(r<len); assert(r<len);
r = system(syscmd); r = system(syscmd);
CKERR(r); CKERR(r);
...@@ -486,16 +484,16 @@ static void run_test(void) ...@@ -486,16 +484,16 @@ static void run_test(void)
{ {
int r; int r;
int cmdlen = strlen(env_dir) + strlen(tmp_subdir) + 10; int cmdlen = strlen(envdir) + strlen(tmp_subdir) + 10;
char tmpdir[cmdlen]; char tmpdir[cmdlen];
r = snprintf(tmpdir, cmdlen, "%s/%s", env_dir, tmp_subdir); r = snprintf(tmpdir, cmdlen, "%s/%s", envdir, tmp_subdir);
assert(r<cmdlen); assert(r<cmdlen);
// first delete anything left from previous run of this test // first delete anything left from previous run of this test
{ {
int len = strlen(env_dir) + 20; int len = strlen(envdir) + 20;
char syscmd[len]; char syscmd[len];
r = snprintf(syscmd, len, "rm -rf %s", env_dir); r = snprintf(syscmd, len, "rm -rf %s", envdir);
assert(r<len); assert(r<len);
r = system(syscmd); CKERR(r); r = system(syscmd); CKERR(r);
} }
...@@ -503,7 +501,7 @@ static void run_test(void) ...@@ -503,7 +501,7 @@ static void run_test(void)
setup(); setup();
} }
else { else {
r = toku_os_mkdir(env_dir, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); r = toku_os_mkdir(envdir, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
r = toku_os_mkdir(tmpdir, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); r = toku_os_mkdir(tmpdir, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
} }
...@@ -519,7 +517,7 @@ static void run_test(void) ...@@ -519,7 +517,7 @@ static void run_test(void)
r = env->set_generate_row_callback_for_put(env, put_multiple_generate); r = env->set_generate_row_callback_for_put(env, put_multiple_generate);
CKERR(r); CKERR(r);
int envflags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE; int envflags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE;
r = env->open(env, env_dir, envflags, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); r = env->open(env, envdir, envflags, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
env->set_errfile(env, stderr); env->set_errfile(env, stderr);
r = env->checkpointing_set_period(env, 60); CKERR(r); r = env->checkpointing_set_period(env, 60); CKERR(r);
...@@ -565,7 +563,6 @@ int test_main(int argc, char * const *argv) { ...@@ -565,7 +563,6 @@ int test_main(int argc, char * const *argv) {
do_args(argc, argv); do_args(argc, argv);
run_test(); run_test();
if (free_me) toku_free(free_me);
if (progress_infos) { if (progress_infos) {
if (verbose>=2) { if (verbose>=2) {
...@@ -631,12 +628,7 @@ static void do_args(int argc, char * const argv[]) { ...@@ -631,12 +628,7 @@ static void do_args(int argc, char * const argv[]) {
} }
} else if (strcmp(argv[0], "-e")==0) { } else if (strcmp(argv[0], "-e")==0) {
argc--; argv++; argc--; argv++;
if (free_me) toku_free(free_me); envdir = argv[0];
int len = strlen(ENVDIR) + strlen(argv[0]) + 2;
char full_env_dir[len];
int r = snprintf(full_env_dir, len, "%s.%s", ENVDIR, argv[0]);
assert(r<len);
free_me = env_dir = toku_strdup(full_env_dir);
} else if (strcmp(argv[0], "-v")==0) { } else if (strcmp(argv[0], "-v")==0) {
verbose++; verbose++;
} else if (strcmp(argv[0],"-q")==0) { } else if (strcmp(argv[0],"-q")==0) {
......
...@@ -443,9 +443,7 @@ static void test_loader(DB **dbs) ...@@ -443,9 +443,7 @@ static void test_loader(DB **dbs)
} }
} }
static char *envdir = ENVDIR;
char *free_me = NULL;
char *env_dir = ENVDIR; // the default env_dir.
char *tmp_subdir = "tmp.subdir"; char *tmp_subdir = "tmp.subdir";
#define OLDDATADIR "../../../../tokudb.data/" #define OLDDATADIR "../../../../tokudb.data/"
...@@ -459,7 +457,7 @@ static void setup(void) { ...@@ -459,7 +457,7 @@ static void setup(void) {
src_db_dir = db_v4_dir; src_db_dir = db_v4_dir;
r = snprintf(syscmd, len, "cp -r %s %s", src_db_dir, env_dir); r = snprintf(syscmd, len, "cp -r %s %s", src_db_dir, envdir);
assert(r<len); assert(r<len);
r = system(syscmd); r = system(syscmd);
CKERR(r); CKERR(r);
...@@ -469,16 +467,16 @@ static void run_test(void) ...@@ -469,16 +467,16 @@ static void run_test(void)
{ {
int r; int r;
int cmdlen = strlen(env_dir) + strlen(tmp_subdir) + 10; int cmdlen = strlen(envdir) + strlen(tmp_subdir) + 10;
char tmpdir[cmdlen]; char tmpdir[cmdlen];
r = snprintf(tmpdir, cmdlen, "%s/%s", env_dir, tmp_subdir); r = snprintf(tmpdir, cmdlen, "%s/%s", envdir, tmp_subdir);
assert(r<cmdlen); assert(r<cmdlen);
// first delete anything left from previous run of this test // first delete anything left from previous run of this test
{ {
int len = strlen(env_dir) + 20; int len = strlen(envdir) + 20;
char syscmd[len]; char syscmd[len];
r = snprintf(syscmd, len, "rm -rf %s", env_dir); r = snprintf(syscmd, len, "rm -rf %s", envdir);
assert(r<len); assert(r<len);
r = system(syscmd); CKERR(r); r = system(syscmd); CKERR(r);
} }
...@@ -486,7 +484,7 @@ static void run_test(void) ...@@ -486,7 +484,7 @@ static void run_test(void)
setup(); setup();
} }
else { else {
r = toku_os_mkdir(env_dir, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); r = toku_os_mkdir(envdir, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
r = toku_os_mkdir(tmpdir, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); r = toku_os_mkdir(tmpdir, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
} }
...@@ -503,7 +501,7 @@ static void run_test(void) ...@@ -503,7 +501,7 @@ static void run_test(void)
r = env->set_generate_row_callback_for_put(env, put_multiple_generate); r = env->set_generate_row_callback_for_put(env, put_multiple_generate);
CKERR(r); CKERR(r);
int envflags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE; int envflags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE;
r = env->open(env, env_dir, envflags, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); r = env->open(env, envdir, envflags, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
env->set_errfile(env, stderr); env->set_errfile(env, stderr);
r = env->checkpointing_set_period(env, 60); CKERR(r); r = env->checkpointing_set_period(env, 60); CKERR(r);
...@@ -549,7 +547,6 @@ int test_main(int argc, char * const *argv) { ...@@ -549,7 +547,6 @@ int test_main(int argc, char * const *argv) {
do_args(argc, argv); do_args(argc, argv);
run_test(); run_test();
if (free_me) toku_free(free_me);
if (progress_infos) { if (progress_infos) {
if (verbose>=2) { if (verbose>=2) {
...@@ -615,12 +612,7 @@ static void do_args(int argc, char * const argv[]) { ...@@ -615,12 +612,7 @@ static void do_args(int argc, char * const argv[]) {
} }
} else if (strcmp(argv[0], "-e")==0) { } else if (strcmp(argv[0], "-e")==0) {
argc--; argv++; argc--; argv++;
if (free_me) toku_free(free_me); envdir = argv[0];
int len = strlen(ENVDIR) + strlen(argv[0]) + 2;
char full_env_dir[len];
int r = snprintf(full_env_dir, len, "%s.%s", ENVDIR, argv[0]);
assert(r<len);
free_me = env_dir = toku_strdup(full_env_dir);
} else if (strcmp(argv[0], "-v")==0) { } else if (strcmp(argv[0], "-v")==0) {
verbose++; verbose++;
} else if (strcmp(argv[0],"-q")==0) { } else if (strcmp(argv[0],"-q")==0) {
......
...@@ -11,9 +11,10 @@ DB_ENV *env; ...@@ -11,9 +11,10 @@ DB_ENV *env;
enum {MAX_NAME=128}; enum {MAX_NAME=128};
enum {MAX_DBS=16}; enum {MAX_DBS=16};
enum {MAX_ROW_LEN=1024}; enum {MAX_ROW_LEN=1024};
int NUM_DBS=10; static int NUM_DBS=10;
int USE_PUTS=0; static int USE_PUTS=0;
int USE_REGION=0; static int USE_REGION=0;
static char *envdir = ENVDIR;
static int generate_rows_for_region(DB *dest_db, DB *src_db, DBT *dest_key, DBT *dest_val, const DBT *src_key, const DBT *src_val) __attribute__((unused)); static int generate_rows_for_region(DB *dest_db, DB *src_db, DBT *dest_key, DBT *dest_val, const DBT *src_key, const DBT *src_val) __attribute__((unused));
static int generate_rows_for_lineitem(DB *dest_db, DB *src_db, DBT *dest_key, DBT *dest_val, const DBT *src_key, const DBT *src_val) __attribute__((unused)); static int generate_rows_for_lineitem(DB *dest_db, DB *src_db, DBT *dest_key, DBT *dest_val, const DBT *src_key, const DBT *src_val) __attribute__((unused));
...@@ -361,8 +362,10 @@ static int test_loader(DB **dbs) ...@@ -361,8 +362,10 @@ static int test_loader(DB **dbs)
static int run_test(void) static int run_test(void)
{ {
int r; int r;
r = system("rm -rf " ENVDIR); CKERR(r); char rmcmd[32 + strlen(envdir)];
r = toku_os_mkdir(ENVDIR, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); snprintf(rmcmd, sizeof rmcmd, "rm -rf %s", envdir);
r = system(rmcmd); CKERR(r);
r = toku_os_mkdir(envdir, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
r = db_env_create(&env, 0); CKERR(r); r = db_env_create(&env, 0); CKERR(r);
db_env_enable_engine_status(0); // disable engine status on crash because test is expected to fail db_env_enable_engine_status(0); // disable engine status on crash because test is expected to fail
...@@ -378,7 +381,7 @@ static int run_test(void) ...@@ -378,7 +381,7 @@ static int run_test(void)
} }
int envflags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE; int envflags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_PRIVATE;
r = env->open(env, ENVDIR, envflags, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r); r = env->open(env, envdir, envflags, S_IRWXU+S_IRWXG+S_IRWXO); CKERR(r);
env->set_errfile(env, stderr); env->set_errfile(env, stderr);
//Disable auto-checkpointing //Disable auto-checkpointing
r = env->checkpointing_set_period(env, 0); CKERR(r); r = env->checkpointing_set_period(env, 0); CKERR(r);
...@@ -443,6 +446,10 @@ static void do_args(int argc, char * const argv[]) { ...@@ -443,6 +446,10 @@ static void do_args(int argc, char * const argv[]) {
USE_PUTS = 1; USE_PUTS = 1;
} else if (strcmp(argv[0], "-g")==0) { } else if (strcmp(argv[0], "-g")==0) {
USE_REGION = 1; USE_REGION = 1;
} else if (strcmp(argv[0], "-e") == 0) {
argc--; argv++;
if (argc > 0)
envdir = argv[0];
} else { } else {
fprintf(stderr, "Unknown arg: %s\n", argv[0]); fprintf(stderr, "Unknown arg: %s\n", argv[0]);
resultcode=1; resultcode=1;
......
...@@ -86,7 +86,7 @@ else ifeq ($(VERBOSE),1) ...@@ -86,7 +86,7 @@ else ifeq ($(VERBOSE),1)
MAYBEATSIGN=@ MAYBEATSIGN=@
endif endif
CPPFLAGS = $(INCLUDEDIRS) -I$(PORTABILITY_HEADERS) -I$(TOKUROOT)toku_include CPPFLAGS = $(INCLUDEDIRS) -I$(PORTABILITY_HEADERS) -I$(TOKUROOT)toku_include $(EXTRA_INCLUDES)
ifeq ($(SYSTEM),freebsd) ifeq ($(SYSTEM),freebsd)
CPPFLAGS += -DTOKU_ALLOW_DEPRECATED CPPFLAGS += -DTOKU_ALLOW_DEPRECATED
endif endif
......
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