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