155 lines
4.9 KiB
Bash
Executable File
155 lines
4.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#*******************************************************************************
|
|
#Encoder Binary comparison test model
|
|
# -- Compared with benchmark version using SHA-1 string
|
|
# -- Test bit stream under folder openh264/res
|
|
# -- SHA-1 string of benchmark version for all cases of all bit streams
|
|
# under folder openh264/test/encoder_binary_comparion/SHA1Table
|
|
# -- For more detail,please refer to file AboutTest.
|
|
#
|
|
#brief:
|
|
# -- This file is for local test under Linux/Unix OS
|
|
# -- Start point of the test model,
|
|
# -- For local test, please run below command:
|
|
# ./run_Main.sh LocalTest
|
|
# And wait minutes for the test result.
|
|
# Final test result, you can refer to test output files under folder
|
|
# openh264/test/encoder_binary_comparison/FinalResult.
|
|
# -- If there is something change in encoder design,and found that the bit stream
|
|
# also change,you need to update the SHA1 table files in ./SHA1Table.
|
|
# For update the SHA1 tables, please run below command:
|
|
# ./run_Main.sh UpdateSHA1Table
|
|
# There will be some mismatched warning info, please ignore it.
|
|
# Wait for minutes,the up-to-date will be copied to ./SHA1Table.
|
|
# date: 10/06/2014 Created
|
|
#*******************************************************************************
|
|
#usage: runTestTypeCheck ${TestType}
|
|
runTestTypeCheck()
|
|
{
|
|
if [ ! $# -eq 1 ]
|
|
then
|
|
echo "usage: runTestTypeCheck \${TestType}"
|
|
exit 1
|
|
fi
|
|
|
|
local TestType=$1
|
|
|
|
echo "TestType is ${TestType}"
|
|
if [ "${TestType}" = "LocalTest" ]
|
|
then
|
|
return 0
|
|
elif [ "${TestType}" = "UpdateSHA1Table" ]
|
|
then
|
|
return 0
|
|
else
|
|
echo "usage: --./run_Main.sh LocalTest"
|
|
echo " or --./run_Main.sh UpdateSHA1Table"
|
|
exit 1
|
|
fi
|
|
}
|
|
#delete temp files/folders
|
|
runLocalTestPostAction()
|
|
{
|
|
./Scripts/run_SafeDelete.sh ${AllTestDataFolder} >>${DeletedLog}
|
|
./Scripts/run_SafeDelete.sh ./Codec >>${DeletedLog}
|
|
|
|
echo -e "\n\n\n"
|
|
echo -e "\033[32m *************************************************************** \033[0m"
|
|
echo -e "\033[32m Local test completed, \033[0m"
|
|
if [ ${Flag} -eq 0 ]
|
|
then
|
|
echo -e "\033[32m --all cases pass!! ----bit stream: ${StreamName} \033[0m"
|
|
else
|
|
echo -e "\033[31m --not all cases passed .....\033[0m"
|
|
fi
|
|
echo ""
|
|
echo -e "\033[32m for more detail, please refer to xxx.log files and xxx.csv files in ./FinalResult \033[0m"
|
|
echo -e "\033[32m *************************************************************** \033[0m"
|
|
echo ""
|
|
}
|
|
#copy up-to-date SHA1 table files to ./SHA1Table
|
|
#and delete temp files/folders
|
|
runUpdateSHA1TablePostAction()
|
|
{
|
|
local BitStreamName=""
|
|
local SHA1TableName=""
|
|
local FileName=""
|
|
|
|
for file in ${FinalResultFolder}/*
|
|
do
|
|
FileName=`echo $file | awk 'BEGIN {FS="/"} {print $NF}'`
|
|
if [[ "$FileName" =~ UpdateSHA1Table.csv$ ]]
|
|
then
|
|
BitStreamName=`echo $FileName | awk 'BEGIN {FS=".264"} {print $1}'`
|
|
SHA1TableName=${BitStreamName}.264_AllCase_SHA1_Table.csv
|
|
./Scripts/run_SafeDelete.sh ${SHA1TableFolder}/${SHA1TableName} >>${DeletedLog}
|
|
cp $file ${SHA1TableFolder}/${SHA1TableName}
|
|
fi
|
|
done
|
|
|
|
./Scripts/run_SafeDelete.sh ${AllTestDataFolder}>>${DeletedLog}
|
|
./Scripts/run_SafeDelete.sh ${FinalResultFolder}>>${DeletedLog}
|
|
./Scripts/run_SafeDelete.sh ./Codec>>${DeletedLog}
|
|
echo -e "\n\n\n"
|
|
echo -e "\033[32m *************************************************************** \033[0m"
|
|
echo -e "\033[32m all SHA1 tables in ./${SHA1TableFolder} have been updated \033[0m"
|
|
echo -e "\n"
|
|
echo -e "\033[32m *************************************************************** \033[0m"
|
|
echo -e "\n\n"
|
|
|
|
}
|
|
#usage: --./run_Main.sh LocalTest
|
|
# or --./run_Main.sh UpdateSHA1Table
|
|
runMain()
|
|
{
|
|
if [ ! $# -eq 1 ]
|
|
then
|
|
echo "usage: --./run_Main.sh LocalTest"
|
|
echo " or --./run_Main.sh UpdateSHA1Table"
|
|
exit 1
|
|
fi
|
|
local TestType=$1
|
|
local BitStreamName=""
|
|
Flag=""
|
|
SHA1TableFolder="SHA1Table"
|
|
FinalResultFolder="FinalResult"
|
|
AllTestDataFolder="AllTestData"
|
|
DeletedLog="Delete.log"
|
|
runTestTypeCheck ${TestType}
|
|
|
|
# 32 -->32 bits release version;64 -->64 bits release version
|
|
./run_PrepareAllTestData.sh 32
|
|
if [ ! $? -eq 0 ]
|
|
then
|
|
echo "failed to prepare test space for all test data!"
|
|
exit 1
|
|
fi
|
|
|
|
#test all cases
|
|
let "Flag=0"
|
|
for Bitsream in ./SHA1Table/*.csv
|
|
do
|
|
BitStreamName=`echo ${Bitsream} | awk 'BEGIN {FS="/"} {print $NF} ' `
|
|
BitStreamName=`echo ${BitStreamName} | awk 'BEGIN {FS="_AllCase"} {print $1} ' `
|
|
echo -e "\n\n\n"
|
|
./run_OneBitStream.sh ${BitStreamName}
|
|
if [ ! $? -eq 0 ]
|
|
then
|
|
let "Flag=1"
|
|
fi
|
|
done
|
|
#post action
|
|
if [ ${TestType} = "LocalTest" ]
|
|
then
|
|
runLocalTestPostAction
|
|
elif [ ${TestType} = "UpdateSHA1Table" ]
|
|
then
|
|
runUpdateSHA1TablePostAction
|
|
fi
|
|
|
|
}
|
|
TestType=$1
|
|
runMain ${TestType}
|
|
|