Mercurial > hg > sonic-annotator
view tests/test-as-advertised.sh @ 77:adce5f7e2917 qt5
Don't need to check for Dataquay, and in fact we can pick up the wrong version if we do. Just assume it is available (building in e.g. sv subdir configuration)
author | Chris Cannam |
---|---|
date | Tue, 07 May 2013 15:58:20 +0100 |
parents | 94d988cef54e |
children | 0fe5abb56a6e |
line wrap: on
line source
#!/bin/bash mypath=`dirname $0` r=$mypath/../sonic-annotator infile=$mypath/audio/3clicks8.wav testplug=vamp:vamp-example-plugins:percussiononsets tmpdir=$mypath/tmp_1_$$.dir tmpwav=$tmpdir/test.wav trap "rm -rf $tmpdir" 0 fail() { echo "Test failed: $1" exit 1 } types=`\ $r --help 2>&1 | \ grep 'Supported writer types are:' | \ sed -e 's/^.*://' -e 's/[,\.]//g' \ ` [ -n "$types" ] || \ fail "Fails to report sensible list of writers in help text?" onsets=$mypath/transforms/transforms-as-advertised-percussiononsets-onsets.n3 df=$mypath/transforms/transforms-as-advertised-percussiononsets-detectionfunction.n3 adbdir=$tmpdir/audiodb-test mkdir -p $adbdir for type in $types; do mkdir -p $tmpdir cp $infile $tmpwav # Some of these are special cases: # # * The "default" writer type always prints to stdout instead of # to a file. # # * The "audiodb" writer will not print any output for features # that have no values (but are only point events). I don't know # how reasonable that is, but it's clearly intentional. It also # writes to a subdirectory $basedir/$catid/$trackid.$output case $type in audiodb) $r -t $df -w $type $tmpwav --audiodb-basedir $tmpdir --audiodb-catid `basename $adbdir` 2>/dev/null || \ fail "Fails to run with reader type \"$type\" and default options" ;; default) $r -t $onsets -w $type $tmpwav > $tmpdir/test.out 2>/dev/null || \ fail "Fails to run with reader type \"$type\" and default options" ;; *) $r -t $onsets -w $type $tmpwav 2>/dev/null || \ fail "Fails to run with reader type \"$type\" and default options" ;; esac newfiles=`ls $tmpdir | fgrep -v .wav` if [ "$type" = audiodb ]; then newfiles=`ls $adbdir`; fi [ -n "$newfiles" ] || \ fail "Fails to create output file for reader \"$type\" with default options" case `echo $newfiles | wc -w` in [2-9]) if [ "$type" != audiodb ]; then fail "Produces more than one output file for reader \"$type\" with default options" fi ;; 1) if [ "$type" = audiodb ]; then fail "Produces only one output file for reader \"$type\" with default options (expected two)" fi ;; esac rm -r $tmpdir done