#!/bin/sh - # # $Id: s_chk_logverify,v 0f73af5ae3da 2010/05/10 05:38:40 alexander $ # # Verify that the log verify code works as expected. # Run from build_unix dir on linux blade server d=.. [ -f $d/LICENSE ] || { echo 'FAIL: Test must be run from scr directory.' exit 1 } b=./tmp_build/ s=$d/src mkdir -p $b opts="--disable-shared --enable-stl" echo "Building DB library, this can take a while." (cd $b && ../../dist/configure $opts > /dev/null && make > /dev/null) || { echo 'FAIL: unable to build libdb.a' exit 1 } # if compile on linux blade server, add -D_GNU_SOURCE -pthread on cc CINC="-I$b -I$s" [ `uname` = "Linux" ] && CINC=" -D_GNU_SOURCE $CINC -pthread" if cc -g -Wall $CINC $0.c $b/libdb.a -o t; then : else echo "FAIL: unable to compile test program $0.c" exit 1 fi if ./t; then : else echo "FAIL: test program failed" exit 1 fi rm -fr TESTDIR mkdir -p TESTDIR resdir=`pwd`/TESTDIR # Running log verify internal functions test. ./t cd $b lv=./db_log_verify # Running db_perf tests. make db_perf cmd=./db_perf configs=../$d/test/perf/configs echo Sanity Tests echo "**** db_perf -c $configs/sanity_btree.conf ****" rm -rf TESTDIR mkdir TESTDIR $cmd -I -hTESTDIR -c $configs/sanity_btree.conf 2>&1 > TESTDIR/OUTPUT $cmd -hTESTDIR -c $configs/sanity_btree.conf 2>&1 >> TESTDIR/OUTPUT $lv -hTESTDIR 2>&1 >> TESTDIR/OUTPUT cp TESTDIR/OUTPUT $resdir/OUTPUT.1 echo "**** db_perf -c $configs/sanity_hash.conf ****" rm -rf TESTDIR mkdir TESTDIR $cmd -I -hTESTDIR -c $configs/sanity_hash.conf 2>&1 > TESTDIR/OUTPUT $cmd -hTESTDIR -c $configs/sanity_hash.conf 2>&1 >> TESTDIR/OUTPUT $lv -hTESTDIR 2>&1 >> TESTDIR/OUTPUT cp TESTDIR/OUTPUT $resdir/OUTPUT.2 echo Archive Tests echo "**** db_perf -c $configs/archive_fatal_hash.conf -C ****" rm -rf TESTDIR TESTDIR.A rm -f logverify.ERR mkdir TESTDIR TESTDIR.A $cmd -I -hTESTDIR -c $configs/archive_fatal_hash.conf 2>&1 > TESTDIR/OUTPUT $cmd -C -hTESTDIR -c $configs/archive_fatal_hash.conf 2>&1 >> TESTDIR/OUTPUT $lv -hTESTDIR 2>logverify.ERR >> TESTDIR/OUTPUT || { grep DB_NOTFOUND logverify.ERR >/dev/null 2>/dev/null || \ echo "ERROR: expect DB_NOTFOUND in the error output" } cp TESTDIR/OUTPUT $resdir/OUTPUT.3 echo "**** db_perf -c $configs/archive_fatal_btree.conf -C ****" rm -rf TESTDIR TESTDIR.A rm -f logverify.ERR mkdir TESTDIR TESTDIR.A $cmd -I -hTESTDIR -c $configs/archive_fatal_btree.conf 2>&1 > TESTDIR/OUTPUT $cmd -C -hTESTDIR -c $configs/archive_fatal_btree.conf 2>&1 >> TESTDIR/OUTPUT $lv -hTESTDIR 2>logverify.ERR >> TESTDIR/OUTPUT || { grep DB_NOTFOUND logverify.ERR >/dev/null 2>/dev/null || \ echo "ERROR: expect DB_NOTFOUND in the error output" } cp TESTDIR/OUTPUT $resdir/OUTPUT.4 echo "**** db_perf -c $configs/archive_btree.conf -C ****" rm -rf TESTDIR TESTDIR.A mkdir TESTDIR TESTDIR.A $cmd -I -hTESTDIR -c $configs/archive_btree.conf 2>&1 > TESTDIR/OUTPUT $cmd -C -hTESTDIR -c $configs/archive_btree.conf 2>&1 >> TESTDIR/OUTPUT $lv -hTESTDIR 2>&1 >> TESTDIR/OUTPUT cp TESTDIR/OUTPUT $resdir/OUTPUT.5 echo Crash Tests echo "**** db_perf -c $configs/crash_test_1.conf ****" rm -rf TESTDIR TESTDIR.A mkdir TESTDIR TESTDIR.A $cmd -I -hTESTDIR -c $configs/crash_test_1.conf 2>&1 > TESTDIR/OUTPUT $cmd -hTESTDIR -c $configs/crash_test_1.conf 2>&1 >> TESTDIR/OUTPUT rm TESTDIR/__db.0* # Remove region files because the environment is corrupted. $lv -hTESTDIR 2>&1 >> TESTDIR/OUTPUT cp TESTDIR/OUTPUT $resdir/OUTPUT.6 echo "**** db_perf -c $configs/crash_test_2.conf ****" rm -rf TESTDIR TESTDIR.A rm -f logverify.ERR mkdir TESTDIR TESTDIR.A $cmd -I -hTESTDIR -c $configs/crash_test_2.conf 2>&1 > TESTDIR/OUTPUT $cmd -hTESTDIR -c $configs/crash_test_2.conf 2>&1 >> TESTDIR/OUTPUT rm TESTDIR/__db.0* # Remove region files because the environment is corrupted. $lv -hTESTDIR 2>logverify.ERR >> TESTDIR/OUTPUT || { grep DB_NOTFOUND logverify.ERR >/dev/null 2>/dev/null || \ echo "ERROR: expect DB_NOTFOUND in the error output" } cp TESTDIR/OUTPUT $resdir/OUTPUT.7 echo "**** db_perf -c $configs/crash_test_3.conf ****" rm -rf TESTDIR TESTDIR.A mkdir TESTDIR TESTDIR.A $cmd -I -hTESTDIR -c $configs/crash_test_3.conf 2>&1 > TESTDIR/OUTPUT $cmd -hTESTDIR -c $configs/crash_test_3.conf 2>&1 >> TESTDIR/OUTPUT rm TESTDIR/__db.0* # Remove region files because the environment is corrupted. $lv -hTESTDIR 2>&1 >> TESTDIR/OUTPUT cp TESTDIR/OUTPUT $resdir/OUTPUT.8 echo "**** db_perf -S 2 -c $configs/crash_test_1.conf ****" rm -rf TESTDIR TESTDIR.A mkdir TESTDIR TESTDIR.A $cmd -I -hTESTDIR -S 2 -c $configs/crash_test_1.conf 2>&1 > TESTDIR/OUTPUT $cmd -hTESTDIR -S 2 -c $configs/crash_test_1.conf 2>&1 >> TESTDIR/OUTPUT rm TESTDIR/__db.0* # Remove region files because the environment is corrupted. $lv -hTESTDIR 2>&1 >> TESTDIR/OUTPUT cp TESTDIR/OUTPUT $resdir/OUTPUT.9 echo "**** db_perf -S 1 -c $configs/crash_test_4.conf ****" rm -rf TESTDIR TESTDIR.A mkdir TESTDIR TESTDIR.A $cmd -I -hTESTDIR -S 1 -c $configs/crash_test_4.conf 2>&1 > TESTDIR/OUTPUT $cmd -hTESTDIR -S 1 -c $configs/crash_test_4.conf 2>&1 >> TESTDIR/OUTPUT rm TESTDIR/__db.0* # Remove region files because the environment is corrupted. $lv -hTESTDIR 2>&1 >> TESTDIR/OUTPUT cp TESTDIR/OUTPUT $resdir/OUTPUT.10 # Running dbs tests. cmd=./dbs make dbs echo Sanity Tests echo "************* dbs *******************" rm -rf TESTDIR mkdir TESTDIR $cmd -I -hTESTDIR 2>&1 > TESTDIR/OUTPUT $cmd -hTESTDIR 2>&1 >> TESTDIR/OUTPUT $lv -h TESTDIR 2>&1 >> TESTDIR/OUTPUT cp TESTDIR/OUTPUT $resdir/OUTPUT.11 echo "************* dbs -t btree *******************" rm -rf TESTDIR mkdir TESTDIR $cmd -I -tbtree -hTESTDIR 2>&1 > TESTDIR/OUTPUT $cmd -tbtree -hTESTDIR 2>&1 >> TESTDIR/OUTPUT $lv -h TESTDIR 2>&1 >> TESTDIR/OUTPUT cp TESTDIR/OUTPUT $resdir/OUTPUT.12 echo Archive Tests echo "************* dbs -CA *******************" rm -rf TESTDIR T2 mkdir TESTDIR T2 $cmd -I -hTESTDIR 2>&1 > TESTDIR/OUTPUT $cmd -CA T2 -hTESTDIR 2>&1 >> TESTDIR/OUTPUT $lv -h TESTDIR 2>&1 >> TESTDIR/OUTPUT cp TESTDIR/OUTPUT $resdir/OUTPUT.13 echo "************* dbs -CA -tbtree *******************" rm -rf TESTDIR T2 mkdir TESTDIR T2 $cmd -I -tbtree -hTESTDIR 2>&1 > TESTDIR/OUTPUT $cmd -CA T2 -tbtree -hTESTDIR 2>&1 >> TESTDIR/OUTPUT $lv -h TESTDIR 2>&1 >> TESTDIR/OUTPUT cp TESTDIR/OUTPUT $resdir/OUTPUT.14 echo "************* dbs -Ca -tbtree *******************" rm -rf TESTDIR T2 mkdir TESTDIR T2 $cmd -I -tbtree -c 10 2>&1 > TESTDIR/OUTPUT $cmd -Ca T2 -tbtree -hTESTDIR 2>&1 >> TESTDIR/OUTPUT $lv -h TESTDIR 2>&1 >> TESTDIR/OUTPUT cp TESTDIR/OUTPUT $resdir/OUTPUT.15 echo Crash Tests echo "************ dbs -K30 -a T2 -tbtree -c 10 -k 4 -V" rm -rf TESTDIR T2 mkdir TESTDIR T2 $cmd -I -tbtree -c 10 -hTESTDIR 2>&1 > TESTDIR/OUTPUT $cmd -K30 -a T2 -tbtree -c 10 -k 4 -hTESTDIR 2>&1 >> TESTDIR/OUTPUT rm TESTDIR/__db.0* # Remove region files because the environment is corrupted. $lv -h TESTDIR 2>&1 >> TESTDIR/OUTPUT cp TESTDIR/OUTPUT $resdir/OUTPUT.16 echo "************ dbs -K60 -A T2 -tbtree -c 10 -k 4 -V" rm -rf TESTDIR T2 mkdir TESTDIR T2 $cmd -I -tbtree -c 10 -hTESTDIR 2>&1 > TESTDIR/OUTPUT $cmd -K60 -A T2 -tbtree -c 10 -k 4 -hTESTDIR 2>&1 >> TESTDIR/OUTPUT rm TESTDIR/__db.0* # Remove region files because the environment is corrupted. $lv -h TESTDIR 2>&1 >> TESTDIR/OUTPUT cp TESTDIR/OUTPUT $resdir/OUTPUT.17 echo "************ dbs -K180 -a T2 -tbtree -c 10 -k 4 -V" rm -rf TESTDIR T2 mkdir TESTDIR T2 $cmd -I -tbtree -c 10 -hTESTDIR 2>&1 > TESTDIR/OUTPUT $cmd -K180 -a T2 -tbtree -c 10 -k 4 -hTESTDIR 2>&1 >> TESTDIR/OUTPUT rm TESTDIR/__db.0* # Remove region files because the environment is corrupted. $lv -h TESTDIR 2>&1 >> TESTDIR/OUTPUT cp TESTDIR/OUTPUT $resdir/OUTPUT.18 echo "************ dbs -s 2 -K30 -a T2 -tbtree -c 10 -k 4 -V" rm -rf TESTDIR T2 mkdir TESTDIR T2 $cmd -s 2 -I -tbtree -c 10 -hTESTDIR 2>&1 > TESTDIR/OUTPUT $cmd -s 2 -K30 -A T2 -tbtree -c 10 -k 4 -hTESTDIR 2>&1 >> TESTDIR/OUTPUT rm TESTDIR/__db.0* # Remove region files because the environment is corrupted. $lv -h TESTDIR 2>&1 >> TESTDIR/OUTPUT cp TESTDIR/OUTPUT $resdir/OUTPUT.19 echo "************ dbs -s 1 -K60 -a T2 -tbtree -c 10 -k 4 -V" rm -rf TESTDIR T2 mkdir TESTDIR T2 $cmd -s 1 -I -tbtree -c 10 -hTESTDIR 2>&1 > TESTDIR/OUTPUT $cmd -s 1 -K60 -a T2 -tbtree -c 10 -k 4 -hTESTDIR 2>&1 >> TESTDIR/OUTPUT rm TESTDIR/__db.0* # Remove region files because the environment is corrupted. $lv -h TESTDIR 2>&1 >> TESTDIR/OUTPUT cp TESTDIR/OUTPUT $resdir/OUTPUT.20 # Running test_dbstl tests. make test_dbstl ./test_dbstl -I -s b -m t -t a -T 200 -k 50 -l 100 -c 33554432 $lv -h dbenv ./test_dbstl -I -s h -m t -t e -T 200 -k 50 -l 100 -c 33554432 $lv -h dbenv ./test_dbstl -I -s b -m t -t e -T 200 -k 50 -l 100 -c 33554432 -M $lv -h dbenv ./test_dbstl -I -s h -m t -t a -T 200 -k 50 -l 100 -c 33554432 -M $lv -h dbenv