#! /bin/sh # # Test XA support. func_clean() { rm -rf run mkdir -p run/bin run/config run/data } # Debug the shell script. # set -x # Check to make sure we have a Tuxedo build we understand. test -z "$TUXDIR" && { echo "FAIL: the TUXDIR environment variable NOT set" echo \ "FAIL: TUXDIR must be set to the absolute path of the Tuxedo install" echo "FAIL: immediately above the subdirectories bin, include and lib" exit 1 } dlist="include lib" for i in $dlist; do test -d $TUXDIR/$i || { echo "FAIL: check the Tuxedo install" echo "FAIL: the required directory $TUXDIR/$i does not exist" exit 1 } done flist="bin/buildclient bin/buildserver bin/buildtms bin/tmadmin bin/tmboot bin/tmloadcf bin/tmshutdown udataobj/RM" for i in $flist; do test -f $TUXDIR/$i || { echo "FAIL: check the Tuxedo install" echo "FAIL: the required file $TUXDIR/$i does not exist" exit 1 } done # Set the location of the Berkeley DB libraries -- allow the user to override. # Check to make sure we have a Berkeley DB installation. (I'd like to use the # local DB installation, but I've never been able to make Tuxedo load shared # libraries from the .libs directory.) REL=../../dist/RELEASE test -z "$DB_INSTALL" && test -f $REL && { . $REL DB_INSTALL=/usr/local/BerkeleyDB.${DB_VERSION_MAJOR}.${DB_VERSION_MINOR} export DB_INSTALL } if test -f "$DB_INSTALL/lib/libdb.so"; then echo "Using Berkeley DB $DB_INSTALL/lib/ installation" else echo "FAIL: $DB_INSTALL/lib/libdb.so not found" echo \ "FAIL: DB_INSTALL must be set to the absolute path of the Berkeley DB install" exit 1 fi # You may need to update the Tuxedo resource manager file. It should be in: # # $TUXDIR/udataobj/RM # # Solaris requires a line something like the following: # # BERKELEY-DB:db_xa_switch:-L${DB_INSTALL}/lib -ldb # # where DB_INSTALL is a Berkeley DB install, and /lib contains DB libraries. egrep "^BERKELEY-DB:db_xa_switch:" $TUXDIR/udataobj/RM > /dev/null || { echo "FAIL: $TUXDIR/udataobj/RM does not list DB as one of its RMs" echo "FAIL: Try adding:" echo "FAIL: BERKELEY-DB:db_xa_switch:-L\${DB_INSTALL}/lib -ldb" exit 1 } RUN=`pwd`/run; export RUN FIELDTBLS32=datafml.fml; export FIELDTBLS32 FLDTBLDIR32=$RUN/config; export FLDTBLDIR32 TLOGDEVICE=$RUN/data/dlog; export TLOGDEVICE TUXCONFIG=$RUN/config/tuxconfig;export TUXCONFIG APPDIR="$RUN/bin"; export APPDIR MACHINE_NAME=`uname -n`; export MACHINE_NAME TLOGNAME="TLOG"; export TLOGNAME # Causes the TMS to call close before calling open #TUXWA4ORACLE=1; export TUXWA4ORACLE # TMTRACE will print each call done by the txn manager #TMTRACE=*:ulog:dye; export TMTRACE # DVERBOSE will enable verbose output when set to 1 #DVERBOSE=1; export DVERBOSE PATH="$RUN/bin:$TUXDIR/bin:$PATH" LD_LIBRARY_PATH=$DB_INSTALL/lib:$TUXDIR/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH PATH echo "TEST 1" func_clean utilities/tuxconfig.sh 200103 src1/run.sh if test "$?" -ne 0; then exit 1 fi echo "TEST 2" func_clean src2/tuxconfig.sh src2/run.sh if test "$?" -ne 0; then exit 1 fi echo "TEST 3" # multi threaded test func_clean utilities/multi_tuxconfig.sh 200104 src3/run.sh 0 if test "$?" -ne 0; then exit 1 fi # multi threaded test where one thread dies func_clean utilities/tuxconfig.sh 200105 src3/run.sh 1 if test "$?" -ne 0; then exit 1 fi echo "TEST 4" # multi threaded test func_clean utilities/multi_tuxconfig.sh 200103 src4/run.sh 0 if test "$?" -ne 0; then exit 1 fi echo "TEST 5" # MVCC tests. for i in {0..2} do func_clean utilities/multi_1thr_tuxconfig.sh $((200106 + $i)) src5/run.sh $i if test "$?" -ne 0; then exit 1 fi done exit 0