blob: a97acc9ade70f17da33c6fc3f0773852d4818f14 [file] [log] [blame]
#!/bin/bash
#
# Run tests in this directory.
#
if [ -z "$ANDROID_BUILD_TOP" ]; then
echo "Android build environment not set"
exit -1
fi
# ensure we have mm
. $ANDROID_BUILD_TOP/build/envsetup.sh
mm -j
echo "waiting for device"
adb root && adb wait-for-device remount
# location of test files
testdir="/data/local/tmp/lvmTest"
echo "========================================"
echo "testing lvm"
adb shell mkdir -p $testdir
adb push $ANDROID_BUILD_TOP/cts/tests/tests/media/res/raw/sinesweepraw.raw $testdir
adb push $OUT/testcases/snr/arm64/snr $testdir
E_VAL=1
if [ -z "$1" ]
then
cmds=("adb push $OUT/testcases/lvmtest/arm64/lvmtest $testdir"
"adb push $OUT/testcases/lvmtest/arm/lvmtest $testdir"
)
elif [ "$1" == "32" ]
then
cmds="adb push $OUT/testcases/lvmtest/arm/lvmtest $testdir"
elif [ "$1" == "64" ]
then
cmds="adb push $OUT/testcases/lvmtest/arm64/lvmtest $testdir"
else
echo ""
echo "Invalid \"val\""
echo "Usage:"
echo " "$0" [val]"
echo " where, val can be either 32 or 64."
echo ""
echo " If val is not specified then both 32 bit and 64 bit binaries"
echo " are tested."
exit $E_VAL
fi
flags_arr=(
"-csE"
"-eqE"
"-tE"
"-csE -tE -eqE"
"-bE -M"
"-csE -tE"
"-csE -eqE" "-tE -eqE"
"-csE -tE -bE -M -eqE"
"-tE -eqE -vcBal:96 -M"
"-tE -eqE -vcBal:-96 -M"
"-tE -eqE -vcBal:0 -M"
"-tE -eqE -bE -vcBal:30 -M"
)
fs_arr=(
8000
11025
12000
16000
22050
24000
32000
44100
48000
88200
96000
176400
192000
)
# run multichannel effects at different configs, saving only the stereo channel
# pair.
error_count=0
for cmd in "${cmds[@]}"
do
$cmd
for flags in "${flags_arr[@]}"
do
for fs in ${fs_arr[*]}
do
for chMask in {0..22}
do
adb shell $testdir/lvmtest -i:$testdir/sinesweepraw.raw \
-o:$testdir/sinesweep_$((chMask))_$((fs)).raw -chMask:$chMask -fs:$fs $flags
shell_ret=$?
if [ $shell_ret -ne 0 ]; then
echo "error: $shell_ret"
((++error_count))
fi
# two channel files should be identical to higher channel
# computation (first 2 channels).
# Do not compare cases where -bE is in flags (due to mono computation)
if [[ $flags != *"-bE"* ]] && [[ "$chMask" -gt 1 ]]
then
adb shell cmp $testdir/sinesweep_1_$((fs)).raw \
$testdir/sinesweep_$((chMask))_$((fs)).raw
elif [[ $flags == *"-bE"* ]] && [[ "$chMask" -gt 1 ]]
then
adb shell $testdir/snr $testdir/sinesweep_1_$((fs)).raw \
$testdir/sinesweep_$((chMask))_$((fs)).raw -thr:90.308998
fi
# both cmp and snr return EXIT_FAILURE on mismatch.
shell_ret=$?
if [ $shell_ret -ne 0 ]; then
echo "error: $shell_ret"
((++error_count))
fi
done
done
done
done
adb shell rm -r $testdir
echo "$error_count errors"
exit $error_count