annotate tests/test-multiple-audio.sh @ 117:5be4995f4029

Tests (and minor resulting fixes) for remote file download
author Chris Cannam
date Wed, 08 Oct 2014 13:14:39 +0100
parents 74f7ad72fee6
children 0fe5abb56a6e
rev   line source
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