test.sh 4.5 KB
Newer Older
1 2 3 4 5 6 7 8 9
#!/bin/bash

##################################################
#
# Do simulation test
#
##################################################

set +e
S
Shengliang Guan 已提交
10
#set -x
11 12 13

FILE_NAME=
VALGRIND=0
S
Shengliang Guan 已提交
14
TEST=0
15 16
UNAME_BIN=`which uname`
OS_TYPE=`$UNAME_BIN`
S
Shengliang Guan 已提交
17
while getopts "f:tgv" arg
18 19 20 21 22 23 24 25
do
  case $arg in
    f)
      FILE_NAME=$OPTARG
      ;;
    v)
      VALGRIND=1
      ;;
S
Shengliang Guan 已提交
26 27
    t)
      TEST=1
28
      ;;
S
Shengliang Guan 已提交
29 30 31
    g)
      VALGRIND=2
      ;;  
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
    ?)
      echo "unknow argument"
      ;;
  esac
done

cd .

# Get responsible directories
CODE_DIR=`dirname $0`
CODE_DIR=`pwd`

IN_TDINTERNAL="community"
if [[ "$CODE_DIR" == *"$IN_TDINTERNAL"* ]]; then
  cd ../../..
else
  cd ../../
fi

TOP_DIR=`pwd`
wafwerar's avatar
wafwerar 已提交
52
TAOSD_DIR=`find . -name "taosd"|grep bin|head -n1`
53 54 55 56 57 58 59 60

if [[ "$OS_TYPE" != "Darwin" ]]; then
  cut_opt="--field="
else
  cut_opt="-f "
fi

if [[ "$TAOSD_DIR" == *"$IN_TDINTERNAL"* ]]; then
wafwerar's avatar
wafwerar 已提交
61
  BIN_DIR=`find . -name "taosd"|grep bin|head -n1|cut -d '/' ${cut_opt}2,3`
62
else
wafwerar's avatar
wafwerar 已提交
63
  BIN_DIR=`find . -name "taosd"|grep bin|head -n1|cut -d '/' ${cut_opt}2`
64 65
fi

wafwerar's avatar
wafwerar 已提交
66 67 68
declare -x BUILD_DIR=$TOP_DIR/$BIN_DIR
declare -x SIM_DIR=$TOP_DIR/sim
PROGRAM=$BUILD_DIR/build/bin/tsim
69 70 71 72
PRG_DIR=$SIM_DIR/tsim
CFG_DIR=$PRG_DIR/cfg
LOG_DIR=$PRG_DIR/log
DATA_DIR=$PRG_DIR/data
S
Shengliang Guan 已提交
73
ASAN_DIR=$SIM_DIR/asan
74 75 76 77 78 79 80 81

chmod -R 777 $PRG_DIR
echo "------------------------------------------------------------------------"
echo "Start TDengine Testing Case ..."
echo "BUILD_DIR: $BUILD_DIR"
echo "SIM_DIR  : $SIM_DIR"
echo "CODE_DIR : $CODE_DIR"
echo "CFG_DIR  : $CFG_DIR"
S
Shengliang Guan 已提交
82
echo "ASAN_DIR  : $ASAN_DIR"
83

P
plum-lihui 已提交
84
rm -rf $SIM_DIR/*
85 86
rm -rf $LOG_DIR
rm -rf $CFG_DIR
S
Shengliang Guan 已提交
87
rm -rf $ASAN_DIR
88 89 90 91

mkdir -p $PRG_DIR
mkdir -p $LOG_DIR
mkdir -p $CFG_DIR
S
Shengliang Guan 已提交
92
mkdir -p $ASAN_DIR
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127

TAOS_CFG=$PRG_DIR/cfg/taos.cfg
touch -f $TAOS_CFG
TAOS_FLAG=$PRG_DIR/flag

#HOSTNAME=`hostname -f`
HOSTNAME=localhost

echo " "                                          >> $TAOS_CFG
echo "firstEp            ${HOSTNAME}:7100"        >> $TAOS_CFG
echo "secondEp           ${HOSTNAME}:7200"        >> $TAOS_CFG
echo "serverPort         7100"                    >> $TAOS_CFG
echo "dataDir            $DATA_DIR"               >> $TAOS_CFG
echo "logDir             $LOG_DIR"                >> $TAOS_CFG
echo "scriptDir          ${CODE_DIR}"             >> $TAOS_CFG
echo "numOfLogLines      100000000"               >> $TAOS_CFG
echo "rpcDebugFlag       143"                     >> $TAOS_CFG
echo "tmrDebugFlag       131"                     >> $TAOS_CFG
echo "cDebugFlag         143"                     >> $TAOS_CFG
echo "udebugFlag         143"                     >> $TAOS_CFG
echo "debugFlag          143"                     >> $TAOS_CFG
echo "wal                0"                       >> $TAOS_CFG
echo "asyncLog           0"                       >> $TAOS_CFG
echo "locale             en_US.UTF-8"             >> $TAOS_CFG
echo "enableCoreFile     1"                       >> $TAOS_CFG
echo " "                                          >> $TAOS_CFG

ulimit -n 600000
ulimit -c unlimited

#sudo sysctl -w kernel.core_pattern=$TOP_DIR/core.%p.%e

if [ -n "$FILE_NAME" ]; then
  echo "------------------------------------------------------------------------"
  if [ $VALGRIND -eq 1 ]; then
128
    FLAG="-v"
X
Xiaoyu Wang 已提交
129 130
    echo valgrind --tool=memcheck --leak-check=full --show-reachable=no  --track-origins=yes --child-silent-after-fork=yes --show-leak-kinds=all --num-callers=20 -v  --workaround-gcc296-bugs=yes  --log-file=${LOG_DIR}/valgrind-tsim.log $PROGRAM -c $CFG_DIR -f $FILE_NAME $FLAG
    valgrind --tool=memcheck --leak-check=full --show-reachable=no  --track-origins=yes --child-silent-after-fork=yes --show-leak-kinds=all --num-callers=20 -v  --workaround-gcc296-bugs=yes  --log-file=${LOG_DIR}/valgrind-tsim.log $PROGRAM -c $CFG_DIR -f $FILE_NAME $FLAG
S
Shengliang Guan 已提交
131 132 133
  elif [ $VALGRIND -eq 2 ]; then
    echo "ExcuteCmd:" $PROGRAM -c $CFG_DIR -f $FILE_NAME -v
    $PROGRAM -c $CFG_DIR -f $FILE_NAME -v
134
  else
S
Shengliang Guan 已提交
135
    echo "ExcuteCmd:" $PROGRAM -c $CFG_DIR -f $FILE_NAME
S
Shengliang Guan 已提交
136 137
    echo "AsanDir:" $ASAN_DIR/tsim.asan
    eval $PROGRAM -c $CFG_DIR -f $FILE_NAME 2> $ASAN_DIR/tsim.asan
S
Shengliang Guan 已提交
138
    result=$?
S
Shengliang Guan 已提交
139
    echo "Execute result:" $result
S
Shengliang Guan 已提交
140

S
Shengliang Guan 已提交
141 142 143 144 145
    if [ $TEST -eq 1 ]; then
      echo "Exit without check asan errors"
      exit 1
    fi

S
Shengliang Guan 已提交
146
    if [ $result -eq 0 ]; then
147
      $CODE_DIR/sh/sigint_stop_dnodes.sh
S
Shengliang Guan 已提交
148 149
      $CODE_DIR/sh/checkAsan.sh
    else
S
Shengliang Guan 已提交
150 151 152
      echo "TSIM has asan errors"
      sleep 1
      $CODE_DIR/sh/checkAsan.sh
S
Shengliang Guan 已提交
153 154
      exit 1
    fi
155 156 157 158 159 160 161
  fi
else
  echo "ExcuteCmd:" $PROGRAM -c $CFG_DIR -f basicSuite.sim
  echo "------------------------------------------------------------------------"
  $PROGRAM -c $CFG_DIR -f basicSuite.sim
fi