Chris@103
|
1 #!/bin/bash
|
Chris@103
|
2
|
Chris@103
|
3 mypath=`dirname $0`
|
Chris@103
|
4 r=$mypath/../sonic-annotator
|
Chris@103
|
5
|
Chris@103
|
6 tmpfile=$mypath/tmp_1_$$
|
Chris@103
|
7
|
Chris@103
|
8 trap "rm -f $tmpfile" 0
|
Chris@103
|
9
|
Chris@103
|
10 . test-include.sh
|
Chris@103
|
11
|
Chris@103
|
12 transform=$mypath/transforms/transforms-summaries-percussiononsets-detectionfunction.n3
|
Chris@103
|
13
|
Chris@117
|
14 urlbase=http://vamp-plugins.org/sonic-annotator/testfiles
|
Chris@117
|
15
|
Chris@117
|
16
|
Chris@117
|
17 # 1. Recursive local directory
|
Chris@117
|
18
|
Chris@103
|
19 # Note, the output here depends on all the audio files present -- we
|
Chris@111
|
20 # would have to regenerate it if we added more test audio files. Note
|
Chris@111
|
21 # that the -r flag is not supposed to pick up playlist files, only
|
Chris@111
|
22 # audio files
|
Chris@103
|
23 $r -t $transform -w csv --csv-stdout $mypath -r --summary-only > $tmpfile 2>/dev/null || \
|
Chris@103
|
24 fail "Fails to run transform $transform with recursive dir option"
|
Chris@103
|
25
|
Chris@103
|
26 expected=$mypath/expected/transforms-summaries-percussiononsets-all-files
|
Chris@103
|
27 csvcompare $tmpfile $expected.csv || \
|
Chris@111
|
28 faildiff "Output mismatch for transform $transform with summaries and recursive dir option" $tmpfile $expected.csv
|
Chris@103
|
29
|
Chris@117
|
30
|
Chris@117
|
31 # 2. Local playlist file referring to local audio files
|
Chris@117
|
32
|
Chris@117
|
33 # Here we strip any leading path from the audio file in the output,
|
Chris@103
|
34 # because the playlist reader will have resolved files to absolute
|
Chris@103
|
35 # paths and those will differ between systems
|
Chris@117
|
36 $r -t $transform -w csv --csv-stdout $mypath/audio/playlist.m3u --summary-only 2>/dev/null | sed 's,^"[^"]*/,",' > $tmpfile || \
|
Chris@103
|
37 fail "Fails to run transform $transform with playlist input"
|
Chris@103
|
38
|
Chris@103
|
39 expected=$mypath/expected/transforms-summaries-percussiononsets-playlist
|
Chris@103
|
40 csvcompare $tmpfile $expected.csv || \
|
Chris@111
|
41 faildiff "Output mismatch for transform $transform with summaries and playlist input" $tmpfile $expected.csv
|
Chris@103
|
42
|
Chris@117
|
43
|
Chris@117
|
44 # 3. Multiple files supplied directly on command line
|
Chris@117
|
45
|
Chris@117
|
46 # Strip paths again, just so we can use the same output comparison
|
Chris@117
|
47 # file as above
|
Chris@117
|
48 $r -t $transform -w csv --csv-stdout $mypath/audio/3clicks.mp3 $mypath/audio/6clicks.ogg --summary-only 2>/dev/null | sed 's,^"[^"]*/,",' > $tmpfile || \
|
Chris@104
|
49 fail "Fails to run transform $transform with 2-file input"
|
Chris@103
|
50
|
Chris@104
|
51 expected=$mypath/expected/transforms-summaries-percussiononsets-playlist
|
Chris@104
|
52 csvcompare $tmpfile $expected.csv || \
|
Chris@111
|
53 faildiff "Output mismatch for transform $transform with summaries and 2-file input" $tmpfile $expected.csv
|
Chris@103
|
54
|
Chris@104
|
55
|
Chris@117
|
56 # 4. Remote playlist file referring to remote audio files
|
Chris@104
|
57
|
Chris@117
|
58 $r -t $transform -w csv --csv-stdout $urlbase/playlist.m3u --summary-only 2>/dev/null | sed 's,^"[^"]*/,",' > $tmpfile || \
|
Chris@117
|
59 fail "Fails to run transform $transform with remote playlist input"
|
Chris@117
|
60
|
Chris@117
|
61 expected=$mypath/expected/transforms-summaries-percussiononsets-playlist
|
Chris@117
|
62 csvcompare $tmpfile $expected.csv || \
|
Chris@117
|
63 faildiff "Output mismatch for transform $transform with summaries and remote playlist input" $tmpfile $expected.csv
|
Chris@117
|
64
|
Chris@117
|
65
|
Chris@117
|
66 # 5. Local playlist file referring to mixture of remote and local audio files
|
Chris@117
|
67
|
Chris@117
|
68 $r -t $transform -w csv --csv-stdout $mypath/audio/remote-playlist.m3u --summary-only 2>/dev/null | sed 's,^"[^"]*/,",' > $tmpfile || \
|
Chris@117
|
69 fail "Fails to run transform $transform with playlist of remote files"
|
Chris@117
|
70
|
Chris@117
|
71 expected=$mypath/expected/transforms-summaries-percussiononsets-playlist
|
Chris@117
|
72 csvcompare $tmpfile $expected.csv || \
|
Chris@117
|
73 faildiff "Output mismatch for transform $transform with summaries and remote playlist input" $tmpfile $expected.csv
|
Chris@117
|
74
|
Chris@117
|
75
|
Chris@117
|
76 # 6. Multiple remote files supplied directly on command line
|
Chris@117
|
77
|
Chris@117
|
78 $r -t $transform -w csv --csv-stdout $urlbase/3clicks.mp3 $urlbase/6clicks.ogg --summary-only 2>/dev/null | sed 's,^"[^"]*/,",' > $tmpfile || \
|
Chris@117
|
79 fail "Fails to run transform $transform with 2-file remote input"
|
Chris@117
|
80
|
Chris@117
|
81 expected=$mypath/expected/transforms-summaries-percussiononsets-playlist
|
Chris@117
|
82 csvcompare $tmpfile $expected.csv || \
|
Chris@117
|
83 faildiff "Output mismatch for transform $transform with summaries and 2-file input" $tmpfile $expected.csv
|
Chris@117
|
84
|
Chris@117
|
85
|
Chris@117
|
86 # 7. Mixture of remote and local files supplied on command line
|
Chris@117
|
87
|
Chris@117
|
88 $r -t $transform -w csv --csv-stdout $mypath/audio/3clicks.mp3 $urlbase/6clicks.ogg --summary-only 2>/dev/null | sed 's,^"[^"]*/,",' > $tmpfile || \
|
Chris@117
|
89 fail "Fails to run transform $transform with 2-file remote input"
|
Chris@117
|
90
|
Chris@117
|
91 expected=$mypath/expected/transforms-summaries-percussiononsets-playlist
|
Chris@117
|
92 csvcompare $tmpfile $expected.csv || \
|
Chris@117
|
93 faildiff "Output mismatch for transform $transform with summaries and mixed local/remote 2-file input" $tmpfile $expected.csv
|
Chris@117
|
94
|