Chris@2574: #!/bin/bash Chris@2574: Chris@2574: set -e Chris@2574: Chris@2574: if [ -n "$1" ]; then Chris@2574: echo "Usage: $0" 1>&2 Chris@2574: exit 2 Chris@2574: fi Chris@2574: Chris@2574: set -u Chris@2574: Chris@2574: sv="../sonic-visualiser" Chris@2574: if [ ! -f "$sv" -o ! -x "$sv" ]; then Chris@2574: echo "This script must be run from the sonic-visualiser/test directory" 1>&2 Chris@2574: exit 1 Chris@2574: fi Chris@2574: Chris@2574: version=$("$sv" -v 2>&1 | grep -v App) Chris@2574: adequate=no Chris@2574: case "$version" in Chris@2574: [0123].*) ;; Chris@2574: 4.0*) ;; Chris@2574: [1-9]*) adequate=yes ;; Chris@2574: *) echo "Failed to query Sonic Visualiser version" 1>&2 Chris@2574: exit 1 ;; Chris@2574: esac Chris@2574: if [ "$adequate" = "no" ]; then Chris@2574: echo "Sonic Visualiser version must be at least 4.1 (supporting --osc-script option with standard input)" 1>&2 Chris@2574: exit 1 Chris@2574: fi Chris@2574: Chris@2574: tmpdir=$(mktemp -d) Chris@2574: trap "rm -rf $tmpdir" 0 Chris@2574: Chris@2574: for method in 1 2; do Chris@2574: Chris@2574: echo "Testing method $method..." Chris@2574: Chris@2574: actual="$tmpdir/3dplot.csv" Chris@2574: expected="layers-expected/3dplot.csv" Chris@2574: Chris@2574: rm -f "$actual" Chris@2574: Chris@2574: if [ "$method" = "1" ]; then Chris@2574: ( echo "/open s1.wav" ; Chris@2574: echo "/transform vamp:qm-vamp-plugins:qm-keydetector:keystrength" ; Chris@2574: echo "/exportlayer $actual" ; Chris@2574: echo "/quit" ) | Chris@2574: ../sonic-visualiser --osc-script - Chris@2574: else Chris@2574: ( echo "/transform vamp:qm-vamp-plugins:qm-keydetector:keystrength" ; Chris@2574: echo "/exportlayer $actual" ; Chris@2574: echo "/quit" ) | Chris@2574: ../sonic-visualiser --osc-script - s1.wav Chris@2574: fi Chris@2574: Chris@2574: if ! cmp -s "$actual" "$expected" ; then Chris@2574: echo Chris@2574: echo "Test failed for method $method" Chris@2574: echo Chris@2574: echo "Actual:" Chris@2574: ls -l "$actual" Chris@2574: echo "Expected:" Chris@2574: ls -l "$expected" Chris@2574: echo Chris@2574: echo "Diff begins:" Chris@2574: git diff --no-index --word-diff=color --word-diff-regex=. "$actual" "$expected" | head Chris@2574: echo Chris@2574: fi Chris@2574: done