libdb/test/xa/src1/run.sh
2012-11-14 15:13:24 -05:00

131 lines
2.6 KiB
Bash

#! /bin/sh
#
# Run test 1.
msg()
{
test "$DVERBOSE" == 1 && {
echo "========"
echo "======== $1"
echo "========"
}
}
init_tmadmin()
{
tmadmin << END_OF_TMADMIN
crdl -z $TLOGDEVICE -b 500
crlog -m cluster3
END_OF_TMADMIN
}
mkdir $RUN/data2
# Everything else is done in run/bin.
cd $RUN/bin
# The CFLAGS variable defines the pre-processor defines -- start with
# whatever the user set, and add our own stuff.
#
# For debugging output, add -DDVERBOSE
test "$DVERBOSE" == 1 && {
COMPILE_FLAGS="-DDVERBOSE"
DVERBOSE_FLAG="-v"
}
COMPILE_FLAGS="$CFLAGS $COMPILE_FLAGS -g -I../../.."
UTILITY_FILES="-f ../../src1/htimestampxa.c -f ../../utilities/bdb_xa_util.c"
msg "BUILDING CLIENT"
CFLAGS="$COMPILE_FLAGS"; export CFLAGS
buildclient -r BERKELEY-DB $DVERBOSE_FLAG -o client \
$UTILITY_FILES -f ../../src1/client.c
test "$?" -eq 0 || {
echo "FAIL: buildclient failed."
exit 1
}
msg "BUILDING SERVER #1"
CFLAGS="$COMPILE_FLAGS -DSERVER1"; export CFLAGS
buildserver -r BERKELEY-DB $DVERBOSE_FLAG -o server1 \
-s TestTxn1:TestTxn1 \
$UTILITY_FILES -f ../../src1/server.c
test "$?" -eq 0 || {
echo "FAIL: buildserver failed."
exit 1
}
msg "BUILDING SERVER #2"
CFLAGS="$COMPILE_FLAGS -DSERVER2"; export CFLAGS
buildserver $DVERBOSE_FLAG -r BERKELEY-DB -o server2 \
-s TestTxn2:TestTxn2 \
$UTILITY_FILES -f ../../src1/server.c
test "$?" -eq 0 || {
echo "FAIL: buildserver failed."
exit 1
}
msg "BUILDING THE RESOURCE MANAGER."
buildtms -o DBRM -r BERKELEY-DB
init_tmadmin
# Boot Tuxedo.
# You should see something like:
#
# Booting admin processes ...
#
# exec BBL -A :
# process id=13845 ... Started.
#
# Booting server processes ...
#
# exec DBRM -A :
# process id=13846 ... Started.
# exec DBRM -A :
# process id=13847 ... Started.
# exec server1 -A :
# process id=13848 ... Started.
# exec server2 -A :
# process id=13849 ... Started.
# 5 processes started.
msg "BOOTING TUXEDO."
tmboot -y
# Run the client with 10, 100 and 1000 transactions.
exitval=0
for i in 10 100 1000; do
msg "RUN THE CLIENT WITH $i TRANSACTIONS."
./client $DVERBOSE_FLAG -n $i
test "$?" -ne 0 && {
echo "FAIL: client failed"
exitval=1
break;
}
done
msg "SHUTTING DOWN THE TRANSACTION MANAGER."
echo 'y' | tmshutdown
# Copy out any server output.
echo "STDOUT:"
cat stdout
# Copy out any server errors.echo "STDERR:"
cat stderr
test -s stderr && {
echo "STDERR:"
cat stderr
echo "FAIL: stderr file not empty"
exitval=1
}
# We never checkpointed, run recovery to make sure it all works.
msg "RECOVERY:"
db_recover -h ../data -v
test "$?" -ne 0 && {
echo "FAIL: recovery failed"
exitval=1
}
exit $exitval