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