78b09e67083d56240f0ea9b9657066af5e095c4a
[opus.git] / tests / run_vectors.sh
1 #!/bin/sh
2
3 rm logs_mono.txt
4 rm logs_stereo.txt
5
6 if [ "$#" -ne "3" ]; then
7     echo "usage: run_vectors.sh <exec path> <vector path> <rate>"
8     exit 1
9 fi
10
11 CMD_PATH=$1
12 VECTOR_PATH=$2
13 RATE=$3
14
15 OPUS_DEMO=$CMD_PATH/opus_demo
16 OPUS_COMPARE=$CMD_PATH/opus_compare
17
18 if [ -d $VECTOR_PATH ]; then
19     echo Test vectors found in $VECTOR_PATH
20 else
21     echo No test vectors found
22     #Don't make the test fail here because the test vectors will be 
23     #distributed separateyl
24     exit 0
25 fi
26
27 if [ -x $OPUS_DEMO ]; then
28     echo Decoding with $OPUS_DEMO
29 else
30     echo ERROR: Decoder not found: $OPUS_DEMO
31     exit 1
32 fi
33
34 echo "=============="
35 echo Testing mono
36 echo "=============="
37 echo
38
39 for file in 01 02 03 04 05 06 07 08 09 10 11 12
40 do
41     if [ -e $VECTOR_PATH/testvector$file.bit ]; then
42         echo Testing testvector$file
43     else 
44         echo Bitstream file not found: testvector$file.bit
45     fi
46     if $OPUS_DEMO -d $RATE 1 $VECTOR_PATH/testvector$file.bit tmp.out >> logs_mono.txt 2>&1; then
47         echo successfully decoded
48     else
49         echo ERROR: decoding failed
50         exit 1
51     fi
52     $OPUS_COMPARE -r $RATE $VECTOR_PATH/testvector$file.dec tmp.out >> logs_mono.txt 2>&1
53     true
54     float_ret=$?
55     if [ "$float_ret" -eq "0" ]; then
56         echo output matches reference
57     else
58         echo ERROR: output does not match reference
59         exit 1
60     fi
61     echo
62 done
63
64 echo "=============="
65 echo Testing stereo
66 echo "=============="
67 echo
68
69 for file in 01 02 03 04 05 06 07 08 09 10 11 12
70 do
71     if [ -e $VECTOR_PATH/testvector$file.bit ]; then
72         echo Testing testvector$file
73     else 
74         echo Bitstream file not found: testvector$file
75     fi
76     if $OPUS_DEMO -d $RATE 2 $VECTOR_PATH/testvector$file.bit tmp.out >> logs_stereo.txt 2>&1; then
77         echo successfully decoded
78     else
79         echo ERROR: decoding failed
80         exit 1
81     fi
82     $OPUS_COMPARE -s -r $RATE $VECTOR_PATH/testvector$file.dec tmp.out >> logs_stereo.txt 2>&1
83     float_ret=$?
84     if [ "$float_ret" -eq "0" ]; then
85         echo output matches reference
86     else
87         echo ERROR: output does not match reference
88         exit 1
89     fi
90     echo
91 done
92
93
94
95 echo All tests have passed successfully
96 grep quality logs_mono.txt | awk '{sum+=$4}END{print "Average mono quality is", sum/NR, "%"}'
97 grep quality logs_stereo.txt | awk '{sum+=$4}END{print "Average stereo quality is", sum/NR, "%"}'