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@204
|
16 version=1.3
|
Chris@204
|
17 nextversion=1.4
|
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@196
|
51 midicompare() {
|
Chris@196
|
52 a="$1"
|
Chris@196
|
53 b="$2"
|
Chris@196
|
54 od -c "$a" > "${a}__"
|
Chris@196
|
55 od -c "$b" > "${b}__"
|
Chris@196
|
56 cmp -s "${a}__" "${b}__"
|
Chris@196
|
57 rv=$?
|
Chris@196
|
58 rm "${a}__" "${b}__"
|
Chris@196
|
59 return $rv
|
Chris@196
|
60 }
|
Chris@196
|
61
|
Chris@204
|
62 jsoncompare() {
|
Chris@204
|
63 a="$1"
|
Chris@204
|
64 b="$2"
|
Chris@204
|
65 cmp -s "$a" "$b"
|
Chris@204
|
66 }
|
Chris@204
|
67
|
Chris@108
|
68 faildiff() {
|
Chris@108
|
69 echo "Test failed: $1"
|
Chris@108
|
70 if [ -n "$2" -a -n "$3" ]; then
|
Chris@108
|
71 echo "Output follows:"
|
Chris@108
|
72 echo "--"
|
Chris@196
|
73 cat "$2"
|
Chris@108
|
74 echo "--"
|
Chris@108
|
75 echo "Expected output follows:"
|
Chris@108
|
76 echo "--"
|
Chris@196
|
77 cat "$3"
|
Chris@108
|
78 echo "--"
|
Chris@108
|
79 echo "Diff:"
|
Chris@108
|
80 echo "--"
|
Chris@196
|
81 sdiff -w78 "$2" "$3"
|
Chris@196
|
82 echo "--"
|
Chris@196
|
83 fi
|
Chris@196
|
84 exit 1
|
Chris@196
|
85 }
|
Chris@196
|
86
|
Chris@196
|
87 faildiff_od() {
|
Chris@196
|
88 echo "Test failed: $1"
|
Chris@196
|
89 if [ -n "$2" -a -n "$3" ]; then
|
Chris@196
|
90 echo "Output follows:"
|
Chris@196
|
91 echo "--"
|
Chris@196
|
92 od -c "$2"
|
Chris@196
|
93 echo "--"
|
Chris@196
|
94 echo "Expected output follows:"
|
Chris@196
|
95 echo "--"
|
Chris@196
|
96 od -c "$3"
|
Chris@196
|
97 echo "--"
|
Chris@196
|
98 echo "Diff:"
|
Chris@196
|
99 echo "--"
|
Chris@196
|
100 od -w8 -c "$3" > "${3}__"
|
Chris@196
|
101 od -w8 -c "$2" | sdiff -w78 - "${3}__"
|
Chris@196
|
102 rm "${3}__"
|
Chris@108
|
103 echo "--"
|
Chris@108
|
104 fi
|
Chris@108
|
105 exit 1
|
Chris@108
|
106 }
|
Chris@75
|
107
|
Chris@191
|
108 failshow() {
|
Chris@191
|
109 echo "Test failed: $1"
|
Chris@191
|
110 if [ -n "$2" ]; then
|
Chris@191
|
111 echo "Output follows:"
|
Chris@191
|
112 echo "--"
|
Chris@191
|
113 cat $2
|
Chris@191
|
114 echo "--"
|
Chris@191
|
115 fi
|
Chris@191
|
116 exit 1
|
Chris@191
|
117 }
|
Chris@108
|
118
|
Chris@191
|
119 check_json() {
|
Chris@191
|
120 test -f $1 || \
|
Chris@191
|
121 fail "Fails to write output to expected location $1 for $2"
|
Chris@191
|
122 cat $1 | json_verify -q || \
|
Chris@191
|
123 failshow "Writes invalid JSON to location $1 for $2" $1
|
Chris@191
|
124 rm -f $1
|
Chris@191
|
125 }
|
Chris@191
|
126
|
Chris@191
|
127
|