1#!/bin/sh
2
3LC_ALL=POSIX
4LC_NUMERIC=POSIX
5export LC_ALL LC_NUMERIC
6
7# correct answers
8MONO_BEFORE=1f6586aa8a849a3bd8b24b42eb9e3f63
9STEREO_BEFORE=24d9a4de01f11c0a4e37c1f0fedb1675
10LVL_MONO="-6.0206dBFS  -3.0104dBFS  -5.9794dB  mono.wav"
11LVL_STEREO="-6.0206dBFS  -3.0104dBFS  -5.9794dB  stereo.wav"
12MONO_AFTER=1553f2c735477f1de783365db1bec012
13STEREO_AFTER=cf7581a8924eb3b29b93e93bc6a9f7dc
14
15exec 3>> test.log
16echo "Testing 24-bit wavs..." >&3
17
18../src/mktestwav -a 0.5 -b 3 -c 1 mono.wav
19../src/mktestwav -a 0.5 -b 3 -c 2 stereo.wav
20
21# Check that the files written by mktestwav are correct
22CHKSUM=`tail -c +44 mono.wav | md5sum`
23case "$CHKSUM" in
24    $MONO_BEFORE*) ;;
25    *) echo "FAIL: created mono.wav has bad checksum!" >&3; exit 1 ;;
26esac
27CHKSUM=`tail -c +44 stereo.wav | md5sum`
28case "$CHKSUM" in
29    $STEREO_BEFORE*) ;;
30    *) echo "FAIL: created stereo.wav has bad checksum!" >&3; exit 1 ;;
31esac
32
33echo "mono.wav and stereo.wav created..." >&3
34
35# Check that normalize correctly measures the volume of the files
36NORM=`../src/normalize -qn mono.wav`
37if test x"$NORM" != x"$LVL_MONO"; then
38    echo "FAIL: measured volume of mono.wav is incorrect:" >&3
39    echo "    should be: $LVL_MONO" >&3
40    echo "    got:       $NORM" >&3
41    exit 1
42fi
43NORM=`../src/normalize -qn stereo.wav`
44if test x"$NORM" != x"$LVL_STEREO"; then
45    echo "FAIL: measured volume of stereo.wav is incorrect:" >&3
46    echo "    should be: $LVL_STEREO" >&3
47    echo "    got:       $NORM" >&3
48    exit 1
49fi
50
51echo "mono.wav and stereo.wav measured successfully..." >&3
52
53# Check that normalize correctly normalizes the volume of the files
54../src/normalize -q mono.wav
55../src/normalize -q stereo.wav
56CHKSUM=`tail -c +44 mono.wav | md5sum`
57case "$CHKSUM" in
58    $MONO_AFTER*) ;;
59    *) echo "FAIL: adjusted mono.wav has bad checksum!" >&3; exit 1 ;;
60esac
61CHKSUM=`tail -c +44 stereo.wav | md5sum`
62case "$CHKSUM" in
63    $STEREO_AFTER*) ;;
64    *) echo "FAIL: adjusted stereo.wav has bad checksum!" >&3; exit 1 ;;
65esac
66
67echo "mono.wav and stereo.wav adjusted successfully..." >&3
68echo "PASSED!" >&3
69
70exit 0
71