Back to home page

Enduro/X

 
 

    


0001 #!/bin/bash
0002 ##
0003 ## @brief @(#) Test034 - test the config server
0004 ##
0005 ## @file run.sh
0006 ##
0007 ## -----------------------------------------------------------------------------
0008 ## Enduro/X Middleware Platform for Distributed Transaction Processing
0009 ## Copyright (C) 2009-2016, ATR Baltic, Ltd. All Rights Reserved.
0010 ## Copyright (C) 2017-2023, Mavimax, Ltd. All Rights Reserved.
0011 ## This software is released under one of the following licenses:
0012 ## AGPL (with Java and Go exceptions) or Mavimax's license for commercial use.
0013 ## See LICENSE file for full text.
0014 ## -----------------------------------------------------------------------------
0015 ## AGPL license:
0016 ##
0017 ## This program is free software; you can redistribute it and/or modify it under
0018 ## the terms of the GNU Affero General Public License, version 3 as published
0019 ## by the Free Software Foundation;
0020 ##
0021 ## This program is distributed in the hope that it will be useful, but WITHOUT ANY
0022 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
0023 ## PARTICULAR PURPOSE. See the GNU Affero General Public License, version 3
0024 ## for more details.
0025 ##
0026 ## You should have received a copy of the GNU Affero General Public License along 
0027 ## with this program; if not, write to the Free Software Foundation, Inc.,
0028 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
0029 ##
0030 ## -----------------------------------------------------------------------------
0031 ## A commercial use license is available from Mavimax, Ltd
0032 ## contact@mavimax.com
0033 ## -----------------------------------------------------------------------------
0034 ##
0035 
0036 export TESTNO="034"
0037 export TESTNAME_SHORT="shmreuse"
0038 export TESTNAME="test${TESTNO}_${TESTNAME_SHORT}"
0039 
0040 PWD=`pwd`
0041 if [ `echo $PWD | grep $TESTNAME ` ]; then
0042     # Do nothing 
0043     echo > /dev/null
0044 else
0045     # started from parent folder
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 # Override timeout!
0056 export NDRX_TOUT=10
0057 export NDRX_SILENT=Y
0058 export NDRX_SVCMAX=45
0059 
0060 #
0061 # Domain 1 - here client will live
0062 #
0063 function set_dom1 {
0064     echo "Setting domain 1"
0065     . ../dom1.sh
0066     export NDRX_CONFIG=$TESTDIR/ndrxconfig.xml
0067     export NDRX_DMNLOG=$TESTDIR/ndrxd.log
0068     export NDRX_LOG=$TESTDIR/ndrx.log
0069     export NDRX_DEBUG_CONF=$TESTDIR/debug.conf
0070 }
0071 
0072 #
0073 # Generic exit function
0074 #
0075 function go_out {
0076     echo "Test exiting with: $1"
0077     
0078     set_dom1;
0079     xadmin stop -y
0080     xadmin down -y
0081 
0082     # If some alive stuff left...
0083     xadmin killall atmiclt34
0084 
0085     popd 2>/dev/null
0086     exit $1
0087 }
0088 
0089 
0090 #
0091 # Check count of services by process instance
0092 #
0093 function chk_count {
0094 
0095     xadmin start -i $1
0096     xadmin psc
0097     # On aix wc -l leads with spaces
0098     CNT=`xadmin  psc | grep T3 | wc -l | awk '{print $1}'`
0099     echo "Got: [$CNT]"
0100     if [ "X$CNT" != "X$2" ]; then
0101         echo "Invalid service count: $CNT (expected $2)"
0102         go_out -4
0103     fi
0104 
0105     # after the shutdown shall be clean
0106     xadmin stop -i $1
0107     CNT=`xadmin  psc | grep T3 | wc -l | awk '{print $1}'`
0108     echo "Got: [$CNT] (after shutdown)"
0109     if [ "X$CNT" != "X0" ]; then
0110         echo "Invalid service count: $CNT (expected 0)"
0111         go_out -5
0112     fi
0113 
0114 }
0115 
0116 
0117 rm *.log
0118 
0119 set_dom1;
0120 xadmin down -y
0121 xadmin start -y || go_out 1
0122 
0123 xadmin psc
0124 xadmin psvc
0125 xadmin ppm
0126 
0127 echo "Run readv"
0128 (./atmiclt34 readv 2>&1) > ./atmiclt.log
0129 RETTMP=$?
0130 
0131 if [ "X$RETTMP" != "X0" ]; then
0132 
0133     echo "*** PSVC ***"
0134     xadmin psvc
0135 
0136     echo "***PSC***"
0137     xadmin psc
0138 
0139     go_out -1
0140 fi
0141 
0142 xadmin stop -y
0143 xadmin down -y
0144 xadmin start -y || go_out 1
0145 
0146 echo "Run chkfull 45 - shm limit"
0147 (./atmiclt34 chkfull 45 2>&1) > ./atmiclt_chkfull45.log
0148 RETTMP=$?
0149 
0150 if [ "X$RETTMP" != "X0" ]; then
0151 
0152     echo "*** PSVC ***"
0153     xadmin psvc
0154 
0155     echo "***PSC***"
0156     xadmin psc
0157 
0158     go_out -2
0159 fi
0160 
0161 xadmin stop -y
0162 
0163 #
0164 # Note 2 queues are reserved for admin and reply q.
0165 #
0166 echo "Run chkfull 48 - per svc limit"
0167 export NDRX_SVCMAX=100
0168 
0169 xadmin down -y
0170 xadmin start -y || go_out 1
0171 
0172 (./atmiclt34 chkfull 48 2>&1) > ./atmiclt_chkfull48.log
0173 RETTMP=$?
0174 
0175 if [ "X$RETTMP" != "X0" ]; then
0176 
0177     echo "*** PSVC ***"
0178     xadmin psvc
0179 
0180     echo "***PSC***"
0181     xadmin psc
0182 
0183     go_out -3
0184 fi
0185 
0186 echo "Direct SHM tests.."
0187 xadmin stop -y
0188 xadmin down -y
0189 
0190 export NDRX_SVCMAX=200
0191 xadmin idle
0192 xadmin ldcf
0193 xadmin appconfig sanity 99999
0194 sleep 2
0195 
0196 (./atmiclt34_2 2>&1) > ./atmiclt_2.log
0197 RETTMP=$?
0198 
0199 if [ "X$RETTMP" != "X0" ]; then
0200 
0201     echo "*** PSVC ***"
0202     xadmin psvc
0203 
0204     echo "***PSC***"
0205     xadmin psc
0206 
0207     go_out -4
0208 fi
0209 
0210 echo "Testing static advertise limits"
0211 
0212 xadmin stop -y
0213 xadmin down -y
0214 
0215 export NDRX_SVCMAX=20
0216 xadmin idle
0217 xadmin ldcf
0218 xadmin start -i 201
0219 
0220 echo "***PSC After startup***"
0221 xadmin psc
0222 
0223 echo "***PSVC After startup (shall miss services above 19) ***"
0224 xadmin psvc
0225 
0226 echo "***pqa -a After startup***"
0227 xadmin pqa -a
0228 
0229 
0230 echo "Check that we can call some service..."
0231 (./atmiclt34 call19 2>&1) > ./atmiclt_call19.log
0232 RETTMP=$?
0233 
0234 if [ "X$RETTMP" != "X0" ]; then
0235 
0236     echo "*** PSVC ***"
0237     xadmin psvc
0238 
0239     echo "***PSC***"
0240     xadmin psc
0241 
0242     go_out -3
0243 fi
0244 
0245 # stop the service and see queues...
0246 xadmin stop -i 201
0247 
0248 echo "***PSC After shutdown***"
0249 xadmin psc
0250 
0251 echo "***PSVC After shutdown ***"
0252 xadmin psvc
0253 
0254 echo "***pqa -a After shutdown***"
0255 xadmin pqa -a
0256 
0257 ################################################################################
0258 echo "Checking aliasing limits..."
0259 ################################################################################
0260 
0261 echo "*** Cannot start as too many services in the tmdsptchtbl_t"
0262 chk_count 1000, 0
0263 
0264 echo "*** Check single function aliased"
0265 chk_count 1001, 2
0266 
0267 echo "*** 25*2 funcs advertised (all full)"
0268 chk_count 1002, 0
0269 
0270 echo "*** 24*2 funcs advertised (have space)"
0271 chk_count 1003, 48
0272 
0273 echo "*** 25*2 alias advertised (all full)"
0274 chk_count 1004, 0
0275 
0276 echo "*** 24*2 alias advertised (have space)"
0277 chk_count 1005, 48
0278 
0279 echo "*** 23*2 alias advertised (have space)"
0280 chk_count 1006, 46
0281 
0282 
0283 # Catch is there is test error!!!
0284 if [ "X`grep TESTERROR *.log`" != "X" ]; then
0285     echo "Test error detected!"
0286     go_out -99
0287 fi
0288 
0289 go_out 0
0290 
0291 # vim: set ts=4 sw=4 et smartindent: