Back to home page

Enduro/X

 
 

    


0001 #!/bin/bash
0002 ##
0003 ## @brief Perform UBB config test. This one uses routing, persistent queues,
0004 ##  null switches.
0005 ##
0006 ## @file ubb_config1-run.sh
0007 ##
0008 ## -----------------------------------------------------------------------------
0009 ## Enduro/X Middleware Platform for Distributed Transaction Processing
0010 ## Copyright (C) 2009-2016, ATR Baltic, Ltd. All Rights Reserved.
0011 ## Copyright (C) 2017-2023, Mavimax, Ltd. All Rights Reserved.
0012 ## This software is released under one of the following licenses:
0013 ## AGPL (with Java and Go exceptions) or Mavimax's license for commercial use.
0014 ## See LICENSE file for full text.
0015 ## -----------------------------------------------------------------------------
0016 ## AGPL license:
0017 ## 
0018 ## This program is free software; you can redistribute it and/or modify it under
0019 ## the terms of the GNU Affero General Public License, version 3 as published
0020 ## by the Free Software Foundation;
0021 ##
0022 ## This program is distributed in the hope that it will be useful, but WITHOUT ANY
0023 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
0024 ## PARTICULAR PURPOSE. See the GNU Affero General Public License, version 3
0025 ## for more details.
0026 ##
0027 ## You should have received a copy of the GNU Affero General Public License along 
0028 ## with this program; if not, write to the Free Software Foundation, Inc., 
0029 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
0030 ##
0031 ## -----------------------------------------------------------------------------
0032 ## A commercial use license is available from Mavimax, Ltd
0033 ## contact@mavimax.com
0034 ## -----------------------------------------------------------------------------
0035 ##
0036 
0037 #
0038 # Generic exit function
0039 #
0040 function go_out {
0041     echo "Test exiting with: $1"
0042 
0043     xadmin stop -y
0044     xadmin down -y
0045     
0046     popd 2>/dev/null
0047     exit $1
0048 }
0049 
0050 #
0051 # Enduor/X not yet booted
0052 #
0053 function go_out_silent {
0054     echo "Test exiting with: $1"
0055 
0056     popd 2>/dev/null
0057     exit $1
0058 }
0059 
0060 ################################################################################
0061 echo ">>> Testing ubb_config1 -> E/X convert"
0062 ################################################################################
0063 
0064 #
0065 # Cleanup by rndkey, maybe random...
0066 #
0067 
0068 (xadmin ps -r "-k [a-zA-Z0-9]{8,8} -i" -p | xargs kill -9) 2>/dev/null
0069 (xadmin ps -r "-k [a-zA-Z0-9]{8,8} -i" -p | xargs kill -9) 2>/dev/null
0070 (xadmin ps -r "-k [a-zA-Z0-9]{8,8} -i" -p | xargs kill -9) 2>/dev/null
0071 
0072 export NDRX_SILENT=Y
0073 rm -rf ./runtime tmp1 tmp2 2>/dev/null
0074 ubb2ex -P ./runtime ubb_config1
0075 
0076 RET=$?
0077 
0078 if [ "X$RET" != "X0" ]; then
0079     go_out_silent $RET
0080 fi
0081 
0082 #
0083 # put down some bins
0084 #
0085 ln -s $TESTDIR/atmi.sv90 runtime/user90/bin/atmi.sv90
0086 ln -s $TESTDIR/atmi.sv90 runtime/user90/bin/atmi.sv90_2
0087 ln -s $TESTDIR/atmi.sv90 runtime/user90/bin/atmi.sv90_3
0088 ln -s $TESTDIR/atmi.sv90 runtime/user90/bin/atmi.sv90_4
0089 ln -s $TESTDIR/atmiclt90 runtime/user90/bin/atmiclt90
0090 
0091 # Really not needed: shall be in dist path:
0092 #ln -s $TESTDIR/../../exbench/exbenchsv runtime/user90/bin/exbenchsv
0093 #ln -s $TESTDIR/../../exbench/exbenchcl runtime/user90/bin/exbenchcl
0094 
0095 # Start the runtime
0096 
0097 pushd .
0098 
0099 cd runtime/user90/conf
0100 . settest1
0101 
0102 # cleanup shms...
0103 xadmin down -y
0104 xadmin start -y
0105 
0106 RET=$?
0107 if [ "X$RET" != "X0" ]; then
0108     go_out $RET
0109 fi
0110 
0111 xadmin pc
0112 
0113 ################################################################################
0114 echo ">>> Checking DDR..."
0115 ################################################################################
0116 
0117 exbenchcl -n1 -P -t9999 -b '{"T_STRING_10_FLD":"2"}' -f EX_DATA -S1024 -R500
0118 RET=$?
0119 if [ "X$RET" != "X0" ]; then
0120     go_out $RET
0121 fi
0122 
0123 #xadmin psc
0124 
0125 DDR1=`xadmin psc | grep "EXBENCH@DDR1 EXBENCHSV    exbenchsv   600     0     0"`
0126 
0127 if [ "X$DDR1" == "X" ]; then
0128     echo "DDR routing not working (1)"
0129     go_out -1
0130 fi
0131 
0132 DDR2=`xadmin psc | grep "EXBENCH@DDR2 EXBENCHSV    exbenchsv   700   500     0"`
0133 
0134 if [ "X$DDR2" == "X" ]; then
0135     echo "DDR routing not working (2)"
0136     go_out -1
0137 fi
0138 
0139 ################################################################################
0140 echo ">>> Checking /Q..."
0141 ################################################################################
0142 
0143 # Enqueue To Q space, wait for notification back...
0144 exbenchcl -n1 -P -t9999 -b '{}' -f EX_DATA -S1024 -R1000 -sQGRP1_2 -QQSPA -I -E
0145 
0146 RET=$?
0147 if [ "X$RET" != "X0" ]; then
0148     go_out $RET
0149 fi
0150 
0151 # Enqueue To Q space, wait for notification back...
0152 exbenchcl -n1 -P -t9999 -b '{}' -f EX_DATA -S1024 -R1000 -sQGRP1_2 -QQSPB -I -E
0153 
0154 RET=$?
0155 if [ "X$RET" != "X0" ]; then
0156     go_out $RET
0157 fi
0158 
0159 # Enqueue To Q space, wait for notification back...
0160 exbenchcl -n1 -P -t9999 -b '{}' -f EX_DATA -S1024 -R1000 -sQGRP1_2 -QQSPC -I -E
0161 
0162 RET=$?
0163 if [ "X$RET" != "X0" ]; then
0164     go_out $RET
0165 fi
0166 
0167 # List the Qs...
0168 xadmin mqlq
0169 
0170 
0171 ################################################################################
0172 echo ">>> Checking Events..."
0173 ################################################################################
0174 
0175 exbenchcl -n5 -P -t9999 -b '{"T_STRING_10_FLD":"0"}' -f EX_DATA -S1024 -R1000 -sTESTEV -e
0176 RET=$?
0177 if [ "X$RET" != "X0" ]; then
0178     go_out $RET
0179 fi
0180 
0181 ################################################################################
0182 echo ">>> Checking escaping..."
0183 ################################################################################
0184 
0185 if [ "X`grep 'Arg c OK' $TESTDIR/runtime/user90/log/atmi.sv90_2.200.log`" == "X" ]; then
0186     echo "Missing arg c check!"
0187     RET=-2
0188 fi
0189 
0190 # Catch is there is test error!!!
0191 if [ "X`grep TESTERROR $TESTDIR/runtime/user90/log/*.log`" != "X" ]; then
0192     echo "Test error detected!"
0193     RET=-2
0194 fi
0195 
0196 ################################################################################
0197 echo ">>> Checking missing -A -> -B..."
0198 ################################################################################
0199 
0200 OUT=`xadmin psc | grep "TESTSV       TESTSV       atmi.sv9+   500"`
0201 
0202 if [ "X$OUT" != "X" ]; then
0203     echo "TESTSV must not be advertised by srvid=500"
0204     go_out -1
0205 fi
0206 
0207 ################################################################################
0208 echo ">>> Compare outputs of the XML"
0209 ################################################################################
0210 
0211 OUT=`diff $TESTDIR/ubb_config1.xml $TESTDIR/runtime/user90/conf/ndrxconfig.test1.xml`
0212 
0213 echo $OUT
0214 
0215 RET=$?
0216 if [ "X$RET" != "X0" ]; then
0217     go_out $RET
0218 fi
0219 
0220 if [ "X$OUT" != "X" ]; then
0221     echo "ubb_config1.xml!=runtime/user90/conf/ndrxconfig.test1.xml"
0222     go_out -1
0223 fi
0224 
0225 ################################################################################
0226 echo ">>> Compare outputs of the INI"
0227 ################################################################################
0228 
0229 # prepare ini files, strip the dynamic parts
0230 # check exports only, as for MacOS there is additional mkdir for qpath
0231 cat $TESTDIR/ubb_config1.ini        | \
0232     grep -v NDRX_XA_DRIVERLIB       | \
0233     grep -v NDRX_XA_RMLIB           | \
0234     grep -v NDRX_RNDK               | \
0235     grep -v FLDTBLDIR               | \
0236     grep -v NDRX_LIBEXT             | \
0237     grep -v NDRX_QPATH > tmp1
0238 
0239 cat $TESTDIR/runtime/user90/conf/app.test1.ini  | \
0240     grep -v NDRX_XA_DRIVERLIB                   | \
0241     grep -v NDRX_XA_RMLIB                       | \
0242     grep -v NDRX_RNDK                           | \
0243     grep -v FLDTBLDIR                           | \
0244     grep -v NDRX_LIBEXT                         | \
0245     grep -v NDRX_QPATH  > tmp2
0246 
0247 OUT=`diff tmp1 tmp2`
0248 
0249 echo $OUT
0250 
0251 if [ "X$OUT" != "X" ]; then
0252     echo "ubb_config1.ini!=runtime/user90/conf/app.test1.ini"
0253     go_out -1
0254 fi
0255 
0256 ################################################################################
0257 echo ">>> Compare outputs of the set file"
0258 ################################################################################
0259 
0260 # prepare ini files, strip the dynamic parts
0261 cat $TESTDIR/ubb_config1.set                | \
0262     grep export                             | \
0263     grep -v NDRX_APPHOME       > tmp1
0264 
0265 cat $TESTDIR/runtime/user90/conf/settest1   | \
0266     grep export                             | \
0267     grep -v NDRX_APPHOME       > tmp2
0268 
0269 OUT=`diff tmp1 tmp2`
0270 
0271 echo $OUT
0272 
0273 if [ "X$OUT" != "X" ]; then
0274     echo "ubb_config1.set !=runtime/user90/conf/settest1"
0275     go_out -1
0276 fi
0277 
0278 
0279 go_out $RET
0280 
0281 # vim: set ts=4 sw=4 et smartindent:
0282