#!/bin/bash #********************************************************************************** # This script is for test on travis.Currently there are 5 jobs running on # travis in parallel status which are listed as below: # 1.Unit test with gcc compiler; # 2.Unit test with clang compiler; # 3.Binary comparison test for test bit stream A; # 4.Binary comparison test for test bit stream B; # 5.Binary comparison test for test bit stream C. # For binary comparison test,before running all test cases, it need to prepare # the test space.On travis,as those parallel jobs are running on different VMs, # so each job need to prepare for its test space for itself. # # --usage: # ./runTest.sh UnitTest # or ./runTest.sh BinaryCompare ${TestBitStreamName} # # date: 10/06/2014 Created #********************************************************************************** #usage: runInputParamCheck ${TestType} ${TestBitStream} runInputParamCheck() { local ParameterFlag="" if [ $# -eq 1 -a "$1" = "UnitTest" ] then let "ParameterFlag=0" elif [ $# -eq 2 -a "$1" = "BinaryCompare" ] then let "ParameterFlag=0" else let "ParameterFlag=1" fi return ${ParameterFlag} } #usage: runUnitTest runUnitTest() { CFLAGS=-Werror make -B ENABLE64BIT=Yes BUILDTYPE=Release all plugin test CFLAGS=-Werror make -B ENABLE64BIT=Yes BUILDTYPE=Debug all plugin test CFLAGS=-Werror make -B ENABLE64BIT=No BUILDTYPE=Release all plugin test CFLAGS=-Werror make -B ENABLE64BIT=No BUILDTYPE=Debug all plugin test return $? } #usage: runPrepareAndBinaryTest $TestBitStream runPrepareAndBinaryTest() { if [ ! $# -eq 2 ] then echo "usage: runPrepareAndBinaryTest \$TestBitStream" exit 1 fi local TestBitStream=$1 local TestType=$2 local WorkingDir=`pwd` local BinaryTestDir="test/encoder_binary_comparison" local TestSpacePrepareLog="AllTestSpacePrepare.log" cd ${BinaryTestDir} ./run_PrepareAllTestData.sh 64 2>${TestSpacePrepareLog} cd ${WorkingDir} echo "" echo " binary compare test, test bit stream is ${TestBitStream}" echo "" ./test/encoder_binary_comparison/run_OneBitStream.sh ${TestBitStream} ${TestType} return $? } #usage:runMain ${TestType} ${TestBitStream} runMain() { local TestType=$1 local TestBitStream=$2 runInputParamCheck ${TestType} ${TestBitStream} if [ ! $? -eq 0 ] then echo "usage: ./runTest.sh UnitTest \${PrepareFlag}" echo " or ./runTest.sh BinaryCompare \${TestBitStreamName} \${PrepareFlag} " exit 1 fi if [ "${TestType}" = "UnitTest" ] then set -e runUnitTest return $? fi if [ "${TestType}" = "BinaryCompare" ] then set -e runPrepareAndBinaryTest ${TestBitStream} TravisTest return $? fi } TestType=$1 TestBitStream=$2 runMain ${TestType} ${TestBitStream}