test-all.sh 15.2 KB
Newer Older
sangshuduo's avatar
sangshuduo 已提交
1 2
#!/bin/bash

3 4 5 6 7 8
# Color setting
RED='\033[0;31m'
GREEN='\033[1;32m'
GREEN_DARK='\033[0;32m'
GREEN_UNDERLINE='\033[4;32m'
NC='\033[0m'
L
liuyq-617 已提交
9

10 11 12
tests_dir=`pwd`
IN_TDINTERNAL="community"

P
Ping Xiao 已提交
13 14
function stopTaosd {
	echo "Stop taosd"
P
Ping Xiao 已提交
15
  sudo systemctl stop taosd
P
Ping Xiao 已提交
16 17 18 19 20 21 22 23 24
  PID=`ps -ef|grep -w taosd | grep -v grep | awk '{print $2}'`
	while [ -n "$PID" ]
	do
    pkill -TERM -x taosd
    sleep 1
  	PID=`ps -ef|grep -w taosd | grep -v grep | awk '{print $2}'`
	done
}

L
liuyq-617 已提交
25 26
function dohavecore(){
  corefile=`find $corepath -mmin 1`  
L
liuyq-617 已提交
27 28
  core_file=`echo $corefile|cut -d " " -f2`
  echo $core_file
L
liuyq-617 已提交
29
  proc=`echo $corefile|cut -d "_" -f3`
L
liuyq-617 已提交
30
  if [ -n "$corefile" ];then
31
    echo 'taosd or taos has generated core'
L
fix  
liuyq-617 已提交
32
    tar -zcPf $corepath'taos_'`date "+%Y_%m_%d_%H_%M_%S"`.tar.gz /usr/local/taos/
33
    if [[ $1 == 1 ]];then
L
liuyq-617 已提交
34
      echo '\n'|gdb /usr/local/taos/bin/$proc $core_file -ex "bt 10" -ex quit
35 36
      exit 8
    fi
L
liuyq-617 已提交
37
  fi
38
}
L
liuyq-617 已提交
39

40 41
function runSimCaseOneByOne {
  while read -r line; do
P
Ping Xiao 已提交
42
    if [[ $line =~ ^./test.sh* ]] || [[ $line =~ ^run* ]]; then
43
			case=`echo $line | grep sim$ |awk '{print $NF}'`    
P
Ping Xiao 已提交
44
      start_time=`date +%s`      
P
Ping Xiao 已提交
45
      date +%F\ %T | tee -a out.log
L
liuyq-617 已提交
46 47 48
      if [[ "$tests_dir" == *"$IN_TDINTERNAL"* ]]; then
        echo -n $case
        ./test.sh -f $case > /dev/null 2>&1 && \
L
liuyq-617 已提交
49
        ( grep -q 'script.*'$case'.*failed.*, err.*lineNum' ../../../sim/tsim/log/taoslog0.0 && echo -e "${RED} failed${NC}" | tee -a out.log  ||  echo -e "${GREEN} success${NC}" | tee -a out.log )|| \
L
liuyq-617 已提交
50 51 52 53 54
        ( grep -q 'script.*success.*m$' ../../../sim/tsim/log/taoslog0.0 && echo -e "${GREEN} success${NC}" | tee -a out.log )  || \
        echo -e "${RED} failed${NC}" | tee -a out.log
      else
        echo -n $case
        ./test.sh -f $case > /dev/null 2>&1 && \
L
liuyq-617 已提交
55
        ( grep -q 'script.*'$case'.*failed.*, err.*lineNum' ../../sim/tsim/log/taoslog0.0 && echo -e "${RED} failed${NC}" | tee -a out.log  ||  echo -e "${GREEN} success${NC}" | tee -a out.log )|| \
L
liuyq-617 已提交
56 57 58
        ( grep -q 'script.*success.*m$' ../../sim/tsim/log/taoslog0.0 && echo -e "${GREEN} success${NC}" | tee -a out.log )  || \
        echo -e "${RED} failed${NC}" | tee -a out.log
      fi
L
liuyq-617 已提交
59
      out_log=`tail -1 out.log  `
L
liuyq-617 已提交
60 61 62
      # if [[ $out_log =~ 'failed' ]];then
      #   exit 8
      # fi
S
Shuduo Sang 已提交
63 64
      end_time=`date +%s`
      echo execution time of $case was `expr $end_time - $start_time`s. | tee -a out.log
L
liuyq-617 已提交
65
      dohavecore 0
66 67 68
    fi
  done < $1
}
L
liuyq-617 已提交
69
function runSimCaseOneByOnefq {
L
liuyq-617 已提交
70 71 72 73 74

  start=`sed -n "/$1-start/=" jenkins/basic.txt`
  end=`sed -n "/$1-end/=" jenkins/basic.txt`  
  for ((i=$start;i<=$end;i++)) ; do
    line=`sed -n "$i"p jenkins/basic.txt`
L
liuyq-617 已提交
75 76 77
    if [[ $line =~ ^./test.sh* ]] || [[ $line =~ ^run* ]]; then
			case=`echo $line | grep sim$ |awk '{print $NF}'`

78
      start_time=`date +%s`    
P
Ping Xiao 已提交
79
      date +%F\ %T | tee -a out.log
80
      if [[ "$tests_dir" == *"$IN_TDINTERNAL"* ]]; then
L
liuyq-617 已提交
81
        echo -n $case
82
        ./test.sh -f $case > ../../../sim/case.log 2>&1 && \
L
liuyq-617 已提交
83
        ( grep -q 'script.*'$case'.*failed.*, err.*lineNum' ../../../sim/tsim/log/taoslog0.0 && echo -e "${RED} failed${NC}" | tee -a out.log  ||  echo -e "${GREEN} success${NC}" | tee -a out.log )|| \
L
liuyq-617 已提交
84
        ( grep -q 'script.*success.*m$' ../../../sim/tsim/log/taoslog0.0 && echo -e "${GREEN} success${NC}" | tee -a out.log )  || \
85
        ( echo -e "${RED} failed${NC}" | tee -a out.log && echo '=====================log=====================' && cat ../../../sim/case.log )
86
      else
L
liuyq-617 已提交
87
        echo -n $case
88
        ./test.sh -f $case > ../../sim/case.log 2>&1 && \
L
liuyq-617 已提交
89
        ( grep -q 'script.*'$case'.*failed.*, err.*lineNum' ../../sim/tsim/log/taoslog0.0 && echo -e "${RED} failed${NC}" | tee -a out.log  ||  echo -e "${GREEN} success${NC}" | tee -a out.log )|| \
L
liuyq-617 已提交
90
        ( grep -q 'script.*success.*m$' ../../sim/tsim/log/taoslog0.0 && echo -e "${GREEN} success${NC}" | tee -a out.log )  || \
91
        ( echo -e "${RED} failed${NC}" | tee -a out.log && echo '=====================log=====================' &&  cat ../../sim/case.log )
92 93
      fi
      
L
liuyq-617 已提交
94 95
      out_log=`tail -1 out.log  `
      if [[ $out_log =~ 'failed' ]];then
96
        if [[ "$tests_dir" == *"$IN_TDINTERNAL"* ]]; then
L
liuyq-617 已提交
97
          cp -r ../../../sim ~/sim_`date "+%Y_%m_%d_%H:%M:%S"`
98
          rm -rf ../../../sim/case.log
99
        else 
L
liuyq-617 已提交
100
          cp -r ../../sim ~/sim_`date "+%Y_%m_%d_%H:%M:%S" `
101
          rm -rf ../../sim/case.log
102
        fi
L
liuyq-617 已提交
103
        dohavecore $2
L
fix  
liuyq-617 已提交
104 105 106
        if [[ $2 == 1 ]];then
          exit 8
        fi
L
liuyq-617 已提交
107 108 109
      fi
      end_time=`date +%s`
      echo execution time of $case was `expr $end_time - $start_time`s. | tee -a out.log
L
liuyq-617 已提交
110
      dohavecore $2
L
liuyq-617 已提交
111
    fi
L
liuyq-617 已提交
112
  done 
113 114
  rm -rf ../../../sim/case.log
  rm -rf ../../sim/case.log
L
liuyq-617 已提交
115
}
116 117 118 119

function runPyCaseOneByOne {
  while read -r line; do
    if [[ $line =~ ^python.* ]]; then
120
      if [[ $line != *sleep* ]]; then
L
liuyq-617 已提交
121 122 123 124 125 126
        
        if [[ $line =~ '-r' ]];then
          case=`echo $line|awk '{print $4}'`
        else
          case=`echo $line|awk '{print $NF}'`
        fi
S
Shuduo Sang 已提交
127
        start_time=`date +%s`
P
Ping Xiao 已提交
128
        date +%F\ %T | tee -a pytest-out.log
L
liuyq-617 已提交
129
        echo -n $case
130
        $line > /dev/null 2>&1 && \
L
liuyq-617 已提交
131 132
          echo -e "${GREEN} success${NC}" | tee -a pytest-out.log || \
          echo -e "${RED} failed${NC}" | tee -a pytest-out.log
S
Shuduo Sang 已提交
133
        end_time=`date +%s`
L
liuyq-617 已提交
134
        out_log=`tail -1 pytest-out.log  `
L
liuyq-617 已提交
135 136 137
        # if [[ $out_log =~ 'failed' ]];then
        #   exit 8
        # fi
S
Shuduo Sang 已提交
138
        echo execution time of $case was `expr $end_time - $start_time`s. | tee -a pytest-out.log
139 140 141
      else
        $line > /dev/null 2>&1
      fi
L
liuyq-617 已提交
142
      dohavecore 0
143 144 145
    fi
  done < $1
}
L
liuyq-617 已提交
146 147 148 149 150 151 152 153 154 155 156
function runPyCaseOneByOnefq() {
  cd $tests_dir/pytest
  if [[ $1 =~ full ]] ; then
    start=1
    end=`sed -n '$=' fulltest.sh`
  else
    start=`sed -n "/$1-start/=" fulltest.sh`
    end=`sed -n "/$1-end/=" fulltest.sh`
  fi
  for ((i=$start;i<=$end;i++)) ; do
    line=`sed -n "$i"p fulltest.sh`
L
liuyq-617 已提交
157 158 159 160 161 162 163 164 165
    if [[ $line =~ ^python.* ]]; then
      if [[ $line != *sleep* ]]; then
        
        if [[ $line =~ '-r' ]];then
          case=`echo $line|awk '{print $4}'`
        else
          case=`echo $line|awk '{print $NF}'`
        fi
        start_time=`date +%s`
P
Ping Xiao 已提交
166
        date +%F\ %T | tee -a pytest-out.log
L
liuyq-617 已提交
167
        echo -n $case
168
        $line > ../../sim/case.log 2>&1 && \
L
liuyq-617 已提交
169
          echo -e "${GREEN} success${NC}" | tee -a pytest-out.log || \
170
          echo -e "${RED} failed${NC}" | tee -a pytest-out.log 
L
liuyq-617 已提交
171 172 173
        end_time=`date +%s`
        out_log=`tail -1 pytest-out.log  `
        if [[ $out_log =~ 'failed' ]];then
L
liuyq-617 已提交
174
          cp -r ../../sim ~/sim_`date "+%Y_%m_%d_%H:%M:%S" `
L
fix  
liuyq-617 已提交
175
          echo '=====================log===================== '
176 177
          cat ../../sim/case.log
          rm -rf ../../sim/case.log
178
          dohavecore $2
L
fix  
liuyq-617 已提交
179 180 181
          if [[ $2 == 1 ]];then
            exit 8
          fi
L
liuyq-617 已提交
182 183 184 185 186
        fi
        echo execution time of $case was `expr $end_time - $start_time`s. | tee -a pytest-out.log
      else
        $line > /dev/null 2>&1
      fi
L
liuyq-617 已提交
187
      dohavecore $2
L
liuyq-617 已提交
188
    fi
L
liuyq-617 已提交
189
  done 
190
  rm -rf ../../sim/case.log
L
liuyq-617 已提交
191
}
192

193 194
totalFailed=0
totalPyFailed=0
195
totalJDBCFailed=0
P
Ping Xiao 已提交
196
totalUnitFailed=0
197
totalExampleFailed=0
sangshuduo's avatar
sangshuduo 已提交
198

L
liuyq-617 已提交
199
corepath=`grep -oP '.*(?=core_)' /proc/sys/kernel/core_pattern||grep -oP '.*(?=core-)' /proc/sys/kernel/core_pattern`
200
if [ "$2" != "jdbc" ] && [ "$2" != "python" ] && [ "$2" != "unit" ]  && [ "$2" != "example" ]; then
201
  echo "### run TSIM test case ###"
S
Shuduo Sang 已提交
202
  cd $tests_dir/script
203

204 205 206 207 208 209
  [ -f out.log ] && rm -f out.log
  if [ "$1" == "cron" ]; then
    echo "### run TSIM regression test ###"
    runSimCaseOneByOne regressionSuite.sim
  elif [ "$1" == "full" ]; then
    echo "### run TSIM full test ###"
P
Ping Xiao 已提交
210
    runSimCaseOneByOne jenkins/basic.txt
L
liuyq-617 已提交
211 212
  elif [ "$1" == "b1" ]; then
    echo "### run TSIM b1 test ###"
L
liuyq-617 已提交
213 214 215 216 217
    runSimCaseOneByOnefq b1 0
    runSimCaseOneByOnefq b4 0
    runSimCaseOneByOnefq b5 0
    runSimCaseOneByOnefq b6 0
    runSimCaseOneByOnefq b7 0
L
liuyq-617 已提交
218 219
  elif [ "$1" == "b2" ]; then
    echo "### run TSIM b2 test ###"
L
liuyq-617 已提交
220
    runSimCaseOneByOnefq b2 0
L
liuyq-617 已提交
221 222
  elif [ "$1" == "b3" ]; then
    echo "### run TSIM b3 test ###"
L
liuyq-617 已提交
223
    runSimCaseOneByOnefq b3 0
L
liuyq-617 已提交
224 225
  elif [ "$1" == "b1fq" ]; then
    echo "### run TSIM b1 test ###"
L
liuyq-617 已提交
226
    runSimCaseOneByOnefq b1 1
L
liuyq-617 已提交
227 228
  elif [ "$1" == "b2fq" ]; then
    echo "### run TSIM b2 test ###"
L
liuyq-617 已提交
229
    runSimCaseOneByOnefq b2 1
L
liuyq-617 已提交
230 231
  elif [ "$1" == "b3fq" ]; then
    echo "### run TSIM b3 test ###"
L
liuyq-617 已提交
232
    runSimCaseOneByOnefq b3 1
L
liuyq-617 已提交
233 234
  elif [ "$1" == "b4fq" ]; then
    echo "### run TSIM b4 test ###"
L
liuyq-617 已提交
235
    runSimCaseOneByOnefq b4 1
L
liuyq-617 已提交
236 237
  elif [ "$1" == "b5fq" ]; then
    echo "### run TSIM b5 test ###"
L
liuyq-617 已提交
238
    runSimCaseOneByOnefq b5 1
L
liuyq-617 已提交
239 240
  elif [ "$1" == "b6fq" ]; then
    echo "### run TSIM b6 test ###"
L
liuyq-617 已提交
241
    runSimCaseOneByOnefq b6 1
L
liuyq-617 已提交
242 243
  elif [ "$1" == "b7fq" ]; then
    echo "### run TSIM b7 test ###"
L
liuyq-617 已提交
244
    runSimCaseOneByOnefq b7 1
S
Shuduo Sang 已提交
245
  elif [ "$1" == "smoke" ] || [ -z "$1" ]; then
246 247 248
    echo "### run TSIM smoke test ###"
    runSimCaseOneByOne basicSuite.sim
  fi
249

250 251
  totalSuccess=`grep 'success' out.log | wc -l`
  totalBasic=`grep success out.log | grep Suite | wc -l`
252

253 254 255
  if [ "$totalSuccess" -gt "0" ]; then
    totalSuccess=`expr $totalSuccess - $totalBasic`
  fi
sangshuduo's avatar
sangshuduo 已提交
256

S
Shuduo Sang 已提交
257
  echo -e "\n${GREEN} ### Total $totalSuccess TSIM case(s) succeed! ### ${NC}"
258

259 260
  totalFailed=`grep 'failed\|fault' out.log | wc -l`
# echo -e "${RED} ### Total $totalFailed TSIM case(s) failed! ### ${NC}"
261

262
  if [ "$totalFailed" -ne "0" ]; then
S
Shuduo Sang 已提交
263
    echo -e "\n${RED} ### Total $totalFailed TSIM case(s) failed! ### ${NC}"
sangshuduo's avatar
sangshuduo 已提交
264

265 266
#  exit $totalFailed
  fi
sangshuduo's avatar
sangshuduo 已提交
267 268
fi

269
if [ "$2" != "sim" ] && [ "$2" != "jdbc" ] && [ "$2" != "unit" ]  && [ "$2" != "example" ]; then
270
  echo "### run Python test case ###"
271

S
Shuduo Sang 已提交
272
  cd $tests_dir
273

S
Shuduo Sang 已提交
274
  if [[ "$tests_dir" == *"$IN_TDINTERNAL"* ]]; then
275 276 277 278 279 280 281 282 283 284 285 286 287 288 289
    cd ../..
  else
    cd ../
  fi

  TOP_DIR=`pwd`
  TAOSLIB_DIR=`find . -name "libtaos.so"|grep -w lib|head -n1`
  if [[ "$TAOSLIB_DIR" == *"$IN_TDINTERNAL"* ]]; then
    LIB_DIR=`find . -name "libtaos.so"|grep -w lib|head -n1|cut -d '/' --fields=2,3,4,5`
  else
    LIB_DIR=`find . -name "libtaos.so"|grep -w lib|head -n1|cut -d '/' --fields=2,3,4`
  fi

  export LD_LIBRARY_PATH=$TOP_DIR/$LIB_DIR:$LD_LIBRARY_PATH

S
Shuduo Sang 已提交
290
  cd $tests_dir/pytest
291 292 293 294 295 296 297 298 299

  [ -f pytest-out.log ] && rm -f pytest-out.log

  if [ "$1" == "cron" ]; then
    echo "### run Python regression test ###"
    runPyCaseOneByOne regressiontest.sh
  elif [ "$1" == "full" ]; then
    echo "### run Python full test ###"
    runPyCaseOneByOne fulltest.sh
L
liuyq-617 已提交
300
  elif [ "$1" == "pytest" ]; then
L
liuyq-617 已提交
301 302
    echo "### run Python full test ###"
    runPyCaseOneByOne fulltest.sh
L
liuyq-617 已提交
303 304
  elif [ "$1" == "pytestfq" ]; then
    echo "### run Python full test ###"
L
liuyq-617 已提交
305
    runPyCaseOneByOnefq full 0
306 307
  elif [ "$1" == "p1" ]; then
    echo "### run Python_1 test ###"
L
liuyq-617 已提交
308
    runPyCaseOneByOnefq p1 1
309 310
  elif [ "$1" == "p2" ]; then
    echo "### run Python_2 test ###"
L
liuyq-617 已提交
311
    runPyCaseOneByOnefq p2 1
L
liuyq-617 已提交
312 313
  elif [ "$1" == "p3" ]; then
    echo "### run Python_3 test ###"
L
liuyq-617 已提交
314
    runPyCaseOneByOnefq p3 1 
L
liuyq-617 已提交
315 316
  elif [ "$1" == "p4" ]; then
    echo "### run Python_4 test ###"
L
liuyq-617 已提交
317
    runPyCaseOneByOnefq p4 1
L
liuyq-617 已提交
318 319
  elif [ "$1" == "b2" ] || [ "$1" == "b3" ]; then
    exit $(($totalFailed + $totalPyFailed))
S
Shuduo Sang 已提交
320
  elif [ "$1" == "smoke" ] || [ -z "$1" ]; then
321 322 323
    echo "### run Python smoke test ###"
    runPyCaseOneByOne smoketest.sh
  fi
324
  totalPySuccess=`grep 'success' pytest-out.log | wc -l`
325 326

  if [ "$totalPySuccess" -gt "0" ]; then
S
Shuduo Sang 已提交
327
    echo -e "\n${GREEN} ### Total $totalPySuccess python case(s) succeed! ### ${NC}"
328 329 330 331
  fi

  totalPyFailed=`grep 'failed\|fault' pytest-out.log | wc -l`
  if [ "$totalPyFailed" -ne "0" ]; then
S
Shuduo Sang 已提交
332
    echo -e "\n${RED} ### Total $totalPyFailed python case(s) failed! ### ${NC}"
333
#  exit $totalPyFailed
334
  fi
sangshuduo's avatar
sangshuduo 已提交
335 336
fi

337

338
if [ "$2" != "sim" ] && [ "$2" != "python" ] && [ "$2" != "unit" ]  && [ "$2" != "example" ] && [ "$1" == "full" ]; then
339
  echo "### run JDBC test cases ###"
340

P
Ping Xiao 已提交
341
  cd $tests_dir
342 343 344 345 346 347 348

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

P
Ping Xiao 已提交
349
  pwd
350
  cd debug/
P
change  
Ping Xiao 已提交
351
  
P
Ping Xiao 已提交
352
  stopTaosd
353
  rm -rf /var/lib/taos/*
354 355
  nohup build/bin/taosd -c /etc/taos/ > /dev/null 2>&1 &
  sleep 30
P
change  
Ping Xiao 已提交
356
  
357
  cd $tests_dir/../src/connector/jdbc  
P
Ping Xiao 已提交
358
  
P
change  
Ping Xiao 已提交
359
  mvn test > jdbc-out.log 2>&1
360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381
  tail -n 20 jdbc-out.log

  cases=`grep 'Tests run' jdbc-out.log | awk 'END{print $3}'`
  totalJDBCCases=`echo ${cases/%,}`
  failed=`grep 'Tests run' jdbc-out.log | awk 'END{print $5}'`
  JDBCFailed=`echo ${failed/%,}`
  error=`grep 'Tests run' jdbc-out.log | awk 'END{print $7}'`
  JDBCError=`echo ${error/%,}`
  
  totalJDBCFailed=`expr $JDBCFailed + $JDBCError`
  totalJDBCSuccess=`expr $totalJDBCCases - $totalJDBCFailed`

  if [ "$totalJDBCSuccess" -gt "0" ]; then
    echo -e "\n${GREEN} ### Total $totalJDBCSuccess JDBC case(s) succeed! ### ${NC}"
  fi
  
  if [ "$totalJDBCFailed" -ne "0" ]; then
    echo -e "\n${RED} ### Total $totalJDBCFailed JDBC case(s) failed! ### ${NC}"
  fi
  dohavecore 1
fi

382
if [ "$2" != "sim" ] && [ "$2" != "python" ] && [ "$2" != "jdbc" ]  && [ "$2" != "example" ]  && [ "$1" == "full" ]; then
383 384 385 386 387 388 389 390 391 392 393 394 395
  echo "### run Unit tests ###"  

  stopTaosd
  cd $tests_dir

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

  pwd
  cd debug/build/bin
396
  rm -rf /var/lib/taos/*
397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417
  nohup ./taosd -c /etc/taos/ > /dev/null 2>&1 &
  sleep 30
  
  pwd
  ./queryTest > unittest-out.log 2>&1
  tail -n 20 unittest-out.log

  totalUnitTests=`grep "Running" unittest-out.log | awk '{print $3}'`  
  totalUnitSuccess=`grep 'PASSED' unittest-out.log | awk '{print $4}'`
  totalUnitFailed=`expr $totalUnitTests - $totalUnitSuccess`

  if [ "$totalUnitSuccess" -gt "0" ]; then
    echo -e "\n${GREEN} ### Total $totalUnitSuccess Unit test succeed! ### ${NC}"
  fi
  
  if [ "$totalUnitFailed" -ne "0" ]; then
    echo -e "\n${RED} ### Total $totalUnitFailed Unit test failed! ### ${NC}"
  fi
  dohavecore 1
fi

418 419
if [ "$2" != "sim" ] && [ "$2" != "python" ] && [ "$2" != "jdbc" ] && [ "$2" != "unit" ] && [ "$1" == "full" ]; then
  echo "### run Example tests ###"  
420

421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494
  stopTaosd
  cd $tests_dir

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

  pwd
  cd debug/build/bin
  rm -rf /var/lib/taos/*
  nohup ./taosd -c /etc/taos/ > /dev/null 2>&1 &
  echo "sleeping for 30 seconds"
  #sleep 30
  
  cd $tests_dir
  echo "current dir: "
  pwd
  cd examples/c
  echo "building applications"
  make > /dev/null
  totalExamplePass=0

  echo "Running tests"
  ./apitest > /dev/null 2>&1
  if [ $? != "0" ]; then
    echo "prepare failed"
    totalExampleFailed=`expr $totalExampleFailed + 1`    
  else
    echo "prepare pass"
    totalExamplePass=`expr $totalExamplePass + 1`
  fi 

  ./prepare 127.0.0.1 > /dev/null 2>&1
  if [ $? != "0" ]; then
    echo "prepare failed"
    totalExampleFailed=`expr $totalExampleFailed + 1`    
  else
    echo "prepare pass"
    totalExamplePass=`expr $totalExamplePass + 1`
  fi

  ./subscribe -test > /dev/null 2>&1
  if [ $? != "0" ]; then
    echo "prepare failed"
    totalExampleFailed=`expr $totalExampleFailed + 1`    
  else
    echo "prepare pass"
    totalExamplePass=`expr $totalExamplePass + 1`
  fi

  yes |./asyncdemo 127.0.0.1 test 1000 10 > /dev/null 2>&1
  if [ $? != "0" ]; then
    echo "prepare failed"
    totalExampleFailed=`expr $totalExampleFailed + 1`    
  else
    echo "prepare pass"
    totalExamplePass=`expr $totalExamplePass + 1`
  fi
  
  if [ "$totalExamplePass" -gt "0" ]; then
    echo -e "\n${GREEN} ### Total $totalExamplePass examples succeed! ### ${NC}"
  fi
  
  if [ "$totalExampleFailed" -ne "0" ]; then
    echo -e "\n${RED} ### Total $totalExampleFailed examples failed! ### ${NC}"
  fi

  dohavecore 1
fi


exit $(($totalFailed + $totalPyFailed + $totalJDBCFailed + $totalUnitFailed + $totalExampleFailed))