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
0037 export TESTNO="037"
0038 export TESTNAME_SHORT="down"
0039 export TESTNAME="test${TESTNO}_${TESTNAME_SHORT}"
0040
0041 PWD=`pwd`
0042 if [ `echo $PWD | grep $TESTNAME ` ]; then
0043
0044 echo > /dev/null
0045 else
0046
0047 pushd .
0048 echo "Doing cd"
0049 cd $TESTNAME
0050 fi;
0051
0052 . ../testenv.sh
0053
0054 export TESTDIR="$NDRX_APPHOME/atmitest/$TESTNAME"
0055 export PATH=$PATH:$TESTDIR
0056
0057 export NDRX_TOUT=9999
0058 export NDRX_SILENT=Y
0059
0060
0061
0062 function set_dom1 {
0063 echo "Setting domain 1"
0064 . ../dom1.sh
0065 export NDRX_CONFIG=$TESTDIR/ndrxconfig-dom1.xml
0066 export NDRX_DMNLOG=$TESTDIR/ndrxd-dom1.log
0067 export NDRX_LOG=$TESTDIR/ndrx-dom1.log
0068 export NDRX_DEBUG_CONF=$TESTDIR/debug-dom1.conf
0069 }
0070
0071
0072
0073
0074 function set_dom2 {
0075 echo "Setting domain 2"
0076 . ../dom2.sh
0077 export NDRX_CONFIG=$TESTDIR/ndrxconfig-dom2.xml
0078 export NDRX_DMNLOG=$TESTDIR/ndrxd-dom2.log
0079 export NDRX_LOG=$TESTDIR/ndrx-dom2.log
0080 export NDRX_DEBUG_CONF=$TESTDIR/debug-dom2.conf
0081 }
0082
0083
0084
0085
0086 function go_out {
0087 echo "Test exiting with: $1"
0088
0089 set_dom1;
0090 xadmin stop -y
0091 xadmin down -y
0092
0093 set_dom2;
0094 xadmin stop -y
0095 xadmin down -y
0096
0097
0098 xadmin killall atmiclt37
0099
0100 popd 2>/dev/null
0101 exit $1
0102 }
0103
0104 rm *dom*.log
0105
0106 xadmin killall tpbridge
0107
0108 xadmin killall nap.sh
0109 xadmin killall nap2.sh
0110 xadmin killall atmiclt
0111 xadmin killall ndrxd
0112 xadmin killall atmisrv
0113
0114 set_dom1;
0115
0116 xadmin down -y
0117 xadmin shms | cut -d ':' -f 2 | xargs -i ipcrm -m {}
0118 xadmin start -y || go_out 1
0119
0120 echo "Wait for CPM to boot (WAIT 10)"
0121 sleep 10
0122 xadmin pc
0123 xadmin killall cpmsrv
0124 echo "Wait for CPM to boot (WAIT 15), AFTER CPMSRV REBOOT"
0125 sleep 15
0126 xadmin pc
0127 echo "Continue..."
0128
0129
0130 set_dom2;
0131
0132 xadmin down -y
0133 xadmin shms | cut -d ':' -f 2 | xargs -i ipcrm -m {}
0134 xadmin start -y || go_out 2
0135
0136
0137 rm xadmin-*.log
0138
0139
0140 sleep 10
0141
0142 RET=0
0143
0144 set_dom1;
0145
0146 nohup ./atmiclt37 &
0147 sleep 1
0148
0149 echo "DOM 1 atmiclts..."
0150 $PSCMD | grep atmiclt37 | grep -v grep
0151
0152 set_dom2;
0153
0154 nohup ./atmiclt37 &
0155 sleep 1
0156
0157 echo "After DOM 2 atmiclts..."
0158 $PSCMD | grep atmiclt37 | grep -v grep
0159
0160
0161 set_dom1;
0162
0163 echo "nap2 after boot"
0164 $PSCMD | grep nap2.sh
0165
0166 $PSCMD | grep atmiclt37
0167
0168
0169
0170
0171 echo "Situation before downing..."
0172 $PSCMD
0173
0174
0175 echo "==== Details ===="
0176
0177 echo "cpms"
0178 $PSCMD | grep cpmsrv
0179
0180 echo "ndrxd"
0181 $PSCMD | grep ndrxd
0182
0183 echo "nap.sh"
0184 $PSCMD | grep nap.sh
0185
0186 echo "nap2.sh"
0187 $PSCMD | grep nap2.sh
0188
0189 echo "atmiclt37"
0190 $PSCMD | grep atmiclt37
0191
0192 echo "sleep"
0193 $PSCMD | grep sleep
0194
0195 echo "==== Details, end ===="
0196
0197
0198 echo "dom1 client"
0199
0200 xadmin pc
0201
0202
0203
0204
0205 CNT=`$PSCMD | grep nap.sh | grep -v grep | wc | awk '{print $1}'`
0206
0207 PROC_COUNT="4"
0208 echo "$PSCMD procs: $CNT"
0209 if [[ "$CNT" -ne "$PROC_COUNT" ]]; then
0210 echo "TESTERROR! $PROC_COUNT nap.sh not booted (according to $PSCMD )!"
0211 go_out 10
0212 fi
0213
0214 $PSCMD | grep atmiclt37
0215
0216 CNT=`$PSCMD | grep atmiclt37 | grep -v grep | wc | awk '{print $1}'`
0217
0218 PROC_COUNT="8"
0219 echo "$PSCMD procs: $CNT"
0220 if [[ "$CNT" -ne "$PROC_COUNT" ]]; then
0221 echo "TESTERROR! $PROC_COUNT atmiclt37 not booted (according to $PSCMD )!"
0222 go_out 11
0223 fi
0224
0225 CNT=`$PSCMD | grep nap2.sh | grep -v grep | wc | awk '{print $1}'`
0226
0227 PROC_COUNT="4"
0228 echo "$PSCMD procs: $CNT"
0229 if [[ "$CNT" -ne "$PROC_COUNT" ]]; then
0230 echo "TESTERROR! $PROC_COUNT nap2.sh not booted (according to $PSCMD )!"
0231 go_out 11
0232 fi
0233
0234
0235
0236
0237
0238 echo "About to down dom1"
0239 xadmin pqa
0240 xadmin down -y
0241
0242 echo "After dom1 down"
0243 $PSCMD
0244
0245
0246
0247 CNT=`$PSCMD | grep nap.sh | grep -v grep | wc | awk '{print $1}'`
0248 PROC_COUNT="2"
0249 echo "$PSCMD procs: $CNT"
0250 if [[ "$CNT" -ne "$PROC_COUNT" ]]; then
0251 echo "TESTERROR! $PROC_COUNT nap.sh not left (according to $PSCMD )!"
0252 go_out 12
0253 fi
0254
0255
0256
0257
0258 CNT=`$PSCMD | grep nap2.sh | grep -v grep | wc | awk '{print $1}'`
0259 PROC_COUNT="2"
0260 echo "$PSCMD procs: $CNT"
0261 if [[ "$CNT" -ne "$PROC_COUNT" ]]; then
0262 echo "TESTERROR! $PROC_COUNT nap2.sh not left (according to $PSCMD )!"
0263 go_out 12
0264 fi
0265
0266
0267
0268
0269 CNT=`$PSCMD | grep atmiclt37 | grep -v grep | wc | awk '{print $1}'`
0270 PROC_COUNT="4"
0271 echo "$PSCMD procs: $CNT"
0272 if [[ "$CNT" -ne "$PROC_COUNT" ]]; then
0273 echo "TESTERROR! $PROC_COUNT atmiclt37 not left (according to $PSCMD )!"
0274 go_out 13
0275 fi
0276
0277
0278
0279
0280
0281 xadmin pqa
0282 CNT=`xadmin pqa | wc | awk '{print $1}'`
0283 echo "DOM1 Queues: $CNT"
0284 if [[ "$CNT" -ne "1" ]]; then
0285 echo "TESTERROR! Dom1 all queues must be killed except xadmin's!"
0286 go_out 14
0287 fi
0288
0289 CNT=`$PSCMD | grep ndrxd | grep -v grep | wc | awk '{print $1}'`
0290
0291 echo "NDRXD daemons: $CNT"
0292 if [[ "$CNT" -ne "1" ]]; then
0293 echo "TESTERROR! Only one copy of ndrxd must be left!"
0294 go_out 15
0295 fi
0296
0297 CNT=`$PSCMD | grep atmisv37 | grep -v grep |wc | awk '{print $1}'`
0298 echo "atmisv37: $CNT"
0299 if [[ "$CNT" -ne "1" ]]; then
0300 echo "TESTERROR! Only one copy of atmisv37 must be left!"
0301 go_out 16
0302 fi
0303
0304 CNT=`$PSCMD | grep atmisv_2_37 | grep -v grep |wc | awk '{print $1}'`
0305 echo "atmisv_2_37 $CNT"
0306 if [[ "$CNT" -ne "1" ]]; then
0307 echo "TESTERROR! Only one copy of atmisv_2_37 must be left!"
0308 go_out 17
0309 fi
0310
0311 CNT=`$PSCMD | grep tprecover | grep -v grep | wc | awk '{print $1}'`
0312 echo "tprecover: $CNT"
0313 if [[ "$CNT" -ne "1" ]]; then
0314 echo "TESTERROR! Only one copy of tprecover must be left!"
0315 go_out 18
0316 fi
0317
0318
0319
0320
0321
0322
0323 echo "Shared mem objects: "
0324
0325 xadmin shms
0326 xadmin shms | wc | awk '{print $1}'
0327 SHMS=`xadmin shms | wc | awk '{print $1}'`
0328
0329 echo "DOM1 Shared memories: $SHMS"
0330
0331 if [ `xadmin poller` == "SystemV" ] || [ `xadmin poller` == "svapoll" ]; then
0332
0333 if [[ "$SHMS" -ne "3" ]]; then
0334 echo "TESTERROR! There must be 3 shared memory objs for dom1 after kill!"
0335 go_out 18
0336 fi
0337 else
0338
0339 if [[ "$SHMS" -ne "1" ]]; then
0340 echo "TESTERROR! There must be 1 shared memory for dom1 after kill!"
0341 go_out 18
0342 fi
0343 fi
0344
0345
0346
0347
0348 echo "**** IPCS SEMAPHORE ****"
0349 xadmin svsemids
0350 echo "**** IPCS $NDRX_IPCKEY ****"
0351 xadmin svsemids -k | grep $NDRX_IPCKEY
0352 echo "**** IPCS END ****"
0353
0354 CNT=`xadmin svsemids -k | grep $NDRX_IPCKEY | wc -l`
0355 echo "DOM1 Semaphores (guessed): $CNT"
0356 if [[ "$CNT" -ne "0" ]]; then
0357 echo "TESTERROR! The semaphore with key [$NDRX_IPCKEY] must be removed!!"
0358 go_out 19
0359 fi
0360
0361
0362
0363
0364
0365 set_dom2;
0366 xadmin down -y
0367 echo "After dom2 down..."
0368 $PSCMD
0369
0370 xadmin pqa -a
0371 CNT=`xadmin pqa -a | grep dom | wc | awk '{print $1}'`
0372 echo "DOM1 Queues: $CNT"
0373 if [[ "$CNT" -ne "1" ]]; then
0374 echo "TESTERROR! Dom1 & 2 all queues must be removed except 1 for xadmin!"
0375 go_out 30
0376 fi
0377
0378 CNT=`$PSCMD | grep atmisv37 | grep -v grep | wc | awk '{print $1}'`
0379 echo "Finally atmisv37: $CNT"
0380 if [[ "$CNT" -ne "0" ]]; then
0381 echo "TESTERROR! All atmisv37 must be killed!"
0382 go_out 31
0383 fi
0384
0385 CNT=`$PSCMD | grep atmisv_2_37 | grep -v grep | wc | awk '{print $1}'`
0386 echo "Finally atmisv_2_37 $CNT"
0387 if [[ "$CNT" -ne "0" ]]; then
0388 echo "TESTERROR! All atmisv_2_37 must be killed!"
0389 go_out 32
0390 fi
0391
0392
0393 if [ "X`grep TESTERROR *.log`" != "X" ]; then
0394 echo "Test error detected!"
0395 RET=-2
0396 fi
0397
0398
0399 echo "Test udown"
0400
0401 ./atmiclt37 &
0402 sleep 1
0403 xadmin killall atmiclt37
0404 echo "There must be some shared mem.."
0405
0406 SHMS=`xadmin shms`
0407
0408 echo "Before udown [$SHMS]"
0409
0410 if [ "X$SHMS" == "X" ]; then
0411 echo "Test not ready.."
0412 go_out -100
0413 fi
0414
0415 xadmin udown -y
0416
0417 xadmin shms
0418 xadmin shms | wc | awk '{print $1}'
0419 SHMS=`xadmin shms | wc | awk '{print $1}'`
0420
0421 echo "After udown [$SHMS]"
0422
0423
0424 if [ "$SHMS" != "1" ]; then
0425 echo "udown failed to remove resources (still the LCF shall be leaved)"
0426 go_out -101
0427 fi
0428
0429 go_out 0
0430
0431