Mercurial > hg > sonic-annotator
annotate tests/include.sh @ 191:4ef452f5fefc
Add (failing) test for JSON output format (fails for grid output)
author | Chris Cannam |
---|---|
date | Wed, 22 Jul 2015 14:25:14 +0100 |
parents | 11a9ce2fa331 |
children | 082c3f21f49e |
rev | line source |
---|---|
Chris@118 | 1 |
Chris@182 | 2 set -e |
Chris@119 | 3 |
Chris@182 | 4 mypath=$(dirname $0) |
Chris@182 | 5 |
Chris@182 | 6 case "$(pwd)/$mypath" in |
Chris@182 | 7 *" "*) |
Chris@182 | 8 echo 1>&2 |
Chris@182 | 9 echo "ERROR: Test scripts do not handle paths containing spaces (yes, I know)" 1>&2 |
Chris@182 | 10 echo "(Path is: \"$(pwd)/$mypath\")" 1>&2 |
Chris@182 | 11 exit 1;; |
Chris@182 | 12 *) |
Chris@182 | 13 ;; |
Chris@182 | 14 esac |
Chris@182 | 15 |
Chris@182 | 16 version=1.2 |
Chris@182 | 17 nextversion=1.3 |
Chris@138 | 18 |
Chris@119 | 19 testdir=$mypath/.. |
Chris@119 | 20 r=$testdir/../sonic-annotator |
Chris@119 | 21 |
Chris@119 | 22 audiopath=$testdir/audio |
Chris@118 | 23 |
Chris@118 | 24 percplug=vamp:vamp-example-plugins:percussiononsets |
Chris@126 | 25 amplplug=vamp:vamp-example-plugins:amplitudefollower |
Chris@118 | 26 testplug=vamp:vamp-test-plugin:vamp-test-plugin |
Chris@30 | 27 |
Chris@30 | 28 fail() { |
Chris@30 | 29 echo "Test failed: $1" |
Chris@30 | 30 exit 1 |
Chris@30 | 31 } |
Chris@30 | 32 |
Chris@30 | 33 csvcompare() { |
Chris@30 | 34 # permit some fuzz in final few digits |
Chris@30 | 35 a="$1" |
Chris@30 | 36 b="$2" |
Chris@30 | 37 perl -p -e 's/(\d+\.\d{6})\d+/$1/' "$a" > "${a}__" |
Chris@30 | 38 perl -p -e 's/(\d+\.\d{6})\d+/$1/' "$b" > "${b}__" |
Chris@30 | 39 cmp -s "${a}__" "${b}__" |
Chris@30 | 40 rv=$? |
Chris@30 | 41 rm "${a}__" "${b}__" |
Chris@30 | 42 return $rv |
Chris@30 | 43 } |
Chris@30 | 44 |
Chris@75 | 45 csvcompare_ignorefirst() { |
Chris@75 | 46 # a bit like the above, but ignoring first column (and without temp files) |
Chris@75 | 47 out=`cat "$1" "$2" | cut -d, -f2- | perl -p -e 's/(\d+\.\d{6})\d+/$1/' | sort | uniq -c | grep -v ' 2 '` |
Chris@75 | 48 return `[ -z "$out" ]` |
Chris@75 | 49 } |
Chris@75 | 50 |
Chris@108 | 51 faildiff() { |
Chris@108 | 52 echo "Test failed: $1" |
Chris@108 | 53 if [ -n "$2" -a -n "$3" ]; then |
Chris@108 | 54 echo "Output follows:" |
Chris@108 | 55 echo "--" |
Chris@108 | 56 cat $2 |
Chris@108 | 57 echo "--" |
Chris@108 | 58 echo "Expected output follows:" |
Chris@108 | 59 echo "--" |
Chris@108 | 60 cat $3 |
Chris@108 | 61 echo "--" |
Chris@108 | 62 echo "Diff:" |
Chris@108 | 63 echo "--" |
Chris@108 | 64 sdiff -w78 $2 $3 |
Chris@108 | 65 echo "--" |
Chris@108 | 66 fi |
Chris@108 | 67 exit 1 |
Chris@108 | 68 } |
Chris@75 | 69 |
Chris@191 | 70 failshow() { |
Chris@191 | 71 echo "Test failed: $1" |
Chris@191 | 72 if [ -n "$2" ]; then |
Chris@191 | 73 echo "Output follows:" |
Chris@191 | 74 echo "--" |
Chris@191 | 75 cat $2 |
Chris@191 | 76 echo "--" |
Chris@191 | 77 fi |
Chris@191 | 78 exit 1 |
Chris@191 | 79 } |
Chris@108 | 80 |
Chris@191 | 81 check_json() { |
Chris@191 | 82 test -f $1 || \ |
Chris@191 | 83 fail "Fails to write output to expected location $1 for $2" |
Chris@191 | 84 cat $1 | json_verify -q || \ |
Chris@191 | 85 failshow "Writes invalid JSON to location $1 for $2" $1 |
Chris@191 | 86 rm -f $1 |
Chris@191 | 87 } |
Chris@191 | 88 |
Chris@191 | 89 |