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 TESTNAME="test048_cache"
0037
0038 PWD=`pwd`
0039 if [ `echo $PWD | grep $TESTNAME ` ]; then
0040
0041 echo > /dev/null
0042 else
0043
0044 pushd .
0045 echo "Doing cd"
0046 cd $TESTNAME
0047 fi;
0048
0049 export NDRX_CCONFIG=`pwd`
0050 . ../testenv.sh
0051
0052 export TESTDIR="$NDRX_APPHOME/atmitest/$TESTNAME"
0053 export PATH=$PATH:$TESTDIR
0054 export NDRX_TOUT=10
0055 export NDRX_ULOG=$TESTDIR
0056
0057 source ./test-func-include.sh
0058
0059
0060
0061
0062 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 TESTDIR_DB=$TESTDIR
0069 export TESTDIR_SHM=$TESTDIR
0070 export NDRX_CCTAG=dom1
0071 }
0072
0073 set_dom2() {
0074 echo "Setting domain 2"
0075 . ../dom2.sh
0076 export NDRX_CONFIG=$TESTDIR/ndrxconfig-dom2.xml
0077 export NDRX_DMNLOG=$TESTDIR/ndrxd-dom2.log
0078 export NDRX_LOG=$TESTDIR/ndrx-dom2.log
0079 export TESTDIR_DB=$TESTDIR/dom2
0080 export TESTDIR_SHM=$TESTDIR/dom2
0081 export NDRX_CCTAG=dom2
0082 }
0083
0084 set_dom3() {
0085 echo "Setting domain 3"
0086 . ../dom3.sh
0087 export NDRX_CONFIG=$TESTDIR/ndrxconfig-dom3.xml
0088 export NDRX_DMNLOG=$TESTDIR/ndrxd-dom3.log
0089 export NDRX_LOG=$TESTDIR/ndrx-dom3.log
0090 export TESTDIR_DB=$TESTDIR/dom3
0091 export TESTDIR_SHM=$TESTDIR/dom3
0092 export NDRX_CCTAG=dom3
0093 }
0094
0095
0096
0097
0098 function go_out {
0099 echo "Test exiting with: $1"
0100
0101 set_dom1;
0102 xadmin stop -y
0103 xadmin down -y
0104
0105
0106 set_dom2;
0107 xadmin stop -y
0108 xadmin down -y
0109
0110 set_dom3;
0111 xadmin stop -y
0112 xadmin down -y
0113
0114
0115 xadmin killall atmiclt48
0116
0117 popd 2>/dev/null
0118 exit $1
0119 }
0120
0121 rm *.log
0122
0123 xadmin killall tpbridge
0124
0125 echo "Booting domain 1"
0126 set_dom1;
0127 xadmin down -y
0128 xadmin start -y || go_out 1
0129
0130 echo "Booting domain 2"
0131 set_dom2;
0132 xadmin down -y
0133 xadmin start -y || go_out 1
0134
0135 echo "Booting domain 3"
0136 set_dom3;
0137 xadmin down -y
0138 xadmin start -y || go_out 1
0139
0140 echo "Let clients to boot & links to establish..."
0141 sleep 60
0142
0143 RET=0
0144
0145 echo "Domain 1 info"
0146 set_dom1;
0147 xadmin psc
0148 xadmin ppm
0149 xadmin sc -t CACHED
0150 xadmin pc
0151
0152 echo "Domain 2 info"
0153 set_dom2;
0154 xadmin psc
0155 xadmin ppm
0156 xadmin sc -t CACHED
0157 xadmin pc
0158
0159 echo "Domain 3 info"
0160 set_dom3;
0161 xadmin psc
0162 xadmin ppm
0163 xadmin sc -t CACHED
0164 xadmin pc
0165
0166
0167 echo "Running off client on domain 1"
0168 set_dom1;
0169
0170 (time ./testtool48 -sTESTSV14 -b '{"T_STRING_FLD":"KEY1","T_STRING_2_FLD":"DOM1"}' \
0171 -m '{"T_STRING_FLD":"KEY1","T_STRING_2_FLD":"DOM1"}' \
0172 -cY -n1 -fY -d 2>&1) > ./14_testtool48.log
0173
0174 if [ $? -ne 0 ]; then
0175 echo "testtool48 failed (1)"
0176 go_out 1
0177 fi
0178
0179 sleep 5
0180
0181 echo "Running off client on domain 2"
0182 set_dom2;
0183
0184
0185 (time ./testtool48 -sTESTSV14 -b '{"T_STRING_FLD":"KEY1","T_STRING_2_FLD":"DOM2"}' \
0186 -m '{"T_STRING_FLD":"KEY1","T_STRING_2_FLD":"DOM2"}' \
0187 -cY -n1 -fY -d 2>&1) >> ./14_testtool48.log
0188
0189 if [ $? -ne 0 ]; then
0190 echo "testtool48 failed (2)"
0191 go_out 1
0192 fi
0193
0194
0195
0196
0197
0198 echo "Printing dom 1 keys"
0199 set_dom1;
0200 xadmin cs db14
0201 ensure_keys db14 2
0202
0203 CS1=`xadmin cs db14`
0204
0205 echo "Printing dom 2 keys"
0206 set_dom2;
0207 xadmin cs db14
0208 ensure_keys db14 2
0209 CS2=`xadmin cs db14`
0210
0211 if [[ "X$CS1" != "X$CS2" ]]; then
0212
0213 echo "Cache1 must be equal to cache2, but got [$CS1] vs [$CS2]"
0214 go_out 2
0215 fi
0216
0217 echo "Run second time with cached results, should clean up the db..."
0218
0219
0220 set_dom1;
0221
0222 (time ./testtool48 -sTESTSV14 -b '{"T_STRING_FLD":"KEY1","T_STRING_2_FLD":"DOM2"}' \
0223 -m '{"T_STRING_FLD":"KEY1","T_STRING_2_FLD":"DOM2"}' \
0224 -cY -n100 -fN 2>&1) >> ./14_testtool48.log
0225
0226 if [ $? -ne 0 ]; then
0227 echo "testtool48 failed (3)"
0228 go_out 1
0229 fi
0230
0231 ensure_keys db14 1
0232
0233 CS1=`xadmin cs db14`
0234
0235
0236 echo "Local cleanup shall not be broadcasted"
0237 set_dom2;
0238 ensure_keys db14 2
0239
0240 (time ./testtool48 -sTESTSV14 -b '{"T_STRING_FLD":"KEY1","T_STRING_2_FLD":"DOM2"}' \
0241 -m '{"T_STRING_FLD":"KEY1","T_STRING_2_FLD":"DOM2"}' \
0242 -cY -n100 -fN 2>&1) >> ./14_testtool48.log
0243
0244 if [ $? -ne 0 ]; then
0245 echo "testtool48 failed (4)"
0246 go_out 1
0247 fi
0248
0249 ensure_keys db14 1
0250
0251 CS2=`xadmin cs db14`
0252
0253
0254 if [[ "X$CS1" != "X$CS2" ]]; then
0255
0256 echo "(2) Cache1 must be equal to cache2, but got [$CS1] vs [$CS2]"
0257 go_out 2
0258 fi
0259
0260 echo "Now test with duplicate removal of tpcached - domain 3 shall have two keys now"
0261
0262 set_dom3;
0263
0264 xadmin cs db14
0265
0266 ensure_keys db14 2
0267
0268 echo "starting tpcached..."
0269
0270 xadmin bc -t CACHED
0271
0272 echo "waiting for duplicate scan... 10 sec"
0273
0274 sleep 10
0275
0276 ensure_keys db14 1
0277
0278 (time ./testtool48 -sTESTSV14 -b '{"T_STRING_FLD":"KEY1","T_STRING_2_FLD":"DOM2"}' \
0279 -m '{"T_STRING_FLD":"KEY1","T_STRING_2_FLD":"DOM2"}' \
0280 -cY -n100 -fN 2>&1) >> ./14_testtool48.log
0281
0282 if [ $? -ne 0 ]; then
0283 echo "testtool48 failed (5)"
0284 go_out 1
0285 fi
0286
0287
0288
0289 go_out $RET
0290
0291
0292
0293