From d6ff0e35d8693be40808abd672ece60e4f651bf9 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 3 Jan 2012 17:36:17 +0000 Subject: add support for -D foobar when running tests git-svn-id: svn://localhost/ardour2/branches/3.0@11142 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/run-tests.sh | 4 +-- libs/ardour/test/testrunner.cc | 61 +++++++++++++++++++++++++++++++++--------- 2 files changed, 50 insertions(+), 15 deletions(-) diff --git a/libs/ardour/run-tests.sh b/libs/ardour/run-tests.sh index 379678c968..ce384ea2db 100755 --- a/libs/ardour/run-tests.sh +++ b/libs/ardour/run-tests.sh @@ -13,12 +13,12 @@ cd ../../build libs='libs' -export LD_LIBRARY_PATH=$libs/audiographer:$libs/vamp-sdk:$libs/surfaces:$libs/surfaces/control_protocol:$libs/ardour:$libs/midi++2:$libs/pbd:$libs/rubberband:$libs/soundtouch:$libs/gtkmm2ext:$libs/appleutility:$libs/taglib:$libs/evoral:$libs/evoral/src/libsmf:$libs/timecode:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=$libs/audiographer:$libs/vamp-sdk:$libs/surfaces:$libs/surfaces/control_protocol:$libs/ardour:$libs/midi++2:$libs/pbd:$libs/rubberband:$libs/soundtouch:$libs/gtkmm2ext:$libs/appleutility:$libs/taglib:$libs/evoral:$libs/evoral/src/libsmf:$libs/timecode:/usr/local/lib:/usr/local/lib64:$LD_LIBRARY_PATH export ARDOUR_PANNER_PATH=$libs/panners/2in2out:$libs/panners/1in2out:$libs/panners/vbap if [ "$1" == "--debug" ]; then gdb ./libs/ardour/run-tests else - ./libs/ardour/run-tests + ./libs/ardour/run-tests $* fi diff --git a/libs/ardour/test/testrunner.cc b/libs/ardour/test/testrunner.cc index ebbd50543e..4024490da0 100644 --- a/libs/ardour/test/testrunner.cc +++ b/libs/ardour/test/testrunner.cc @@ -1,30 +1,65 @@ +#include + #include #include #include #include #include #include + +#include "pbd/debug.h" #include "ardour/ardour.h" int -main() +main(int argc, char* argv[]) { - ARDOUR::init (false, false); + if (!Glib::thread_supported()) { + Glib::thread_init(); + } - CppUnit::TestResult testresult; + const struct option longopts[] = { + { "debug", 1, 0, 'D' }, + { 0, 0, 0, 0 } + }; + const char *optstring = "D:"; + int option_index = 0; + int c = 0; - CppUnit::TestResultCollector collectedresults; - testresult.addListener (&collectedresults); + while (1) { + c = getopt_long (argc, argv, optstring, longopts, &option_index); - CppUnit::BriefTestProgressListener progress; - testresult.addListener (&progress); + if (c == -1) { + break; + } - CppUnit::TestRunner testrunner; - testrunner.addTest (CppUnit::TestFactoryRegistry::getRegistry ().makeTest ()); - testrunner.run (testresult); + switch (c) { + case 0: + break; - CppUnit::CompilerOutputter compileroutputter (&collectedresults, std::cerr); - compileroutputter.write (); + case 'D': + if (PBD::parse_debug_options (optarg)) { + exit (0); + } + break; + } + } - return collectedresults.wasSuccessful () ? 0 : 1; + ARDOUR::init (false, false); + + CppUnit::TestResult testresult; + + CppUnit::TestResultCollector collectedresults; + testresult.addListener (&collectedresults); + + CppUnit::BriefTestProgressListener progress; + testresult.addListener (&progress); + + CppUnit::TestRunner testrunner; + testrunner.addTest (CppUnit::TestFactoryRegistry::getRegistry ().makeTest ()); + testrunner.run (testresult); + + CppUnit::CompilerOutputter compileroutputter (&collectedresults, std::cerr); + compileroutputter.write (); + + return collectedresults.wasSuccessful () ? 0 : 1; } -- cgit v1.2.3