0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036 export TESTNO="028"
0037 export TESTNAME_SHORT="tmq"
0038 export TESTNAME="test${TESTNO}_${TESTNAME_SHORT}"
0039
0040 PWD=`pwd`
0041 if [ `echo $PWD | grep $TESTNAME ` ]; then
0042
0043 echo > /dev/null
0044 else
0045
0046 pushd .
0047 echo "Doing cd"
0048 cd $TESTNAME
0049 fi;
0050
0051 . ../testenv.sh
0052
0053 export TESTDIR="$NDRX_APPHOME/atmitest/$TESTNAME"
0054 export PATH=$PATH:$TESTDIR
0055
0056 export NDRX_TOUT=90
0057 export NDRX_LIBEXT="so"
0058 export NDRX_ULOG=$TESTDIR
0059
0060
0061
0062
0063 function set_dom1 {
0064 echo "Setting domain 1"
0065 . ../dom1.sh
0066 export NDRX_CONFIG=$TESTDIR/ndrxconfig-dom1.xml
0067 export NDRX_DMNLOG=$TESTDIR/ndrxd-dom1.log
0068 export NDRX_LOG=$TESTDIR/ndrx-dom1.log
0069 export NDRX_DEBUG_CONF=$TESTDIR/debug-dom1.conf
0070
0071
0072 export NDRX_XA_RES_ID=1
0073 export NDRX_XA_OPEN_STR="datadir=./QSPACE1,qspace=MYSPACE"
0074 export NDRX_XA_CLOSE_STR=$NDRX_XA_OPEN_STR
0075
0076 export NDRX_XA_DRIVERLIB=$NDRX_XA_DRIVERLIB_FILENAME
0077
0078 export NDRX_XA_RMLIB=libndrxxaqdisk.so
0079 if [ "$(uname)" == "Darwin" ]; then
0080 export NDRX_XA_RMLIB=libndrxxaqdisk.dylib
0081 export NDRX_LIBEXT="dylib"
0082 fi
0083 export NDRX_XA_LAZY_INIT=0
0084 }
0085
0086
0087
0088
0089 function go_out {
0090 echo "Test exiting with: $1"
0091
0092 set_dom1;
0093 xadmin stop -y
0094 xadmin down -y
0095
0096
0097 xadmin killall atmiclt28
0098
0099 popd 2>/dev/null
0100 exit $1
0101 }
0102
0103
0104 function clean_logs {
0105
0106 for f in `ls *.log`; do
0107 echo > $f
0108 done
0109 }
0110
0111
0112
0113 function test_empty_qspace {
0114 echo "Testing Qspace empty"
0115
0116 COUNT=`find ./QSPACE1 -type f | wc | awk '{print $1}'`
0117
0118 if [[ "X$COUNT" != "X0" ]]; then
0119 echo "QSPACE1 MUST BE EMPTY AFTER TEST!!!!"
0120 go_out 2
0121 fi
0122
0123
0124 }
0125
0126
0127
0128
0129 rm -rf ./RM1
0130 mkdir RM1
0131
0132 rm -rf ./RM2
0133 mkdir RM2
0134
0135
0136 rm -rf ./QSPACE1
0137 mkdir QSPACE1
0138
0139 cp q.conf.tpl q.conf
0140
0141 clean_logs;
0142 rm *.log >/dev/null
0143
0144 set_dom1;
0145
0146 xadmin down -y
0147
0148 sleep 2
0149 xadmin start -y || go_out 1
0150
0151
0152 set_dom1;
0153
0154
0155 xadmin psc
0156 xadmin psvc
0157 xadmin ppm
0158
0159 set | grep NDRX
0160
0161 echo "Running: basic test (enq + deq)"
0162 (./atmiclt28 basic 2>&1) > ./atmiclt-dom1.log
0163 RET=$?
0164
0165 if [[ "X$RET" != "X0" ]]; then
0166 go_out $RET
0167 fi
0168
0169 test_empty_qspace;
0170
0171 echo "Running: Future FIFO/LIFO AUTO (TPQTIME_ABS & TPQTIME_REL) tests"
0172 (./atmiclt28 futauto 2>&1) >> ./atmiclt-dom1.log
0173 RET=$?
0174
0175 if [[ "X$RET" != "X0" ]]; then
0176 go_out $RET
0177 fi
0178
0179 test_empty_qspace;
0180
0181
0182 if [ "X`grep TESTERROR *.log`" != "X" ]; then
0183 echo "Test error detected!"
0184 goto_out -1
0185 fi
0186
0187 echo "Running: enqueue"
0188 (./atmiclt28 enq 2>&1) > ./atmiclt-dom1.log
0189 RET=$?
0190
0191 if [[ "X$RET" != "X0" ]]; then
0192 go_out $RET
0193 fi
0194
0195
0196
0197 echo ">>> Listing b4"
0198 ls -l QSPACE1/committed
0199 ls -l QSPACE1/committed | wc
0200
0201 xadmin stop -y
0202
0203 sleep 2
0204 xadmin start -y || go_out 1
0205 clean_logs;
0206
0207
0208 echo ">>> Listing after"
0209 ls -l QSPACE1/committed
0210 ls -l QSPACE1/committed | wc
0211
0212
0213
0214
0215
0216
0217
0218 echo "Testing [xadmin mqrc]"
0219
0220 echo "BINQ2,svcnm=-,autoq=n,tries=10,waitinit=1,waitretry=1,waitretryinc=0,waitretrymax=1,mode=fifo" >> q.conf
0221 xadmin mqrc
0222 RET=$?
0223
0224 if [[ "X$RET" != "X0" ]]; then
0225 go_out $RET
0226 fi
0227
0228 if [ "X`xadmin mqlc | grep BINQ2 | grep fifo`" == "X" ]; then
0229 echo "Missing BINQ2 not defined!"
0230 go_out 1
0231 fi
0232
0233
0234
0235 xadmin mqlc
0236
0237 echo "Testing [xadmin mqlc]"
0238
0239
0240
0241 if [ "X`xadmin mqlc | grep LTESTA | grep lifo`" == "X" ]; then
0242 echo "Missing LTESTA lifo Q"
0243 go_out 1
0244 fi
0245
0246
0247 xadmin mqlq
0248
0249 echo "Testing [xadmin mqlq]"
0250 if [ "X`xadmin mqlq | grep TESTB | grep 300`" == "X" ]; then
0251 echo "Missing TESTB and 300"
0252 go_out 1
0253 fi
0254
0255
0256 xadmin mqlm -s MYSPACE -q TESTC
0257
0258
0259
0260 echo "Testing [xadmin mqlm]"
0261
0262 MSGID=`xadmin mqlm -s MYSPACE -q TESTC | tail -1 | awk '{print($3)}'`
0263
0264 if [ "X$MSGID" == "X" ]; then
0265 echo "Missing message mqlm"
0266 go_out 1
0267 fi
0268
0269 echo "Dumping message [$MSGID]"
0270 xadmin mqdm -n 1 -i 100 -m $MSGID
0271
0272 echo "Testing [xadmin mqdm] UBF buffer"
0273
0274 if [ "X`xadmin mqdm -n 1 -i 100 -m $MSGID | grep 'TEST HELLO'`" == "X" ]; then
0275 echo "Missing 'TEST HELLO' in mqdm"
0276 go_out 1
0277 fi
0278
0279
0280
0281
0282
0283 echo "Adding carray message to BINQ"
0284 (./atmiclt28 carr 2>&1) >> ./atmiclt-dom1.log
0285 RET=$?
0286
0287 if [[ "X$RET" != "X0" ]]; then
0288 go_out $RET
0289 fi
0290
0291 xadmin mqlm -s MYSPACE -q BINQ
0292
0293 MSGID=`xadmin mqlm -s MYSPACE -q BINQ | tail -1 | awk '{print($3)}'`
0294
0295 echo "Testing [xadmin mqdm] CARRY buffer - $MSGID"
0296 xadmin mqdm -n 1 -i 100 -m $MSGID
0297
0298
0299 if [ "X`xadmin mqdm -n 1 -i 100 -m $MSGID | grep '00 01 02 03 04 05 06 07'`" == "X" ]; then
0300 echo "Missing '00 01 02 03 04 05 06 07' in mqdm for CARRAY"
0301 go_out 1
0302 fi
0303
0304 echo "Testing [xadmin mqrm]"
0305
0306 xadmin mqrm -n 1 -i 100 -m $MSGID
0307
0308 echo "****************************************"
0309 xadmin mqlm -s MYSPACE -q BINQ
0310 echo "****************************************"
0311
0312 xadmin mqlm -s MYSPACE -q BINQ | wc
0313
0314 if [ "X`xadmin mqlm -s MYSPACE -q BINQ | wc | awk '{print($1)}'`" != "X0" ]; then
0315 echo "Message not removed from BINQ"
0316 go_out 1
0317 fi
0318
0319 echo "Testing [xadmin mqch]"
0320 xadmin mqch -n 1 -i 100 -q MEMQ,svcnm=-,autoq=n,tries=10,waitinit=1,waitretry=1,waitretryinc=0,waitretrymax=1
0321 xadmin mqlc
0322
0323
0324
0325 if [ "X`xadmin mqlc | grep MEMQ`" == "X" ]; then
0326 echo "Missing 'MEMQ' in mqch output"
0327 go_out 1
0328 fi
0329
0330 echo "Testing [xadmin mqmv]"
0331
0332 echo "Adding carray message to BINQ"
0333 (./atmiclt28 carr 2>&1) >> ./atmiclt-dom1.log
0334 if [[ "X$RET" != "X0" ]]; then
0335 go_out $RET
0336 fi
0337
0338 echo "Move the message to another Q"
0339 MSGID=`xadmin mqlm -s MYSPACE -q BINQ | tail -1 | awk '{print($3)}'`
0340
0341 xadmin mqmv -n 1 -i 100 -m $MSGID -s MYSPACE -q BINQ2
0342
0343 MSGID=`xadmin mqlm -s MYSPACE -q BINQ2 | tail -1 | awk '{print($3)}'`
0344
0345 xadmin mqdm -n 1 -i 100 -m $MSGID
0346
0347 if [ "X`xadmin mqdm -n 1 -i 100 -m $MSGID | grep '00 01 02 03 04 05 06 07'`" == "X" ]; then
0348 echo "Missing '00 01 02 03 04 05 06 07' in mqdm for CARRAY"
0349 go_out 1
0350 fi
0351
0352 if [ "X`xadmin mqdm -n 1 -i 100 -m $MSGID | grep 'TESTREPLY'`" == "X" ]; then
0353 echo "Missing 'TESTREPLY' in mqdm for mqmv"
0354 go_out 1
0355 fi
0356
0357 if [ "X`xadmin mqdm -n 1 -i 100 -m $MSGID | grep 'TESTFAIL'`" == "X" ]; then
0358 echo "Missing 'TESTFAIL' in mqdm for mqmv"
0359 go_out 1
0360 fi
0361
0362
0363 xadmin mqrm -n 1 -i 100 -m $MSGID
0364
0365
0366
0367
0368
0369
0370
0371 echo "Running: dequeue (abort)"
0372 (./atmiclt28 deqa 2>&1) >> ./atmiclt-dom1.log
0373 RET=$?
0374
0375 if [[ "X$RET" != "X0" ]]; then
0376 go_out $RET
0377 fi
0378
0379 sleep 10
0380
0381 clean_logs;
0382
0383 echo "Running: dequeue (commit)"
0384 (./atmiclt28 deqc 2>&1) >> ./atmiclt-dom1.log
0385 RET=$?
0386
0387 if [[ "X$RET" != "X0" ]]; then
0388 go_out $RET
0389 fi
0390
0391 test_empty_qspace;
0392
0393 echo "Running: dequeue - empty"
0394 (./atmiclt28 deqe 2>&1) >> ./atmiclt-dom1.log
0395 RET=$?
0396
0397 if [[ "X$RET" != "X0" ]]; then
0398 go_out $RET
0399 fi
0400
0401 test_empty_qspace;
0402
0403 echo "Running: dequeue - empty (no abort)"
0404 (./atmiclt28 noabort 2>&1) >> ./atmiclt-dom1.log
0405 RET=$?
0406
0407 if [[ "X$RET" != "X0" ]]; then
0408 go_out $RET
0409 fi
0410
0411 test_empty_qspace;
0412
0413 echo "Running: msgid tests"
0414 (./atmiclt28 msgid 2>&1) >> ./atmiclt-dom1.log
0415 RET=$?
0416
0417 if [[ "X$RET" != "X0" ]]; then
0418 go_out $RET
0419 fi
0420
0421 test_empty_qspace;
0422
0423 echo "Running: cortran tests"
0424 (./atmiclt28 cortran 2>&1) >> ./atmiclt-dom1.log
0425 RET=$?
0426
0427 if [[ "X$RET" != "X0" ]]; then
0428 go_out $RET
0429 fi
0430
0431 test_empty_qspace;
0432
0433 echo "Running: corauto tests"
0434 (./atmiclt28 corauto 2>&1) >> ./atmiclt-dom1.log
0435 RET=$?
0436
0437 if [[ "X$RET" != "X0" ]]; then
0438 go_out $RET
0439 fi
0440
0441 test_empty_qspace;
0442
0443 echo "Running: deqdefault tests"
0444 (./atmiclt28 deqdefault 2>&1) >> ./atmiclt-dom1.log
0445 RET=$?
0446
0447 if [[ "X$RET" != "X0" ]]; then
0448 go_out $RET
0449 fi
0450
0451 test_empty_qspace;
0452
0453 echo "Running: corlifo tests"
0454 (./atmiclt28 corlifo 2>&1) >> ./atmiclt-dom1.log
0455 RET=$?
0456
0457 if [[ "X$RET" != "X0" ]]; then
0458 go_out $RET
0459 fi
0460
0461 test_empty_qspace;
0462
0463 echo "Running: corfifo tests"
0464 (./atmiclt28 corfifo 2>&1) >> ./atmiclt-dom1.log
0465 RET=$?
0466
0467 if [[ "X$RET" != "X0" ]]; then
0468 go_out $RET
0469 fi
0470
0471 test_empty_qspace;
0472
0473
0474 echo "Running: Auto queue ok"
0475 (./atmiclt28 autoqnr 2>&1) >> ./atmiclt-dom1.log
0476 RET=$?
0477
0478 if [[ "X$RET" != "X0" ]]; then
0479 go_out $RET
0480 fi
0481
0482 test_empty_qspace;
0483
0484 echo "Running: Auto queue ok + reply q"
0485 (./atmiclt28 autoqok 2>&1) >> ./atmiclt-dom1.log
0486 RET=$?
0487
0488 if [[ "X$RET" != "X0" ]]; then
0489 go_out $RET
0490 fi
0491
0492 test_empty_qspace;
0493
0494 echo "Running: Auto queue dead"
0495 (./atmiclt28 autodeadq 2>&1) >> ./atmiclt-dom1.log
0496 RET=$?
0497
0498 if [[ "X$RET" != "X0" ]]; then
0499 go_out $RET
0500 fi
0501
0502 test_empty_qspace;
0503
0504 echo "Running: random fail for auto"
0505 (./atmiclt28 rndfail 2>&1) >> ./atmiclt-dom1.log
0506 RET=$?
0507
0508 if [[ "X$RET" != "X0" ]]; then
0509 go_out $RET
0510 fi
0511
0512 test_empty_qspace;
0513
0514 echo "LIFO tests..."
0515
0516 echo "Running: enqueue (LIFO)"
0517 (./atmiclt28 lenq 2>&1) > ./atmiclt-dom1.log
0518 RET=$?
0519
0520 if [[ "X$RET" != "X0" ]]; then
0521 go_out $RET
0522 fi
0523
0524 echo ">>> Before restart:"
0525 xadmin mqlc
0526 xadmin mqlq
0527
0528 echo ">>>> Listing"
0529 ls -l QSPACE1/committed
0530 ls -l QSPACE1/committed | wc
0531
0532 echo ">>>> LTESTA"
0533 xadmin mqlm -s MYSPACE -q LTESTA
0534 echo ">>>> LTESTB"
0535 xadmin mqlm -s MYSPACE -q LTESTB
0536 echo ">>>> LTESTC"
0537 xadmin mqlm -s MYSPACE -q LTESTC
0538
0539 xadmin stop -y
0540 sleep 2
0541 xadmin start -y || go_out 1
0542 clean_logs;
0543
0544 echo ">>> After restart:"
0545 xadmin mqlc
0546 xadmin mqlq
0547
0548 echo ">>>> Listing"
0549 ls -l QSPACE1/committed
0550 ls -l QSPACE1/committed | wc
0551
0552 echo ">>>> LTESTA"
0553 xadmin mqlm -s MYSPACE -q LTESTA
0554 echo ">>>> LTESTB"
0555 xadmin mqlm -s MYSPACE -q LTESTB
0556 echo ">>>> LTESTC"
0557 xadmin mqlm -s MYSPACE -q LTESTC
0558
0559
0560
0561
0562
0563
0564
0565
0566
0567 LAST=`xadmin mqlm -s MYSPACE -q LTESTA | tail -1 | awk '{print($3)}'`
0568
0569 echo "Last message in Q"
0570 xadmin mqdm -n 1 -i 100 -m $LAST
0571
0572 echo "Running: dequeue (abort) (LIFO)"
0573 (./atmiclt28 ldeqa 2>&1) >> ./atmiclt-dom1.log
0574 RET=$?
0575
0576 if [[ "X$RET" != "X0" ]]; then
0577 go_out $RET
0578 fi
0579
0580 sleep 10
0581
0582 echo "Running: dequeue (commit) (LIFO)"
0583 (./atmiclt28 ldeqc 2>&1) >> ./atmiclt-dom1.log
0584 RET=$?
0585
0586 if [[ "X$RET" != "X0" ]]; then
0587 go_out $RET
0588 fi
0589
0590 test_empty_qspace;
0591
0592 echo "Running: future FIFO (TPQTIME_ABS & TPQTIME_REL) tests"
0593 (./atmiclt28 futfifotrans 2>&1) >> ./atmiclt-dom1.log
0594 RET=$?
0595
0596 if [[ "X$RET" != "X0" ]]; then
0597 go_out $RET
0598 fi
0599
0600 test_empty_qspace;
0601
0602 echo "Running: future LIFO (TPQTIME_ABS & TPQTIME_REL) tests"
0603 (./atmiclt28 futlifotrans 2>&1) >> ./atmiclt-dom1.log
0604 RET=$?
0605
0606 if [[ "X$RET" != "X0" ]]; then
0607 go_out $RET
0608 fi
0609
0610 test_empty_qspace;
0611
0612 echo "Running: future corrid FIFO tests"
0613 (./atmiclt28 futcorfifotrans 2>&1) >> ./atmiclt-dom1.log
0614 RET=$?
0615
0616 if [[ "X$RET" != "X0" ]]; then
0617 go_out $RET
0618 fi
0619
0620 test_empty_qspace;
0621
0622 echo "Running: future corrid LIFO tests"
0623 (./atmiclt28 futcorlifotrans 2>&1) >> ./atmiclt-dom1.log
0624 RET=$?
0625
0626 if [[ "X$RET" != "X0" ]]; then
0627 go_out $RET
0628 fi
0629
0630 test_empty_qspace;
0631
0632
0633 if [ "X`grep TESTERROR *.log`" != "X" ]; then
0634 echo "Test error detected!"
0635 RET=-2
0636 fi
0637
0638 if [ "X`grep TPETIME *.log`" != "X" ]; then
0639 echo "There must be no timeouts during tests!"
0640 RET=-2
0641 fi
0642
0643
0644
0645 go_out $RET
0646
0647