Mercurial > hg > vamp-plugin-sdk
comparison test/run-test-plugin-regression.sh @ 438:e506ffa4591b vampipe
Test script using vamp-test-plugin
author | Chris Cannam |
---|---|
date | Wed, 17 Aug 2016 14:01:39 +0100 |
parents | |
children | 88261e7c1db8 |
comparison
equal
deleted
inserted
replaced
437:75cc9ced3b01 | 438:e506ffa4591b |
---|---|
1 #!/bin/bash | |
2 | |
3 set -eu | |
4 | |
5 MYDIR=$(dirname "$0") | |
6 | |
7 TEST_PLUGIN_DIR="$MYDIR/../../vamp-test-plugin" | |
8 HOST_DIR="$MYDIR/../host" | |
9 HOST="$HOST_DIR/vamp-simple-host" | |
10 TEST_FILE="$MYDIR/20sec-silence.wav" | |
11 | |
12 mkdir -p "$MYDIR/obtained" | |
13 mkdir -p "$MYDIR/failures" | |
14 | |
15 echo "Rebuilding SDK and simple host..." 1>&2 | |
16 ( cd "$MYDIR/.." && ./configure && make clean && make ) | |
17 | |
18 if [ ! -d "$TEST_PLUGIN_DIR" ]; then | |
19 echo "Can't find test plugin dir at $TEST_PLUGIN_DIR" 1>&2 | |
20 exit 1 | |
21 fi | |
22 | |
23 if [ ! -x "$HOST" ]; then | |
24 echo "Can't find host at $HOST" 1>&2 | |
25 exit 1 | |
26 fi | |
27 | |
28 echo "Rebuilding test plugin..." 1>&2 | |
29 ( cd "$TEST_PLUGIN_DIR" && make -f Makefile.linux clean && make -f Makefile.linux ) | |
30 | |
31 export VAMP_PATH="$TEST_PLUGIN_DIR" | |
32 | |
33 # check that the two expected test plugin ids are present: | |
34 | |
35 ids=$("$HOST" --list-ids) | |
36 | |
37 expected="vamp:vamp-test-plugin:vamp-test-plugin | |
38 vamp:vamp-test-plugin:vamp-test-plugin-freq" | |
39 | |
40 if [ "$ids" != "$expected" ]; then | |
41 echo "Unexpected id list: $ids" 1>&2 | |
42 echo "Expected: $expected" 1>&2 | |
43 exit 1 | |
44 fi | |
45 | |
46 some_failed=nope | |
47 echo | |
48 | |
49 for test in $("$HOST" --list-outputs | sed 's/^vamp://') ; do | |
50 | |
51 filename="$(echo "$test.txt" | sed 's/^[^:]*://' | sed 's/:/_/g')" | |
52 expected="$MYDIR/expected/$filename" | |
53 obtained="$MYDIR/obtained/$filename" | |
54 failure="$MYDIR/failures/$filename" | |
55 | |
56 rm -f "$failure" | |
57 echo "=== $test" > "$obtained" | |
58 "$HOST" "$test" "$TEST_FILE" >> "$obtained" 2>/dev/null | |
59 | |
60 if cmp -s "$expected" "$obtained" ; then | |
61 echo "$test: ok" | |
62 else | |
63 sdiff "$expected" "$obtained" > "$failure" || true # avoid exit-on-failure | |
64 echo "*** $test: FAILED, see $failure for diff" | |
65 some_failed=yup | |
66 fi | |
67 | |
68 done | |
69 | |
70 if [ "$some_failed" != "nope" ]; then | |
71 echo; echo "*** Some tests failed!"; echo | |
72 fi | |
73 |