Message ID | fb7df8bc2b879986b55924073fe6fc70c2cd2197.1456907242.git.han.lu@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, 02 Mar 2016 09:53:20 +0100, han.lu@intel.com wrote: > > From: "Lu, Han" <han.lu@intel.com> > > Add bash script for alsabat feature test. > Examples for alsa tests: > ./bat/testbat.sh > Examples for tinyalsa tests: > ./bat/testbat.sh plughw:1,0 plughw:1,0 1 > > Signed-off-by: Lu, Han <han.lu@intel.com> > > diff --git a/bat/testbat.sh b/bat/testbat.sh > new file mode 100644 > index 0000000..93b9f70 > --- /dev/null > +++ b/bat/testbat.sh > @@ -0,0 +1,160 @@ > +#!/bin/bash > + > +exe="alsabat" > +file_sin="default.wav" > +file_sin_dual="default_dual.wav" > +logdir="tmp" > +# default devices > +dev_playback="default" > +dev_capture="default" > +# features passes vs. features all > +feature_pass=0 > +feature_cnt=0 > + > +commands="$exe -P $dev_playback -C $dev_capture" > + > +init_counter () { > + feature_pass=0 > + feature_all=0 > +} > + > +evaluate_result () { > + feature_cnt=$((feature_cnt+1)) > + if [ $1 -eq 0 ]; then > + feature_pass=$((feature_pass+1)) > + echo "pass" > + else > + echo "fail" > + fi > +} > + > +print_result () { > + echo "[$feature_pass/$feature_cnt] features passes." > +} > + > +feature_test () { > + echo "============================================" > + echo "$feature_cnt: ALSA $2" > + echo "-------------------------------------------" > + echo "$commands $1 --log=$logdir/$feature_cnt.log" > + $commands $1 --log=$logdir/$feature_cnt.log > + evaluate_result $? > + echo "$commands $1" >> $logdir/$((feature_cnt-1)).log > +} > + > +# test items > +feature_list_test () { > + commands="$exe" > + feature_test "--saveplay ${file_sin}" \ > + "generate test file with default params" > + sleep 5 > + feature_test "-P $dev_playback" "single line mode, playback" > + feature_test "-C $dev_capture --standalone" "single line mode, capture" > + commands="$exe -P $dev_playback -C $dev_capture" > + feature_test "--file ${file_sin}" "play wav file and detect" > + feature_test "" "generate sine wave and detect" > + feature_test "-c1" "configurable channel number: 1" > + feature_test "-c2 -F 19:16757" "configurable channel number: 2" > + feature_test "-r44100" "configurable sample rate: 44100" > + feature_test "-r48000" "configurable sample rate: 48000" > + feature_test "-n16387" "configurable duration: in samples" > + feature_test "-n2.5s" "configurable duration: in seconds" > + feature_test "-f U8 --saveplay U8.wav" "configurable data depth: 8 bit" > + feature_test "-f S16_LE --saveplay S16_LE.wav" \ > + "configurable data depth: 16 bit" > + feature_test "-f S24_3LE --saveplay S24_3LE.wav" \ > + "configurable data depth: 24 bit" > + feature_test "-f S32_LE --saveplay S32_LE.wav" \ > + "configurable data depth: 32 bit" > + feature_test "-f cd --saveplay cd.wav" "configurable data depth: cd" > + feature_test "-f dat --saveplay dat.wav" "configurable data depth: dat" > + tmpfreq=17583 > + feature_test "-F $tmpfreq --standalone" \ > + "standalone mode: play and capture" > + latestfile=`ls -t1 /tmp/bat.wav.* | head -n 1` > + feature_test "--local -F $tmpfreq --file $latestfile" \ > + "local mode: analyze local file" > + > + print_result > +} > + > +feature_test_tiny () { > + echo "============================================" > + echo "$feature_cnt: tinyalsa $2" > + echo "-------------------------------------------" > + echo "$commands -c2 -t $1 --log=$logdir/$feature_cnt.log" > + $commands -c2 -t $1 --log=$logdir/$feature_cnt.log > + evaluate_result $? > + echo "$commands -c2 -t $1" >> $logdir/$((feature_cnt-1)).log > +} > + > +# tinyalsa test items; device may not support "default" name nor some formats > +feature_list_test_tiny () { > + commands="$exe" > + feature_test_tiny "-P $dev_playback" "single line mode, playback" > + feature_test_tiny "-C $dev_capture --standalone" \ > + "single line mode, capture" > + commands="$exe -P $dev_playback -C $dev_capture" > + feature_test_tiny "--saveplay ${file_sin_dual}" \ > + "generate sine wave and detect" > + feature_test_tiny "--file ${file_sin_dual}" "play wav file and detect" > + feature_test_tiny "-F 19:16757" "configurable channel number: 2" > + feature_test_tiny "-r44100" "configurable sample rate: 44100" > + feature_test_tiny "-r48000" "configurable sample rate: 48000" > + feature_test_tiny "-n16387" "configurable duration: in samples" > + feature_test_tiny "-n2.5s" "configurable duration: in seconds" > + feature_test_tiny "-f S16_LE --saveplay S16_LE.wav" \ > + "configurable data depth: 16 bit" > + feature_test_tiny "-f S32_LE --saveplay S32_LE.wav" \ > + "configurable data depth: 32 bit" > + feature_test_tiny "-f cd --saveplay cd.wav" \ > + "configurable data depth: cd" > + feature_test_tiny "-f dat --saveplay dat.wav" \ > + "configurable data depth: dat" > + tmpfreq=17583 > + feature_test_tiny "-F $tmpfreq --standalone" \ > + "standalone mode: play and capture" > + latestfile=`ls -t1 /tmp/bat.wav.* | head -n 1` > + feature_test_tiny "--local -F $tmpfreq --file $latestfile" \ > + "local mode: analyze local file" > + > + print_result > +} > + > +echo "*******************************************" > +echo " BAT Test " > +echo "-------------------------------------------" > + > +# get device > +echo "usage:" > +echo " $0 <sound card>" > +echo " $0 <device-playback> <device-capture> <1 for tinyalsa, blank for alsa>" > + > +use_tinyalsa="0" > + > +if [ $# -eq 3 ]; then > + dev_playback=$1 > + dev_capture=$2 > + use_tinyalsa=$3 > +elif [ $# -eq 2 ]; then > + dev_playback=$1 > + dev_capture=$2 > +elif [ $# -eq 1 ]; then > + dev_playback=$1 > + dev_capture=$1 > +fi > + > +echo "current setting:" > +echo " $0 $dev_playback $dev_capture $3" > + > +# run > +logdir="tmp" > +mkdir -p $logdir > +init_counter > +if [ $use_tinyalsa = "1" ]; then > + feature_list_test_tiny > +else > + feature_list_test > +fi > + > +echo "*******************************************" You need to add it to Makefile.am, too. thanks, Takashi
diff --git a/bat/testbat.sh b/bat/testbat.sh new file mode 100644 index 0000000..93b9f70 --- /dev/null +++ b/bat/testbat.sh @@ -0,0 +1,160 @@ +#!/bin/bash + +exe="alsabat" +file_sin="default.wav" +file_sin_dual="default_dual.wav" +logdir="tmp" +# default devices +dev_playback="default" +dev_capture="default" +# features passes vs. features all +feature_pass=0 +feature_cnt=0 + +commands="$exe -P $dev_playback -C $dev_capture" + +init_counter () { + feature_pass=0 + feature_all=0 +} + +evaluate_result () { + feature_cnt=$((feature_cnt+1)) + if [ $1 -eq 0 ]; then + feature_pass=$((feature_pass+1)) + echo "pass" + else + echo "fail" + fi +} + +print_result () { + echo "[$feature_pass/$feature_cnt] features passes." +} + +feature_test () { + echo "============================================" + echo "$feature_cnt: ALSA $2" + echo "-------------------------------------------" + echo "$commands $1 --log=$logdir/$feature_cnt.log" + $commands $1 --log=$logdir/$feature_cnt.log + evaluate_result $? + echo "$commands $1" >> $logdir/$((feature_cnt-1)).log +} + +# test items +feature_list_test () { + commands="$exe" + feature_test "--saveplay ${file_sin}" \ + "generate test file with default params" + sleep 5 + feature_test "-P $dev_playback" "single line mode, playback" + feature_test "-C $dev_capture --standalone" "single line mode, capture" + commands="$exe -P $dev_playback -C $dev_capture" + feature_test "--file ${file_sin}" "play wav file and detect" + feature_test "" "generate sine wave and detect" + feature_test "-c1" "configurable channel number: 1" + feature_test "-c2 -F 19:16757" "configurable channel number: 2" + feature_test "-r44100" "configurable sample rate: 44100" + feature_test "-r48000" "configurable sample rate: 48000" + feature_test "-n16387" "configurable duration: in samples" + feature_test "-n2.5s" "configurable duration: in seconds" + feature_test "-f U8 --saveplay U8.wav" "configurable data depth: 8 bit" + feature_test "-f S16_LE --saveplay S16_LE.wav" \ + "configurable data depth: 16 bit" + feature_test "-f S24_3LE --saveplay S24_3LE.wav" \ + "configurable data depth: 24 bit" + feature_test "-f S32_LE --saveplay S32_LE.wav" \ + "configurable data depth: 32 bit" + feature_test "-f cd --saveplay cd.wav" "configurable data depth: cd" + feature_test "-f dat --saveplay dat.wav" "configurable data depth: dat" + tmpfreq=17583 + feature_test "-F $tmpfreq --standalone" \ + "standalone mode: play and capture" + latestfile=`ls -t1 /tmp/bat.wav.* | head -n 1` + feature_test "--local -F $tmpfreq --file $latestfile" \ + "local mode: analyze local file" + + print_result +} + +feature_test_tiny () { + echo "============================================" + echo "$feature_cnt: tinyalsa $2" + echo "-------------------------------------------" + echo "$commands -c2 -t $1 --log=$logdir/$feature_cnt.log" + $commands -c2 -t $1 --log=$logdir/$feature_cnt.log + evaluate_result $? + echo "$commands -c2 -t $1" >> $logdir/$((feature_cnt-1)).log +} + +# tinyalsa test items; device may not support "default" name nor some formats +feature_list_test_tiny () { + commands="$exe" + feature_test_tiny "-P $dev_playback" "single line mode, playback" + feature_test_tiny "-C $dev_capture --standalone" \ + "single line mode, capture" + commands="$exe -P $dev_playback -C $dev_capture" + feature_test_tiny "--saveplay ${file_sin_dual}" \ + "generate sine wave and detect" + feature_test_tiny "--file ${file_sin_dual}" "play wav file and detect" + feature_test_tiny "-F 19:16757" "configurable channel number: 2" + feature_test_tiny "-r44100" "configurable sample rate: 44100" + feature_test_tiny "-r48000" "configurable sample rate: 48000" + feature_test_tiny "-n16387" "configurable duration: in samples" + feature_test_tiny "-n2.5s" "configurable duration: in seconds" + feature_test_tiny "-f S16_LE --saveplay S16_LE.wav" \ + "configurable data depth: 16 bit" + feature_test_tiny "-f S32_LE --saveplay S32_LE.wav" \ + "configurable data depth: 32 bit" + feature_test_tiny "-f cd --saveplay cd.wav" \ + "configurable data depth: cd" + feature_test_tiny "-f dat --saveplay dat.wav" \ + "configurable data depth: dat" + tmpfreq=17583 + feature_test_tiny "-F $tmpfreq --standalone" \ + "standalone mode: play and capture" + latestfile=`ls -t1 /tmp/bat.wav.* | head -n 1` + feature_test_tiny "--local -F $tmpfreq --file $latestfile" \ + "local mode: analyze local file" + + print_result +} + +echo "*******************************************" +echo " BAT Test " +echo "-------------------------------------------" + +# get device +echo "usage:" +echo " $0 <sound card>" +echo " $0 <device-playback> <device-capture> <1 for tinyalsa, blank for alsa>" + +use_tinyalsa="0" + +if [ $# -eq 3 ]; then + dev_playback=$1 + dev_capture=$2 + use_tinyalsa=$3 +elif [ $# -eq 2 ]; then + dev_playback=$1 + dev_capture=$2 +elif [ $# -eq 1 ]; then + dev_playback=$1 + dev_capture=$1 +fi + +echo "current setting:" +echo " $0 $dev_playback $dev_capture $3" + +# run +logdir="tmp" +mkdir -p $logdir +init_counter +if [ $use_tinyalsa = "1" ]; then + feature_list_test_tiny +else + feature_list_test +fi + +echo "*******************************************"