Back to home page

Enduro/X

 
 

    


0001 #!/bin/bash
0002 ##
0003 ##
0004 ## @file run.sh
0005 ##
0006 ## -----------------------------------------------------------------------------
0007 ## Enduro/X Middleware Platform for Distributed Transaction Processing
0008 ## Copyright (C) 2009-2016, ATR Baltic, Ltd. All Rights Reserved.
0009 ## Copyright (C) 2017-2023, Mavimax, Ltd. All Rights Reserved.
0010 ## This software is released under one of the following licenses:
0011 ## AGPL (with Java and Go exceptions) or Mavimax's license for commercial use.
0012 ## See LICENSE file for full text.
0013 ## -----------------------------------------------------------------------------
0014 ## AGPL license:
0015 ##
0016 ## This program is free software; you can redistribute it and/or modify it under
0017 ## the terms of the GNU Affero General Public License, version 3 as published
0018 ## by the Free Software Foundation;
0019 ##
0020 ## This program is distributed in the hope that it will be useful, but WITHOUT ANY
0021 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
0022 ## PARTICULAR PURPOSE. See the GNU Affero General Public License, version 3
0023 ## for more details.
0024 ##
0025 ## You should have received a copy of the GNU Affero General Public License along 
0026 ## with this program; if not, write to the Free Software Foundation, Inc.,
0027 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
0028 ##
0029 ## -----------------------------------------------------------------------------
0030 ## A commercial use license is available from Mavimax, Ltd
0031 ## contact@mavimax.com
0032 ## -----------------------------------------------------------------------------
0033 ##
0034 
0035 # kill childs when master exist...
0036 shopt -s huponexit
0037 
0038 OS=`uname`
0039 
0040 if [[ "$OS" == "Linux" ]]; then
0041         ls -l /dev/mqueue
0042         if [ $? -ne 0 ]; then
0043                 echo "Have you mounted /dev/mqueue? Run:"
0044                 echo "# mkdir /dev/mqueue"
0045                 echo "# mount -t mqueue none /dev/mqueue"
0046                 exit 1
0047         fi
0048 fi
0049 
0050 # Load env for xmemck
0051 . ../sampleconfig/setndrx
0052 
0053 # start memcheck
0054 xmemck -v20 -d40 -s60 -t95 -n 'atmisv28|atmiunit1|tpbridge|tmsrv|convsv21|tmqueue|cpmsrv' -m atmi -d40 -m cpmsrv -d100 -m tpbridge -m tmsrv 2>./memck.log 1>./memck.out & 
0055 
0056 MEMCK_PID=$!
0057 echo "Memck pid = $MEMCK_PID"
0058 
0059 pushd .
0060 (./atmiunit1 2>&1) > test.out
0061 RET=$?
0062 popd
0063 
0064 # stop memcheck
0065 # bash will stop?
0066 #xadmin killall xmemck
0067 #xadmin killall xmemck
0068 kill -9 $MEMCK_PID
0069 
0070 # grep the stats, >>> LEAK found, return error
0071 echo "---- Leak info ----" >> test.out
0072 cat memck.out >> test.out
0073 echo "-------------------" >> test.out
0074 if [ "X`xadmin pmode | grep '#define NDRX_SANITIZE'`" != "X" ]; then
0075     echo "Sanitizer mode, ignore memck output"
0076 else
0077     echo "Catch memory leaks..."
0078     if [ "X`grep '>>> LEAK' memck.out`" != "X" ]; then
0079         echo "Memory leak detected!"
0080         RET=-2
0081     fi
0082 fi
0083 
0084 #
0085 # print some stats...
0086 #
0087 grep with test.out
0088 
0089 echo "atmitest/run.sh Terminates with: $RET"
0090 exit $RET
0091 
0092 # vim: set ts=4 sw=4 et smartindent: