Use test utility function to find evoral test files
authorTim Mayberry <mojofunk@gmail.com>
Sat, 29 Nov 2014 09:30:35 +0000 (16:30 +0700)
committerTim Mayberry <mojofunk@gmail.com>
Wed, 3 Dec 2014 10:31:04 +0000 (17:31 +0700)
either via EVORAL_TEST_PATH env var or on windows via directory relative
to dll

gtk2_ardour/ardev_common.sh.in
libs/evoral/run-tests.sh
libs/evoral/test/SMFTest.cpp

index 5e32239c6f46d7417d109da8ae1173eb691f277f..487838f150c4e37c9141004029e3459b3a2999f0 100644 (file)
@@ -20,6 +20,7 @@ export ARDOUR_EXPORT_FORMATS_PATH=$TOP/export:.
 export ARDOUR_BACKEND_PATH=$libs/backends/jack:$libs/backends/wavesaudio:$libs/backends/dummy:$libs/backends/alsa
 export ARDOUR_TEST_PATH=$TOP/libs/ardour/test/data
 export PBD_TEST_PATH=$TOP/libs/pbd/test
+export EVORAL_TEST_PATH=$TOP/libs/evoral/test/testdata
 
 #
 # even though we set the above variables, ardour requires that these 
index 8eb7ba882008e521c509e2030eae3f8e811cb73c..2a96c0037fd96491ebf4a4a36ab70391f7325032 100755 (executable)
@@ -1,17 +1,14 @@
 #!/bin/sh
-srcdir=`pwd`
 
-export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$srcdir/../../build/libs/evoral:$srcdir/../../build/libs/pbd
-if [ ! -f './test/testdata/TakeFive.mid' ]; then
-    echo "This script must be run from within the libs/evoral directory";
-    exit 1;
-fi
+SCRIPTPATH=$( cd $(dirname $0) ; pwd -P )
+TOP="$SCRIPTPATH/../.."
+LIBS_DIR="$TOP/build/libs"
 
-# Make symlink to TakeFive.mid in build directory
-cd ../../build/libs/evoral
-mkdir -p ./test/testdata
-ln -fs $srcdir/test/testdata/TakeFive.mid \
-       ./test/testdata/TakeFive.mid
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBS_DIR/evoral:$LIBS_DIR/pbd
+
+export EVORAL_TEST_PATH="$SCRIPTPATH/test/testdata"
+
+cd $LIBS_DIR/evoral
 
 lcov -q -d ./src -z
 ./run-tests
index 3c82b14f95dd789d94525f7d8ac2e339f5299097..9bbe0219473c40ca4fb928ccc15db4c380d275c9 100644 (file)
@@ -21,11 +21,24 @@ SMFTest::createNewFileTest ()
        CPPUNIT_ASSERT(Glib::file_test (new_file_path, Glib::FILE_TEST_IS_REGULAR));
 }
 
+PBD::Searchpath
+test_search_path ()
+{
+#ifdef PLATFORM_WINDOWS
+       string wsp(g_win32_get_package_installation_directory_of_module(NULL));
+       return Glib::build_filename (wsp,  "evoral_testdata");
+#else
+       return Glib::getenv("EVORAL_TEST_PATH");
+#endif
+}
+
 void
 SMFTest::takeFiveTest ()
 {
        TestSMF smf;
-       smf.open("./test/testdata/TakeFive.mid");
+       string testdata_path;
+       CPPUNIT_ASSERT (find_file (test_search_path (), "TakeFive.mid", testdata_path));
+       smf.open(testdata_path);
        CPPUNIT_ASSERT(!smf.is_empty());
 
        seq->start_write();