| @@ -1,430 +1,442 @@ |
| 1 | 1 | #!/bin/bash |
| 2 | | −#******************************************************************************* |
| 2 | +#*************************************************************************************************************** |
| 3 | 3 | # Encoder binary comparison test model |
| 4 | | −# -- Compared with Benchmark version using SHA-1 string |
| 5 | | −# -- Test bit stream under folder openh264/res |
| 6 | | −# -- SHA-1 string of Benchmark version for all cases of all bit streams |
| 7 | | −# under folder openh264/test/encoder_binary_comparion/SHA1Table |
| 8 | | −# -- For more detail,please refer to file AboutTest?¡ê |
| 4 | +# -- Compared with Benchmark version using SHA-1 string |
| 5 | +# -- Test bit stream under folder openh264/res |
| 6 | +# -- SHA-1 string of Benchmark version for all cases of all bit streams |
| 7 | +# under folder openh264/test/encoder_binary_comparion/SHA1Table |
| 8 | +# -- For more detail,please refer to file AboutTest?¡ê |
| 9 | 9 | #brief: |
| 10 | | −# -- Test all cases in SHA1TableFile |
| 11 | | −# 1) Generate SHA1 string for each case |
| 12 | | −# 2) Compare with benchmark SHA1 string |
| 13 | | −# 3) If the SHA1 string are the same with benchmark version, test case is marked as passed |
| 14 | | −# 4) Otherwise, test case is marked as unpass! this may caused by: |
| 15 | | −# --the design of encoder has been changed and the bit stream also change |
| 16 | | −# --there may be some bugs in encoder and bit stream is not right |
| 17 | | −# -- Usage: ./run_BinarySHA1Comparison.sh ${TestYUVName} ${AllCaseSHA1TaleFile} |
| 10 | +# -- Test all cases in SHA1TableFile |
| 11 | +# 1) Generate SHA1 string for each case |
| 12 | +# 2) Compare with benchmark SHA1 string |
| 13 | +# 3) If the SHA1 string are the same with benchmark version, test case is marked as passed |
| 14 | +# 4) Otherwise, test case is marked as unpass! this may caused by: |
| 15 | +# --the design of encoder has been changed and the bit stream also change |
| 16 | +# --there may be some bugs in encoder and bit stream is not right |
| 17 | +# -- Usage: ./run_BinarySHA1Comparison.sh ${TestYUVName} ${AllCaseSHA1TaleFile} |
| 18 | 18 | # |
| 19 | | −# date: 10/06/2014 Created |
| 20 | | −#******************************************************************************* |
| 19 | +# date: 10/06/2014 Created |
| 20 | +#*************************************************************************************************************** |
| 21 | 21 | #global variable definition |
| 22 | 22 | #usage runGlobalVariableDef |
| 23 | 23 | runGlobalVariableDef() |
| 24 | 24 | { |
| 25 | | − WorkingDirDir="" |
| 26 | | − #test data space |
| 27 | | − FinalResultPath="" |
| 28 | | − IssueDataPath="" |
| 29 | | − TempDataPath="" |
| 30 | | − #for test sequence info |
| 31 | | − TestSequenceName="" |
| 32 | | − PicW="" |
| 33 | | − PicH="" |
| 34 | | − #test cfg file and test info output file |
| 35 | | − ConfigureFile="" |
| 36 | | − AllCaseFile="" |
| 37 | | − #xxx.csv |
| 38 | | − AllCasePassStatusFile="" |
| 39 | | − #for encoder command |
| 40 | | − declare -a aEncoderCommandSet |
| 41 | | − declare -a aEncoderCommandName |
| 42 | | − declare -a aEncoderCommandValue |
| 43 | | − declare -a aRecYUVFileList |
| 44 | | − #encoder parameters change based on the case info |
| 45 | | − let "EncoderFlag = 0" |
| 46 | | − CaseInfo="" |
| 47 | | − BitStreamFile="" |
| 48 | | − DiffFlag="" |
| 49 | | − #pass number |
| 50 | | − TotalCaseNum="" |
| 51 | | − PassCaseNum="" |
| 52 | | − UnpassCaseNum="" |
| 25 | + WorkingDirDir="" |
| 26 | + #test data space |
| 27 | + FinalResultPath="" |
| 28 | + IssueDataPath="" |
| 29 | + TempDataPath="" |
| 30 | + #for test sequence info |
| 31 | + TestSequenceName="" |
| 32 | + PicW="" |
| 33 | + PicH="" |
| 34 | + #test cfg file and test info output file |
| 35 | + ConfigureFile="" |
| 36 | + AllCaseFile="" |
| 37 | + #xxx.csv |
| 38 | + AllCasePassStatusFile="" |
| 39 | + #for encoder command |
| 40 | + declare -a aEncoderCommandSet |
| 41 | + declare -a aEncoderCommandName |
| 42 | + declare -a aEncoderCommandValue |
| 43 | + declare -a aRecYUVFileList |
| 44 | + #encoder parameters change based on the case info |
| 45 | + let "EncoderFlag = 0" |
| 46 | + CaseInfo="" |
| 47 | + BitStreamFile="" |
| 48 | + DiffFlag="" |
| 49 | + #pass number |
| 50 | + TotalCaseNum="" |
| 51 | + PassCaseNum="" |
| 52 | + UnpassCaseNum="" |
| 53 | 53 | } |
| 54 | 54 | #called by runGlobalVariableInitial |
| 55 | 55 | #usage runEncoderCommandInital |
| 56 | 56 | runEncoderCommandInital() |
| 57 | 57 | { |
| 58 | | − aEncoderCommandSet=( -utype -frms -numl -numtl \ |
| 59 | | − -sw -sh "-dw 0" "-dh 0" "-dw 1" "-dh 1" "-dw 2" "-dh 2" "-dw 3" "-dh 3" \ |
| 60 | | − "-frout 0" "-frout 1" "-frout 2" "-frout 3" \ |
| 61 | | − "-lqp 0" "-lqp 1" "-lqp 2" "-lqp 3" \ |
| 62 | | − -rc -tarb "-ltarb 0" "-ltarb 1" "-ltarb 2" "-ltarb 3" \ |
| 63 | | − "-slcmd 0" "-slcnum 0" "-slcmd 1" "-slcnum 1"\ |
| 64 | | − "-slcmd 2" "-slcnum 2" "-slcmd 3" "-slcnum 3"\ |
| 65 | | − -nalsize \ |
| 66 | | − -iper -thread -ltr \ |
| 67 | | − -db -denois -scene -bgd -aq ) |
| 68 | | − aEncoderCommandName=(usagetype frms numl numtl \ |
| 69 | | − sw sh dw0 dh0 dw1 dh1 dw2 dh2 dw3 dh3 \ |
| 70 | | − frout0 frout1 frout2 frout3 \ |
| 71 | | − lqp0 lqp1 lqp2 lqp3 \ |
| 72 | | − rc tarb ltarb0 ltarb1 ltarb2 ltarb3 \ |
| 73 | | − slcmd0 slcnum0 slcmd1 slcnum1 \ |
| 74 | | − slcmd2 slcnum2 slcmd3 slcnum3 \ |
| 75 | | − MaxNalSZ \ |
| 76 | | − iper thread ltr \ |
| 77 | | − db denois scene bgd aq ) |
| 78 | | − NumParameter=${#aEncoderCommandSet[@]} |
| 79 | | − for ((i=0;i<NumParameter; i++)) |
| 80 | | − do |
| 81 | | − aEncoderCommandValue[$i]=0 |
| 82 | | − done |
| 58 | + |
| 59 | + aEncoderCommandSet=( -utype -frms -numl -numtl \ |
| 60 | + -sw -sh "-dw 0" "-dh 0" "-dw 1" "-dh 1" "-dw 2" "-dh 2" "-dw 3" "-dh 3" \ |
| 61 | + "-frout 0" "-frout 1" "-frout 2" "-frout 3" \ |
| 62 | + "-lqp 0" "-lqp 1" "-lqp 2" "-lqp 3" \ |
| 63 | + -rc -fs -tarb "-ltarb 0" "-ltarb 1" "-ltarb 2" "-ltarb 3" \ |
| 64 | + "-slcmd 0" "-slcnum 0" "-slcmd 1" "-slcnum 1"\ |
| 65 | + "-slcmd 2" "-slcnum 2" "-slcmd 3" "-slcnum 3"\ |
| 66 | + -nalsize \ |
| 67 | + -iper -thread -ltr \ |
| 68 | + -db -denois -scene -bgd -aq ) |
| 69 | + |
| 70 | + aEncoderCommandName=(usagetype frms numl numtl \ |
| 71 | + sw sh dw0 dh0 dw1 dh1 dw2 dh2 dw3 dh3 \ |
| 72 | + frout0 frout1 frout2 frout3 \ |
| 73 | + lqp0 lqp1 lqp2 lqp3 \ |
| 74 | + rc FrSkip tarb ltarb0 ltarb1 ltarb2 ltarb3 \ |
| 75 | + slcmd0 slcnum0 slcmd1 slcnum1 \ |
| 76 | + slcmd2 slcnum2 slcmd3 slcnum3 \ |
| 77 | + MaxNalSZ \ |
| 78 | + iper thread ltr \ |
| 79 | + db denois scene bgd aq ) |
| 80 | + |
| 81 | + |
| 82 | + NumParameter=${#aEncoderCommandSet[@]} |
| 83 | + for ((i=0;i<NumParameter; i++)) |
| 84 | + do |
| 85 | + aEncoderCommandValue[$i]=0 |
| 86 | + done |
| 83 | 87 | |
| 84 | 88 | } |
| 85 | 89 | runGlobalVariableInitial() |
| 86 | 90 | { |
| 87 | | − #TestSpaceDir=../AllTestData CurrentDir=../AllTestData/TestSetXXX/***.264 eg ../AllTestData/TestSetCIF/BA1_MWD.264 |
| 88 | | − CurrentDir=`pwd` |
| 89 | | − #test data space |
| 90 | | − FinalResultPath="${CurrentDir}/result" |
| 91 | | − IssueDataPath="${CurrentDir}/issue" |
| 92 | | − TempDataPath="TempData" |
| 93 | | − TestSequencePath="${CurrentDir}" |
| 94 | | − #get YUV detail info $picW $picH $FPS |
| 95 | | − declare -a aYUVInfo |
| 96 | | − aYUVInfo=(`./run_ParseYUVInfo.sh ${TestSequenceName}`) |
| 97 | | − PicW=${aYUVInfo[0]} |
| 98 | | − PicH=${aYUVInfo[1]} |
| 99 | | − #test cfg file and test info output file |
| 100 | | − ConfigureFile=welsenc.cfg |
| 101 | | − AllCasePassStatusFile="${FinalResultPath}/${TestSequenceName}_AllCaseOutput.csv" |
| 102 | | − UnpassCaseFile="${FinalResultPath}/${TestSequenceName}_unpassCaseOutput.csv" |
| 103 | | − UpdateSHA1TableFile="${FinalResultPath}/${TestSequenceName}_UpdateSHA1Table.csv" |
| 104 | | − HeadLine1="BitMatched Status, SHA-1-Target, SHA-1-Benchmark, MD5-Target, MD5-Benchmark,\ |
| 105 | | − Bitstream-Target,Bitstream-Benchmark,YUV-Target,YUV-Benchmark,\ |
| 106 | | − -utype, -frms, -numl, -numtl, -sw, -sh,\ |
| 107 | | − -dw 0, -dh 0, -dw 1, -dh 1, -dw 2, -dh 2, -dw 3, -dh 3,\ |
| 108 | | − -frout 0, -frout 1, -frout 2, -frout 3,\ |
| 109 | | − -lqp 0, -lqp 1, -lqp 2, -lqp 3,\ |
| 110 | | − -rc, -tarb, -ltarb 0, -ltarb 1, -ltarb 2, -ltarb 3,\ |
| 111 | | − -slcmd 0, -slcnum 0, -slcmd 1, -slcnum 1,\ |
| 112 | | − -slcmd 2, -slcnum 2, -slcmd 3, -slcnum 3,\ |
| 113 | | − -nalsize,\ |
| 114 | | − -iper, -thread, -ltr, -db, -denois,\ |
| 115 | | − -scene, -bgd , -aq, " |
| 116 | | − HeadLine2="SHA-1 Value, MD5String, BitStreamSize, YUVSize, \ |
| 117 | | − -utype, -frms, -numl, -numtl, -sw, -sh,\ |
| 118 | | − -dw 0, -dh 0, -dw 1, -dh 1,-dw 2, -dh 2, -dw 3, -dh 3,\ |
| 119 | | − -frout 0, -frout 1, -frout 2, -frout 3,\ |
| 120 | | − -lqp 0, -lqp 1, -lqp 2, -lqp 3,\ |
| 121 | | − -rc, -tarb, -ltarb 0, -ltarb 1, -ltarb 2, -ltarb 3,\ |
| 122 | | − -slcmd 0, -slcnum 0, -slcmd 1, -slcnum 1,\ |
| 123 | | − -slcmd 2, -slcnum 2, -slcmd 3, -slcnum 3,\ |
| 124 | | − -nalsize,\ |
| 125 | | − -iper, -thread, -ltr, -db, -denois,\ |
| 126 | | − -scene , bgd , -aq " |
| 127 | | − echo ${HeadLine1}>${AllCasePassStatusFile} |
| 128 | | − echo ${HeadLine1}>${UnpassCaseFile} |
| 129 | | − echo ${HeadLine2}>${UpdateSHA1TableFile} |
| 130 | | − |
| 131 | | − #intial Commandline parameters |
| 132 | | − runEncoderCommandInital |
| 133 | | − let "TotalCaseNum=0" |
| 134 | | − let "PassCaseNum=0" |
| 135 | | − let "UnpassCaseNum=0" |
| 136 | | − EncoderCommand="" |
| 137 | | − EncoderLogFile="${TempDataPath}/Encoder.log" |
| 138 | | − TargetSHA1="" |
| 139 | | − TargetMD5="" |
| 140 | | − TargetYUVSize="" |
| 141 | | − TargetBitstreamSize="" |
| 142 | | − BenchmarkSHA1="" |
| 143 | | − BenchmarkMD5="" |
| 144 | | − BenchmarkYUVSize="" |
| 145 | | − BenchmarkBitstreamSize="" |
| 91 | + #TestSpaceDir=../AllTestData CurrentDir=../AllTestData/TestSetXXX/***.264 eg ../AllTestData/TestSetCIF/BA1_MWD.264 |
| 92 | + CurrentDir=`pwd` |
| 93 | + #test data space |
| 94 | + FinalResultPath="${CurrentDir}/result" |
| 95 | + IssueDataPath="${CurrentDir}/issue" |
| 96 | + TempDataPath="TempData" |
| 97 | + TestSequencePath="${CurrentDir}" |
| 98 | + #get YUV detail info $picW $picH $FPS |
| 99 | + declare -a aYUVInfo |
| 100 | + aYUVInfo=(`./run_ParseYUVInfo.sh ${TestSequenceName}`) |
| 101 | + PicW=${aYUVInfo[0]} |
| 102 | + PicH=${aYUVInfo[1]} |
| 103 | + #test cfg file and test info output file |
| 104 | + ConfigureFile=welsenc.cfg |
| 105 | + AllCasePassStatusFile="${FinalResultPath}/${TestSequenceName}_AllCaseOutput.csv" |
| 106 | + UnpassCaseFile="${FinalResultPath}/${TestSequenceName}_unpassCaseOutput.csv" |
| 107 | + UpdateSHA1TableFile="${FinalResultPath}/${TestSequenceName}_UpdateSHA1Table.csv" |
| 108 | + |
| 109 | + HeadLine1="EncoderFlag, DecoderFlag, FPS, BitSreamSHA1, BitSreamMD5, InputYUVSHA1, InputYUVMD5,\ |
| 110 | + -utype, -frms, -numl, -numtl, -sw, -sh,\ |
| 111 | + -dw 0, -dh 0, -dw 1, -dh 1, -dw 2, -dh 2, -dw 3, -dh 3,\ |
| 112 | + -frout 0, -frout 1, -frout 2, -frout 3,\ |
| 113 | + -lqp 0, -lqp 1, -lqp 2, -lqp 3,\ |
| 114 | + -rc,-fs, -tarb, -ltarb 0, -ltarb 1, -ltarb 2, -ltarb 3,\ |
| 115 | + -slcmd 0, -slcnum 0, -slcmd 1, -slcnum 1,\ |
| 116 | + -slcmd 2, -slcnum 2, -slcmd 3, -slcnum 3,\ |
| 117 | + -nalsize,\ |
| 118 | + -iper, -thread, -ltr, -db, -denois,\ |
| 119 | + -scene, -bgd , -aq, " |
| 120 | + |
| 121 | + HeadLine2="BitSreamSHA1, BitSreamMD5, InputYUVSHA1, InputYUVMD5,\ |
| 122 | + -utype, -frms, -numl, -numtl, -sw, -sh,\ |
| 123 | + -dw 0, -dh 0, -dw 1, -dh 1,-dw 2, -dh 2, -dw 3, -dh 3,\ |
| 124 | + -frout 0, -frout 1, -frout 2, -frout 3,\ |
| 125 | + -lqp 0, -lqp 1, -lqp 2, -lqp 3,\ |
| 126 | + -rc, -fs, -tarb, -ltarb 0, -ltarb 1, -ltarb 2, -ltarb 3,\ |
| 127 | + -slcmd 0, -slcnum 0, -slcmd 1, -slcnum 1,\ |
| 128 | + -slcmd 2, -slcnum 2, -slcmd 3, -slcnum 3,\ |
| 129 | + -nalsize,\ |
| 130 | + -iper, -thread, -ltr, -db, -denois,\ |
| 131 | + -scene , bgd , -aq " |
| 132 | + |
| 133 | + |
| 134 | + |
| 135 | + echo ${HeadLine1}>${AllCasePassStatusFile} |
| 136 | + echo ${HeadLine1}>${UnpassCaseFile} |
| 137 | + echo ${HeadLine2}>${UpdateSHA1TableFile} |
| 138 | + |
| 139 | + #intial Commandline parameters |
| 140 | + runEncoderCommandInital |
| 141 | + let "TotalCaseNum=0" |
| 142 | + let "PassCaseNum=0" |
| 143 | + let "UnpassCaseNum=0" |
| 144 | + EncoderCommand="" |
| 145 | + EncoderLogFile="${TempDataPath}/Encoder.log" |
| 146 | + TargetSHA1="" |
| 147 | + TargetMD5="" |
| 148 | + TargetYUVSHA1="" |
| 149 | + TargetYUVMD5="" |
| 150 | + BenchmarkSHA1="" |
| 151 | + BenchmarkMD5="" |
| 152 | + BenchmarkYUVSHA1="" |
| 153 | + BenchmarkYUVMD5="" |
| 146 | 154 | } |
| 147 | 155 | #*********************************************************** |
| 148 | | −#called by runAllCaseTest |
| 156 | +#called by runAllCaseTest |
| 149 | 157 | # parse case info --encoder preprocess |
| 150 | | −#usage runParseCaseInfo $CaseData |
| 158 | +#usage runParseCaseInfo $CaseData |
| 151 | 159 | runParseCaseInfo() |
| 152 | 160 | { |
| 153 | | − if [ $# -lt 1 ] |
| 154 | | − then |
| 161 | + if [ $# -lt 1 ] |
| 162 | + then |
| 155 | 163 | echo "no parameter!" |
| 156 | 164 | return 1 |
| 157 | | − fi |
| 158 | | − local TempData="" |
| 159 | | − local CaseData=$@ |
| 160 | | − local BitstreamPrefix="" |
| 161 | | − BenchmarkSHA1=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {print $1} ' ` |
| 162 | | − BenchmarkMD5=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {print $2} ' ` |
| 163 | | − BenchmarkYUVSize=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {print $4} ' ` |
| 164 | | − BenchmarkBitstreamSize=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {print $3} ' ` |
| 165 | | − |
| 166 | | − declare -a aTempParamIndex=( 6 7 8 9 10 11 12 13 15 16 17 19 20 21 24 25 26 27 30 31 32 33 34 35 ) |
| 167 | | − TempData=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {for(i=5;i<=NF;i++) printf(" %s",$i)} ' ` |
| 168 | | − aEncoderCommandValue=(${TempData}) |
| 169 | | − let "TempParamFlag=0" |
| 170 | | − for((i=0; i<$NumParameter; i++)) |
| 171 | | − do |
| 165 | + fi |
| 166 | + local TempData="" |
| 167 | + local CaseData=$@ |
| 168 | + local BitstreamPrefix="" |
| 169 | + BenchmarkSHA1=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {print $1} ' ` |
| 170 | + BenchmarkMD5=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {print $2} ' ` |
| 171 | + BenchmarkYUVSHA1=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {print $3} ' ` |
| 172 | + BenchmarkYUVMD5=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {print $4} ' ` |
| 173 | + |
| 174 | + |
| 175 | + declare -a aTempParamIndex=( 6 7 8 9 10 11 12 13 15 16 17 19 20 21 25 26 27 28 31 32 33 34 35 36 ) |
| 176 | + TempData=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {for(i=5;i<=NF;i++) printf(" %s",$i)} ' ` |
| 177 | + aEncoderCommandValue=(${TempData}) |
| 178 | + let "TempParamFlag=0" |
| 179 | + |
| 180 | + for((i=0; i<$NumParameter; i++)) |
| 181 | + do |
| 172 | 182 | for ParnmIndex in ${aTempParamIndex[@]} |
| 173 | 183 | do |
| 174 | | − if [ $i -eq ${ParnmIndex} ] |
| 175 | | − then |
| 176 | | − let "TempParamFlag=1" |
| 177 | | − fi |
| 184 | + if [ $i -eq ${ParnmIndex} ] |
| 185 | + then |
| 186 | + let "TempParamFlag=1" |
| 187 | + fi |
| 178 | 188 | done |
| 189 | + |
| 179 | 190 | if [ ${TempParamFlag} -eq 0 ] |
| 180 | 191 | then |
| 181 | | − BitstreamPrefix=${BitstreamPrefix}_${aEncoderCommandName[$i]}_${aEncoderCommandValue[$i]} |
| 192 | + BitstreamPrefix=${BitstreamPrefix}_${aEncoderCommandName[$i]}_${aEncoderCommandValue[$i]} |
| 182 | 193 | fi |
| 183 | 194 | let "TempParamFlag=0" |
| 184 | | − done |
| 195 | + done |
| 185 | 196 | |
| 186 | | − BitstreamTarget=${TempDataPath}/${TestSequenceName}_${BitstreamPrefix}_codec_target.264 |
| 187 | | − echo "" |
| 188 | | − echo "BitstreamPrefix is ${BitstreamPrefix}" |
| 189 | | − echo "" |
| 197 | + BitstreamTarget=${TempDataPath}/${TestSequenceName}_${BitstreamPrefix}_codec_target.264 |
| 198 | + echo "" |
| 199 | + echo "BitstreamPrefix is ${BitstreamPrefix}" |
| 200 | + echo "" |
| 190 | 201 | } |
| 202 | + |
| 191 | 203 | runEncodeOneCase() |
| 192 | 204 | { |
| 193 | | − local ParamCommand="" |
| 194 | | − BitStreamFile=${BitstreamTarget} |
| 205 | + local ParamCommand="" |
| 206 | + BitStreamFile=${BitstreamTarget} |
| 195 | 207 | |
| 196 | | − for ((i=4; i<${NumParameter}; i++)) |
| 197 | | − do |
| 208 | + for ((i=4; i<${NumParameter}; i++)) |
| 209 | + do |
| 198 | 210 | ParamCommand="${ParamCommand} ${aEncoderCommandSet[$i]} ${aEncoderCommandValue[$i]} " |
| 199 | | − done |
| 200 | | − for((i=0;i<4;i++)) |
| 201 | | − do |
| 211 | + done |
| 212 | + |
| 213 | + for((i=0;i<4;i++)) |
| 214 | + do |
| 202 | 215 | aRecYUVFileList[$i]="${TempDataPath}/${TestYUVName}_rec${i}.yuv" |
| 203 | | − done |
| 204 | | − ParamCommand="${aEncoderCommandSet[0]} ${aEncoderCommandValue[0]} ${aEncoderCommandSet[1]} ${aEncoderCommandValue[1]} \ |
| 205 | | − ${aEncoderCommandSet[2]} ${aEncoderCommandValue[2]} \ |
| 206 | | − -lconfig 0 layer0.cfg -lconfig 1 layer1.cfg -lconfig 2 layer2.cfg -lconfig 3 layer3.cfg \ |
| 207 | | − ${aEncoderCommandSet[3]} ${aEncoderCommandValue[3]} \ |
| 208 | | − ${ParamCommand}" |
| 209 | | − echo "" |
| 210 | | − echo "---------------Encode One Case-------------------------------------------" |
| 211 | | − echo "case line is :" |
| 212 | | − EncoderCommand="./h264enc welsenc.cfg ${ParamCommand} -bf ${BitStreamFile} \ |
| 213 | | − -drec 0 ${aRecYUVFileList[0]} -drec 1 ${aRecYUVFileList[1]} \ |
| 214 | | − -drec 2 ${aRecYUVFileList[2]} -drec 3 ${aRecYUVFileList[3]} \ |
| 215 | | − -org ${TestSequencePath}/${TestSequenceName}" |
| 216 | | − echo ${EncoderCommand} |
| 217 | | − echo -e "\n\n" |
| 218 | | − ./h264enc welsenc.cfg ${ParamCommand} -bf ${BitStreamFile} \ |
| 219 | | − -drec 0 ${aRecYUVFileList[0]} -drec 1 ${aRecYUVFileList[1]} \ |
| 220 | | − -drec 2 ${aRecYUVFileList[2]} -drec 3 ${aRecYUVFileList[3]} \ |
| 221 | | − -org ${TestSequencePath}/${TestSequenceName} 2>${EncoderLogFile} |
| 222 | | − if [ $? -eq 0 ] |
| 223 | | − then |
| 216 | + done |
| 217 | + |
| 218 | + ParamCommand="${aEncoderCommandSet[0]} ${aEncoderCommandValue[0]} ${aEncoderCommandSet[1]} ${aEncoderCommandValue[1]} \ |
| 219 | + ${aEncoderCommandSet[2]} ${aEncoderCommandValue[2]} \ |
| 220 | + -lconfig 0 layer0.cfg -lconfig 1 layer1.cfg -lconfig 2 layer2.cfg -lconfig 3 layer3.cfg \ |
| 221 | + ${aEncoderCommandSet[3]} ${aEncoderCommandValue[3]} \ |
| 222 | + ${ParamCommand}" |
| 223 | + echo "" |
| 224 | + echo "---------------Encode One Case-------------------------------------------" |
| 225 | + echo "case line is :" |
| 226 | + EncoderCommand="./h264enc welsenc.cfg ${ParamCommand} -bf ${BitStreamFile} \ |
| 227 | + -drec 0 ${aRecYUVFileList[0]} -drec 1 ${aRecYUVFileList[1]} \ |
| 228 | + -drec 2 ${aRecYUVFileList[2]} -drec 3 ${aRecYUVFileList[3]} \ |
| 229 | + -org ${TestSequencePath}/${TestSequenceName}" |
| 230 | + echo ${EncoderCommand} |
| 231 | + echo -e "\n\n" |
| 232 | + ./h264enc welsenc.cfg ${ParamCommand} -bf ${BitStreamFile} \ |
| 233 | + -drec 0 ${aRecYUVFileList[0]} -drec 1 ${aRecYUVFileList[1]} \ |
| 234 | + -drec 2 ${aRecYUVFileList[2]} -drec 3 ${aRecYUVFileList[3]} \ |
| 235 | + -org ${TestSequencePath}/${TestSequenceName} 2>${EncoderLogFile} |
| 236 | + if [ $? -eq 0 ] |
| 237 | + then |
| 224 | 238 | let "EncoderFlag=0" |
| 225 | | − else |
| 239 | + else |
| 226 | 240 | let "EncoderFlag=1" |
| 227 | | − fi |
| 241 | + fi |
| 228 | 242 | |
| 229 | | − #delete the core down file as core down files for disk space limitation |
| 230 | | − for file in ./core* |
| 231 | | − do |
| 243 | + #delete the core down file as core down files for disk space limitation |
| 244 | + for file in ./core* |
| 245 | + do |
| 232 | 246 | if [ -e ${file} ] |
| 233 | 247 | then |
| 234 | | − ./run_SafeDelete.sh ${file} |
| 248 | + ./run_SafeDelete.sh ${file} |
| 235 | 249 | fi |
| 236 | | − done |
| 237 | | − return 0 |
| 238 | | −} |
| 239 | | −#usage? runGetFileSize $FileName |
| 240 | | −runGetFileSize() |
| 241 | | −{ |
| 242 | | − if [ $# -lt 1 ] |
| 243 | | − then |
| 244 | | − echo "usage runGetFileSize $FileName!" |
| 245 | | − return 1 |
| 246 | | − fi |
| 247 | | − local FileName=$1 |
| 248 | | − local FileSize="" |
| 249 | | − local TempInfo="" |
| 250 | | − TempInfo=`ls -l $FileName` |
| 251 | | − FileSize=`echo $TempInfo | awk '{print $5}'` |
| 252 | | − echo $FileSize |
| 250 | + done |
| 251 | + return 0 |
| 253 | 252 | } |
| 254 | | −#called by runAllCaseTest |
| 255 | | −#usage runJSVMVerify |
| 253 | + |
| 254 | +#called by runAllCaseTest |
| 255 | +#usage runJSVMVerify |
| 256 | 256 | runBitStreamVerify() |
| 257 | 257 | { |
| 258 | | − echo "" |
| 259 | | − echo "******************************************" |
| 260 | | − echo "Bit streamSHA1 value comparison.... " |
| 261 | | − #******************************************* |
| 262 | | − TargetSHA1="NULL" |
| 263 | | − TargetMD5="NULL" |
| 264 | | − TargetYUVSize="NULL" |
| 265 | | − TargetBitstreamSize="NULL" |
| 266 | | − |
| 267 | | − if [ ${EncoderFlag} -eq 1 ] |
| 268 | | − then |
| 269 | | − let "UnpassCaseNum++" |
| 270 | | − echo "1:unpassed! encoder initial failed or crash!" |
| 271 | | − DiffFlag="1:unpassed! encoder initial failed or crash!" |
| 272 | | − return 1 |
| 273 | | − fi |
| 274 | | − |
| 275 | | − if [ ! -s ${BitStreamFile} ] |
| 276 | | − then |
| 277 | | − let "UnpassCaseNum++" |
| 278 | | − echo "2:unpassed! 0 bits--bit stream" |
| 279 | | − DiffFlag="2:unpassed! 0 bits--bit stream" |
| 280 | | − return 1 |
| 281 | | − fi |
| 282 | | − #******************************************* |
| 283 | | − #******************************************* |
| 284 | | − echo "" |
| 285 | | − echo "${BitStreamFile}" |
| 286 | | − #SHA1 |
| 287 | | − TargetSHA1=`openssl sha1 ${BitStreamFile}` |
| 288 | | − TargetSHA1=`echo ${TargetSHA1} | awk '{print $2}' ` |
| 289 | | − TargetMD5=`openssl md5 ${BitStreamFile}` |
| 290 | | − TargetMD5=`echo ${TargetMD5} | awk '{print $2}' ` |
| 291 | | − TargetYUVSize=`runGetFileSize ${TestSequencePath}/${TestSequenceName} ` |
| 292 | | − TargetBitstreamSize=`runGetFileSize ${BitStreamFile}` |
| 293 | | − if [[ "${TargetSHA1}" =~ "${BenchmarkSHA1}" ]] |
| 294 | | − then |
| 295 | | − echo "bitstream pass! SHA1--${TargetSHA1} ----- ${BenchmarkSHA1}" |
| 296 | | − echo "MD5 info: MD5--${TargetMD5} ----- ${BenchmarkMD5}" |
| 297 | | − echo "YUV size info: size--${TargetYUVSize} ---- ${BenchmarkYUVSize} " |
| 298 | | − echo "BitStreamSize info: size--${TargetBitstreamSize} ---- ${BenchmarkBitstreamSize}" |
| 299 | | − DiffFlag="0:passed!" |
| 300 | | − let "PassCaseNum++" |
| 301 | | − return 0 |
| 302 | | − else |
| 303 | | − echo "!!! SHA1 string not match: ${TargetSHA1} ----- ${BenchmarkSHA1} " |
| 304 | | − echo "MD5 info: MD5--${TargetMD5} ----- ${BenchmarkMD5}" |
| 305 | | − echo "YUV size info: size--${TargetYUVSize} ---- ${BenchmarkYUVSize} " |
| 306 | | − echo "BitStreamSize info: size--${TargetBitstreamSize} ---- ${BenchmarkBitstreamSize}" |
| 307 | | − DiffFlag="3:unpassed!" |
| 308 | | − let "UnpassCaseNum++" |
| 309 | | − return 1 |
| 310 | | − fi |
| 258 | + echo "" |
| 259 | + echo "******************************************" |
| 260 | + echo "Bit streamSHA1 value comparison.... " |
| 261 | + #******************************************* |
| 262 | + TargetSHA1="NULL" |
| 263 | + TargetMD5="NULL" |
| 264 | + TargetYUVSHA1="NULL" |
| 265 | + TargetYUVMD5="NULL" |
| 266 | + |
| 267 | + if [ ${EncoderFlag} -eq 1 ] |
| 268 | + then |
| 269 | + let "UnpassCaseNum++" |
| 270 | + echo "1:unpassed! encoder initial failed or crash!" |
| 271 | + DiffFlag="1:unpassed! encoder initial failed or crash!" |
| 272 | + return 1 |
| 273 | + fi |
| 274 | + |
| 275 | + if [ ! -s ${BitStreamFile} ] |
| 276 | + then |
| 277 | + let "UnpassCaseNum++" |
| 278 | + echo "2:unpassed! 0 bits--bit stream" |
| 279 | + DiffFlag="2:unpassed! 0 bits--bit stream" |
| 280 | + return 1 |
| 281 | + fi |
| 282 | + #******************************************* |
| 283 | + #******************************************* |
| 284 | + echo "" |
| 285 | + echo "${BitStreamFile}" |
| 286 | + #SHA1 |
| 287 | + TargetSHA1=`openssl sha1 ${BitStreamFile}` |
| 288 | + TargetSHA1=`echo ${TargetSHA1} | awk '{print $2}' ` |
| 289 | + TargetMD5=`openssl md5 ${BitStreamFile}` |
| 290 | + TargetMD5=`echo ${TargetMD5} | awk '{print $2}' ` |
| 291 | + |
| 292 | + TargetYUVSHA1=`openssl sha1 ${TestSequencePath}/${TestSequenceName} ` |
| 293 | + TargetYUVSHA1=`echo ${TargetYUVSHA1} | awk '{print $2}' ` |
| 294 | + TargetYUVMD5=`openssl md5 ${TestSequencePath}/${TestSequenceName} ` |
| 295 | + TargetYUVMD5=`echo ${TargetYUVMD5} | awk '{print $2}' ` |
| 296 | + |
| 297 | + if [[ "${TargetSHA1}" =~ "${BenchmarkSHA1}" ]] |
| 298 | + then |
| 299 | + echo "bitstream pass! SHA1--${TargetSHA1} ----- ${BenchmarkSHA1}" |
| 300 | + echo "MD5 info: MD5--${TargetMD5} ----- ${BenchmarkMD5}" |
| 301 | + echo "YUV SHA1 info: SHA1--${TargetYUVSHA1} ---- ${BenchmarkYUVSHA1} " |
| 302 | + echo "YUV MD5 info: MD5--${TargetYUVMD5} ---- ${BenchmarkYUVMD5}" |
| 303 | + DiffFlag="0:passed!" |
| 304 | + let "PassCaseNum++" |
| 305 | + return 0 |
| 306 | + else |
| 307 | + echo "!!! SHA1 string not match: ${TargetSHA1} ----- ${BenchmarkSHA1} " |
| 308 | + echo "MD5 info: MD5--${TargetMD5} ----- ${BenchmarkMD5}" |
| 309 | + echo "YUV SHA1 info: SHA1--${TargetYUVSHA1} ---- ${BenchmarkYUVSHA1} " |
| 310 | + echo "YUV MD5 info: MD5--${TargetYUVMD5} ---- ${BenchmarkYUVMD5}" |
| 311 | + DiffFlag="3:unpassed!" |
| 312 | + let "UnpassCaseNum++" |
| 313 | + return 1 |
| 314 | + fi |
| 311 | 315 | } |
| 312 | | −#called by runAllCaseTest |
| 313 | | −#delete temp data files and output single case test result to log file |
| 314 | | −#usage runSingleCasePostAction $CaseData |
| 316 | + |
| 317 | +#called by runAllCaseTest |
| 318 | +#delete temp data files and output single case test result to log file |
| 319 | +#usage runSingleCasePostAction $CaseData |
| 315 | 320 | runSingleCasePostAction() |
| 316 | 321 | { |
| 317 | | − if [ $# -lt 1 ] |
| 318 | | − then |
| 319 | | − echo "no parameter!" |
| 320 | | − return 1 |
| 321 | | − fi |
| 322 | | − local CaseData=$@ |
| 323 | | − CaseInfo=`echo $CaseData | awk 'BEGIN {FS="[,\r]"} {for(i=5;i<=NF;i++) printf(" %s,",$i)} '` |
| 324 | | − PassStatusInfo="${DiffFlag}, ${TargetSHA1}, ${BenchmarkSHA1}, ${TargetMD5}, ${BenchmarkMD5},\ |
| 325 | | − ${TargetBitstreamSize}, ${BenchmarkBitstreamSize}, ${TargetYUVSize}, ${BenchmarkYUVSize},\ |
| 326 | | − ${CaseInfo}, ${EncoderCommand} " |
| 327 | | − echo "${PassStatusInfo}">>${AllCasePassStatusFile} |
| 328 | | − if [ "$DiffFlag" != "0:passed!" ] |
| 329 | | − then |
| 330 | | − echo "${PassStatusInfo}">>${UnpassCaseFile} |
| 331 | | − fi |
| 332 | | − echo "${TargetSHA1}, ${TargetMD5},${TargetBitstreamSize}, ${TargetYUVSize},${CaseInfo}">>${UpdateSHA1TableFile} |
| 333 | | − ./run_SafeDelete.sh ${BitstreamTarget} >>${AllCaseConsoleLogFile} |
| 322 | + if [ $# -lt 1 ] |
| 323 | + then |
| 324 | + echo "no parameter!" |
| 325 | + return 1 |
| 326 | + fi |
| 327 | + local CaseData=$@ |
| 328 | + CaseInfo=`echo $CaseData | awk 'BEGIN {FS="[,\r]"} {for(i=5;i<=NF;i++) printf(" %s,",$i)} '` |
| 329 | + PassStatusInfo="${DiffFlag}, ${TargetSHA1}, ${BenchmarkSHA1}, ${TargetMD5}, ${BenchmarkMD5},\ |
| 330 | + ${TargetYUVMD5}, ${BenchmarkYUVMD5}, ${TargetYUVSHA1}, ${BenchmarkYUVSHA1},\ |
| 331 | + ${CaseInfo}, ${EncoderCommand} " |
| 332 | + echo "${PassStatusInfo}">>${AllCasePassStatusFile} |
| 333 | + if [ "$DiffFlag" != "0:passed!" ] |
| 334 | + then |
| 335 | + echo "${PassStatusInfo}">>${UnpassCaseFile} |
| 336 | + fi |
| 337 | + echo "${TargetSHA1}, ${TargetMD5},${TargetYUVMD5}, ${TargetYUVSHA1},${CaseInfo}">>${UpdateSHA1TableFile} |
| 338 | + ./run_SafeDelete.sh ${BitstreamTarget} >>${AllCaseConsoleLogFile} |
| 334 | 339 | } |
| 340 | + |
| 335 | 341 | #usage runOutputPassNum |
| 336 | 342 | runOutputPassNum() |
| 337 | 343 | { |
| 338 | | − # output file locate in ../result |
| 339 | | − echo "" |
| 340 | | − echo "***********************************************************" |
| 341 | | − echo "${TestSequenceName}" |
| 342 | | − echo "total case Num is: ${TotalCaseNum}" |
| 343 | | − echo "pass case Num is: ${PassCaseNum}" |
| 344 | | − echo "unpass case Num is: ${UnpassCaseNum}" |
| 345 | | − echo "***********************************************************" |
| 346 | | − echo "" |
| 344 | + # output file locate in ../result |
| 345 | + echo "" |
| 346 | + echo "***********************************************************" |
| 347 | + echo "${TestSequenceName}" |
| 348 | + echo "total case Num is: ${TotalCaseNum}" |
| 349 | + echo "pass case Num is: ${PassCaseNum}" |
| 350 | + echo "unpass case Num is: ${UnpassCaseNum}" |
| 351 | + echo "***********************************************************" |
| 352 | + echo "" |
| 347 | 353 | } |
| 354 | + |
| 348 | 355 | # run all test case based on XXXcase.csv file |
| 349 | | −#usage runAllCaseTest |
| 356 | +#usage runAllCaseTest |
| 350 | 357 | runAllCaseTest() |
| 351 | 358 | { |
| 352 | | − local EncoderLogInfo="" |
| 353 | | − while read CaseData |
| 354 | | − do |
| 355 | | − #get case parameter's value |
| 356 | | − if [[ ! $CaseData =~ "SHA" ]] |
| 357 | | − then |
| 358 | | − echo "" >>${AllCaseConsoleLogFile} |
| 359 | | − echo "" >>${AllCaseConsoleLogFile} |
| 360 | | − echo "" >>${AllCaseConsoleLogFile} |
| 361 | | − echo "********************case index is ${TotalCaseNum}**************************************" >>${AllCaseConsoleLogFile} |
| 362 | | − runParseCaseInfo ${CaseData} >>${AllCaseConsoleLogFile} |
| 363 | | − echo "" >>${AllCaseConsoleLogFile} |
| 364 | | − runEncodeOneCase >>${AllCaseConsoleLogFile} |
| 365 | | − cat ${EncoderLogFile}>>${AllCaseConsoleLogFile} |
| 366 | | − runBitStreamVerify >>${AllCaseConsoleLogFile} |
| 367 | | − let "DisplayFlag=TotalCaseNum%100" |
| 368 | | − if [ ${DisplayFlag} -eq 0 ] |
| 369 | | − then |
| 370 | | − if [ "$DiffFlag" = "0:passed!" ] |
| 359 | + local EncoderLogInfo="" |
| 360 | + while read CaseData |
| 361 | + do |
| 362 | + #get case parameter's value |
| 363 | + if [[ ! $CaseData =~ "SHA" ]] |
| 371 | 364 | then |
| 372 | | − echo -e "\033[32m OK! ${TestSequenceName} Case Index ${TotalCaseNum}:SHA-1(Current--Benchmark): ${TargetSHA1}-----${BenchmarkSHA1} \033[0m" |
| 373 | | − echo -e "\033[32m ----MD5 (Current--Benchmark): ${TargetMD5}-----${BenchmarkMD5} \033[0m" |
| 374 | | − echo -e "\033[32m ----BitstreamSize: ${TargetBitstreamSize}, ${BenchmarkBitstreamSize} YUVSize: ${TargetYUVSize}, ${BenchmarkYUVSize} \033[0m" |
| 365 | + echo "" >>${AllCaseConsoleLogFile} |
| 366 | + echo "" >>${AllCaseConsoleLogFile} |
| 367 | + echo "" >>${AllCaseConsoleLogFile} |
| 368 | + echo "********************case index is ${TotalCaseNum}**************************************" >>${AllCaseConsoleLogFile} |
| 369 | + runParseCaseInfo ${CaseData} >>${AllCaseConsoleLogFile} |
| 370 | + echo "" >>${AllCaseConsoleLogFile} |
| 371 | + runEncodeOneCase >>${AllCaseConsoleLogFile} |
| 372 | + cat ${EncoderLogFile} >>${AllCaseConsoleLogFile} |
| 373 | + runBitStreamVerify >>${AllCaseConsoleLogFile} |
| 374 | + let "DisplayFlag=TotalCaseNum%100" |
| 375 | + if [ ${DisplayFlag} -eq 0 ] |
| 376 | + then |
| 377 | + if [ "$DiffFlag" = "0:passed!" ] |
| 378 | + then |
| 379 | + echo -e "\033[32m OK! ${TestSequenceName} Case Index ${TotalCaseNum}:SHA-1(Current--Benchmark): ${TargetSHA1}-----${BenchmarkSHA1} \033[0m" |
| 380 | + echo -e "\033[32m ----MD5 (Current--Benchmark): ${TargetMD5}-----${BenchmarkMD5} \033[0m" |
| 381 | + echo -e "\033[32m ----YUVMD5: ${TargetYUVMD5}, ${BenchmarkYUVMD5} YUVSHA1: ${TargetYUVSHA1}, ${BenchmarkYUVSHA1} \033[0m" |
| 382 | + fi |
| 383 | + fi |
| 384 | + #****************************************** |
| 385 | + if [ ! "$DiffFlag" = "0:passed!" ] |
| 386 | + then |
| 387 | + echo -e "\033[31m Failed! ${TestSequenceName} Case Index ${TotalCaseNum}:SHA-1(Current--Benchmark): ${TargetSHA1}-----${BenchmarkSHA1} \033[0m" |
| 388 | + echo -e "\033[31m ----MD5 (Current--Benchmark): ${TargetMD5}-----${BenchmarkMD5} \033[0m" |
| 389 | + echo -e "\033[31m ----YUVMD5: ${TargetYUVMD5}, ${BenchmarkYUVMD5} YUVSHA1: ${TargetYUVSHA1}, ${BenchmarkYUVSHA1} \033[0m" |
| 390 | + EncoderLogInfo=`cat ${EncoderLogFile}` |
| 391 | + echo -e "\033[31m ${EncoderLogInfo} \033[0m" |
| 392 | + fi |
| 393 | + runSingleCasePostAction ${CaseData} |
| 394 | + let "TotalCaseNum++" |
| 375 | 395 | fi |
| 376 | | − fi |
| 377 | | − #****************************************** |
| 378 | | − if [ ! "$DiffFlag" = "0:passed!" ] |
| 379 | | − then |
| 380 | | − echo -e "\033[31m Failed! ${TestSequenceName} Case Index ${TotalCaseNum}:SHA-1(Current--Benchmark): ${TargetSHA1}-----${BenchmarkSHA1} \033[0m" |
| 381 | | − echo -e "\033[31m ----MD5 (Current--Benchmark): ${TargetMD5}-----${BenchmarkMD5} \033[0m" |
| 382 | | − echo -e "\033[31m ----BitstreamSize: ${TargetBitstreamSize}, ${BenchmarkBitstreamSize} YUVSize: ${TargetYUVSize}, ${BenchmarkYUVSize} \033[0m" |
| 383 | | − EncoderLogInfo=`cat ${EncoderLogFile}` |
| 384 | | − echo -e "\033[31m ${EncoderLogInfo} \033[0m" |
| 385 | | − fi |
| 386 | | − runSingleCasePostAction ${CaseData} |
| 387 | | − let "TotalCaseNum++" |
| 388 | | − fi |
| 389 | | − done <$AllCaseFile |
| 396 | + done <$AllCaseFile |
| 390 | 397 | } |
| 391 | 398 | #*********************************************************** |
| 392 | | −# usage: runMain $TestYUV $AllCaseFile |
| 399 | +# usage: runMain $TestYUV $AllCaseFile |
| 393 | 400 | runMain() |
| 394 | 401 | { |
| 395 | | − if [ ! $# -eq 2 ] |
| 396 | | − then |
| 397 | | − echo "usage: run_BinarySHA1Comparison.sh \$TestYUV \$AllCaseFile" |
| 398 | | − return 1 |
| 399 | | − fi |
| 400 | | − runGlobalVariableDef |
| 401 | | − #for test sequence info |
| 402 | | − TestSequenceName=$1 |
| 403 | | − AllCaseFile=$2 |
| 404 | | − runGlobalVariableInitial |
| 405 | | − TestFolder=`echo $CurrentDir | awk 'BEGIN {FS="/"} { i=NF; print $i}'` |
| 406 | | − AllCaseConsoleLogFile="${FinalResultPath}/${TestSequenceName}.TestLog" |
| 407 | | − CaseSummaryFile="${FinalResultPath}/${TestSequenceName}.Summary" |
| 408 | | − FlagFile="" |
| 409 | | − #run all cases |
| 410 | | − runAllCaseTest |
| 411 | | − # output file locate in ./result |
| 412 | | − echo "${TestSequenceName}, \ |
| 413 | | − ${PassCaseNum} pass!, \ |
| 414 | | − ${UnpassCaseNum} unpass!,\ |
| 415 | | − detail file located in ../AllTestData/${TestFolder}/result">${CaseSummaryFile} |
| 416 | | − runOutputPassNum |
| 417 | | − #generate All case Flag |
| 418 | | − if [ ! ${UnpassCaseNum} -eq 0 ] |
| 419 | | − then |
| 420 | | − echo "" |
| 421 | | − exit 1 |
| 422 | | − else |
| 423 | | − echo "" |
| 424 | | − exit 0 |
| 425 | | − fi |
| 402 | + if [ ! $# -eq 2 ] |
| 403 | + then |
| 404 | + echo "usage: run_BinarySHA1Comparison.sh \$TestYUV \$AllCaseFile" |
| 405 | + return 1 |
| 406 | + fi |
| 407 | + |
| 408 | + runGlobalVariableDef |
| 409 | + |
| 410 | + #for test sequence info |
| 411 | + TestSequenceName=$1 |
| 412 | + AllCaseFile=$2 |
| 413 | + runGlobalVariableInitial |
| 414 | + TestFolder=`echo $CurrentDir | awk 'BEGIN {FS="/"} { i=NF; print $i}'` |
| 415 | + AllCaseConsoleLogFile="${FinalResultPath}/${TestSequenceName}.TestLog" |
| 416 | + CaseSummaryFile="${FinalResultPath}/${TestSequenceName}.Summary" |
| 417 | + FlagFile="" |
| 418 | + |
| 419 | + #run all cases |
| 420 | + runAllCaseTest |
| 421 | + |
| 422 | + # output file locate in ./result |
| 423 | + echo "${TestSequenceName}, \ |
| 424 | + ${PassCaseNum} pass!, \ |
| 425 | + ${UnpassCaseNum} unpass!,\ |
| 426 | + detail file located in ../AllTestData/${TestFolder}/result">${CaseSummaryFile} |
| 427 | + runOutputPassNum |
| 428 | + |
| 429 | + #generate All case Flag |
| 430 | + if [ ! ${UnpassCaseNum} -eq 0 ] |
| 431 | + then |
| 432 | + echo "" |
| 433 | + exit 1 |
| 434 | + else |
| 435 | + echo "" |
| 436 | + exit 0 |
| 437 | + fi |
| 426 | 438 | } |
| 427 | 439 | TestYUVName=$1 |
| 428 | 440 | AllCaseFile=$2 |
| 429 | | −runMain ${TestYUVName} ${AllCaseFile} |
| 441 | +runMain ${TestYUVName} ${AllCaseFile} |
| 430 | 442 | |