Project: lixa
Code Location: https://lixa.svn.sourceforge.net/svnroot/lixa/tests//tests
Browse
/
Download File
tx_5_26.at
AT_BANNER([TX: 5.26 tx_open()])

# All test cases check:
#
# The function tx_open( ) must successfully return before a thread of control
# participates in global transactions.
AT_SETUP([TX/5.26/0.0])
AT_DATA([monkey1s.conf],
[[# monkey R.M. config
xa_open/-3
xa_close/0
xa_open/0
xa_close/0
]])
AT_DATA([monkey1d.conf],
[[# monkey R.M. config
xa_open/0
xa_close/0
xa_open/0
xa_close/0
]])
AT_CHECK([export LIXA_PROFILE=CASE_PROF_0003 ; lixa_test_exec.sh reset start case0018 -6 2>$TESTS_TMP_FILE1], [0], [ignore], [ignore])
#
# If tx_open( ) returns [TX_ERROR], no resource managers are open.
AT_CHECK([cat $TESTS_TMP_FILE1 | tee $TESTS_TMP_FILE2 && grep 'performing xa_close on all the resource managers because tx_open is not TX_OK' $TESTS_TMP_FILE2], [0], [ignore], [ignore])
AT_CLEANUP

AT_SETUP([TX/5.26/0.1])
AT_DATA([monkey1s.conf],
[[# monkey R.M. config
xa_open/0
xa_close/0
]])
AT_DATA([monkey1d.conf],
[[# monkey R.M. config
xa_open/0
xa_close/0
]])
AT_CHECK([export LIXA_PROFILE=CASE_PROF_0003 ; lixa_test_exec.sh noreset none case0018 0 2>$TESTS_TMP_FILE1], [0], [ignore], [ignore])
#
# If tx_open( ) returns [TX_OK], some or all of the resource managers have
# been opened.
AT_CHECK([cat $TESTS_TMP_FILE1 | tee $TESTS_TMP_FILE2 && grep 'xa_open_entry.* 0, 0x0) = 0' $TESTS_TMP_FILE2], [0], [ignore], [ignore])
AT_CHECK([cat $TESTS_TMP_FILE1 | tee $TESTS_TMP_FILE2 && grep 'xa_open_entry.* 1, 0x0) = 0' $TESTS_TMP_FILE2], [0], [ignore], [ignore])
AT_CLEANUP

AT_SETUP([TX/5.26/0.2])
AT_DATA([monkey1s.conf],
[[# monkey R.M. config
xa_open/0
xa_close/0
]])
AT_DATA([monkey1d.conf],
[[# monkey R.M. config
xa_open/0
xa_close/0
]])
AT_CHECK([export LIXA_PROFILE=CASE_PROF_0003 ; lixa_test_exec.sh noreset none case0018 0 2>$TESTS_TMP_FILE1], [0], [ignore], [ignore])
#
# Once tx_open( ) returns success, subsequent calls to tx_open( ) (before an
# intervening call to tx_close( )) are allowed. However, such subsequent calls
# return success, and the TM does not attempt to reopen any RMs.
AT_CHECK([cat $TESTS_TMP_FILE1 | tee $TESTS_TMP_FILE2 && grep 'lixa_tx_open: already opened (txstate = 1)' $TESTS_TMP_FILE2], [0], [ignore], [ignore])
AT_CLEANUP

AT_SETUP([TX/5.26/0.3])
AT_DATA([monkey1s.conf],
[[# monkey R.M. config
xa_open/0
xa_close/0
xa_open/0
xa_close/0
]])
AT_DATA([monkey1d.conf],
[[# monkey R.M. config
xa_open/-5
xa_close/-5
xa_open/0
xa_close/0
]])
#
# [TX_FAIL]
# Either the transaction manager or one or more of the resource managers
# encountered a fatal error. The nature of the error is such that the
# transaction manager and/or one or more of the resource managers can no
# longer perform work on behalf of the application. The exact nature of the
# error is determined in a product-specific manner. 
AT_CHECK([export LIXA_PROFILE=CASE_PROF_0003 ; lixa_test_exec.sh noreset stop case0018 -7], [0], [ignore], [ignore])
AT_CLEANUP