diff export-tests/test-scripted-generation.sh @ 2574:0cbdd15a96f4

Ensure transforms are populated before trying to instantiate a plugin for one; add (export-style) test for this
author Chris Cannam
date Thu, 25 Jun 2020 13:32:23 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/export-tests/test-scripted-generation.sh	Thu Jun 25 13:32:23 2020 +0100
@@ -0,0 +1,70 @@
+#!/bin/bash
+
+set -e
+
+if [ -n "$1" ]; then
+    echo "Usage: $0" 1>&2
+    exit 2
+fi
+
+set -u
+
+sv="../sonic-visualiser"
+if [ ! -f "$sv" -o ! -x "$sv" ]; then
+    echo "This script must be run from the sonic-visualiser/test directory" 1>&2
+    exit 1
+fi
+
+version=$("$sv" -v 2>&1 | grep -v App)
+adequate=no
+case "$version" in
+    [0123].*) ;;
+    4.0*) ;;
+    [1-9]*) adequate=yes ;;
+    *) echo "Failed to query Sonic Visualiser version" 1>&2
+       exit 1 ;;
+esac
+if [ "$adequate" = "no" ]; then
+    echo "Sonic Visualiser version must be at least 4.1 (supporting --osc-script option with standard input)" 1>&2
+    exit 1
+fi
+
+tmpdir=$(mktemp -d)
+trap "rm -rf $tmpdir" 0
+
+for method in 1 2; do
+
+    echo "Testing method $method..."
+
+    actual="$tmpdir/3dplot.csv"
+    expected="layers-expected/3dplot.csv"
+
+    rm -f "$actual"
+    
+    if [ "$method" = "1" ]; then
+        ( echo "/open s1.wav" ;
+          echo "/transform vamp:qm-vamp-plugins:qm-keydetector:keystrength" ;
+          echo "/exportlayer $actual" ;
+          echo "/quit" ) |
+            ../sonic-visualiser --osc-script -
+    else
+        ( echo "/transform vamp:qm-vamp-plugins:qm-keydetector:keystrength" ;
+          echo "/exportlayer $actual" ;
+          echo "/quit" ) |
+            ../sonic-visualiser --osc-script - s1.wav
+    fi
+
+    if ! cmp -s "$actual" "$expected" ; then
+        echo
+        echo "Test failed for method $method"
+        echo
+        echo "Actual:"
+        ls -l "$actual"
+        echo "Expected:"
+        ls -l "$expected"
+        echo
+        echo "Diff begins:"
+        git diff --no-index --word-diff=color --word-diff-regex=. "$actual" "$expected" | head
+        echo
+    fi
+done