summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/ardour/test/test_ui.cc66
-rw-r--r--libs/ardour/test/test_ui.h48
-rw-r--r--libs/ardour/test/test_util.cc20
-rw-r--r--libs/ardour/test/test_util.h2
-rw-r--r--libs/ardour/test/testrunner.cc8
-rw-r--r--libs/ardour/wscript2
6 files changed, 120 insertions, 26 deletions
diff --git a/libs/ardour/test/test_ui.cc b/libs/ardour/test/test_ui.cc
new file mode 100644
index 0000000000..202c19a699
--- /dev/null
+++ b/libs/ardour/test/test_ui.cc
@@ -0,0 +1,66 @@
+/*
+ Copyright (C) 2015 Tim Mayberry
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include "test_ui.h"
+
+#include <glibmm/threads.h>
+
+#include "pbd/error.h"
+
+#include "ardour/session_event.h"
+#include "ardour/rc_configuration.h"
+
+#include "pbd/abstract_ui.cc" // instantiate template
+
+using namespace ARDOUR;
+
+template class AbstractUI<TestUIRequest>;
+
+TestUI::TestUI ()
+ : AbstractUI<TestUIRequest> ("test_ui")
+{
+
+ pthread_set_name ("test_ui_thread");
+
+ run_loop_thread = Glib::Threads::Thread::self ();
+
+ set_event_loop_for_thread (this);
+
+ SessionEvent::create_per_thread_pool ("test", 512);
+
+ m_test_receiver.listen_to (PBD::error);
+ m_test_receiver.listen_to (PBD::info);
+ m_test_receiver.listen_to (PBD::fatal);
+ m_test_receiver.listen_to (PBD::warning);
+
+ /* We can't use VSTs here as we have a stub instead of the
+ required bits in gtk2_ardour.
+ */
+ Config->set_use_lxvst (false);
+}
+
+TestUI::~TestUI ()
+{
+ m_test_receiver.hangup ();
+}
+
+void
+TestUI::do_request (TestUIRequest* req)
+{
+
+}
diff --git a/libs/ardour/test/test_ui.h b/libs/ardour/test/test_ui.h
new file mode 100644
index 0000000000..f62dcbc82f
--- /dev/null
+++ b/libs/ardour/test/test_ui.h
@@ -0,0 +1,48 @@
+/*
+ Copyright (C) 2015 Tim Mayberry
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+//#ifndef ABSTRACT_UI_EXPORTS
+//#define ABSTRACT_UI_EXPORTS
+//#endif
+
+#include "pbd/abstract_ui.h"
+
+#include "test_receiver.h"
+
+class TestUIRequest : public BaseUI::BaseRequestObject
+{
+
+};
+
+class TestUI : public AbstractUI<TestUIRequest>
+{
+public: // ctors
+
+ TestUI ();
+
+ ~TestUI ();
+
+public: // AbstractUI Interface
+
+ virtual void do_request (TestUIRequest*);
+
+private: // member data
+
+ TestReceiver m_test_receiver;
+
+};
diff --git a/libs/ardour/test/test_util.cc b/libs/ardour/test/test_util.cc
index 3b95d1b708..9543bf58ae 100644
--- a/libs/ardour/test/test_util.cc
+++ b/libs/ardour/test/test_util.cc
@@ -29,7 +29,6 @@
#include "ardour/audioengine.h"
#include "test_util.h"
-#include "test_receiver.h"
#include <cppunit/extensions/HelperMacros.h>
@@ -97,25 +96,6 @@ write_ref (XMLNode* node, string ref_file)
return rv;
}
-TestReceiver test_receiver;
-
-bool
-test_init ()
-{
- SessionEvent::create_per_thread_pool ("test", 512);
-
- test_receiver.listen_to (error);
- test_receiver.listen_to (info);
- test_receiver.listen_to (fatal);
- test_receiver.listen_to (warning);
-
- /* We can't use VSTs here as we have a stub instead of the
- required bits in gtk2_ardour.
- */
- Config->set_use_lxvst (false);
- return true;
-}
-
void
create_and_start_dummy_backend ()
{
diff --git a/libs/ardour/test/test_util.h b/libs/ardour/test/test_util.h
index fe8e9e9389..85041f441a 100644
--- a/libs/ardour/test/test_util.h
+++ b/libs/ardour/test/test_util.h
@@ -31,8 +31,6 @@ namespace ARDOUR {
class Session;
}
-bool test_init ();
-
PBD::Searchpath test_search_path ();
std::string new_test_output_dir (std::string prefix = "");
diff --git a/libs/ardour/test/testrunner.cc b/libs/ardour/test/testrunner.cc
index 9fa8c82798..2d9a8fc39e 100644
--- a/libs/ardour/test/testrunner.cc
+++ b/libs/ardour/test/testrunner.cc
@@ -11,7 +11,7 @@
#include "pbd/debug.h"
#include "ardour/ardour.h"
-#include "test_util.h"
+#include "test_ui.h"
static const char* localedir = LOCALEDIR;
@@ -51,8 +51,8 @@ main(int argc, char* argv[])
CPPUNIT_ASSERT (ARDOUR::init (false, true, localedir));
- CPPUNIT_ASSERT (test_init ());
-
+ TestUI* test_ui = new TestUI();
+
CppUnit::TestResult testresult;
CppUnit::TestResultCollector collectedresults;
@@ -68,6 +68,8 @@ main(int argc, char* argv[])
CppUnit::CompilerOutputter compileroutputter (&collectedresults, std::cerr);
compileroutputter.write ();
+ delete test_ui;
+
ARDOUR::cleanup ();
return collectedresults.wasSuccessful () ? 0 : 1;
diff --git a/libs/ardour/wscript b/libs/ardour/wscript
index 474ffdc6c1..9b2e9c4b2c 100644
--- a/libs/ardour/wscript
+++ b/libs/ardour/wscript
@@ -421,7 +421,7 @@ def build(bld):
testcommon = bld(features = 'cxx')
testcommon.includes = obj.includes + ['test', '../pbd', '..']
testcommon.source = ['test/testrunner.cc', 'test/test_needing_session.cc',
- 'test/dummy_lxvst.cc', 'test/audio_region_test.cc', 'test/test_util.cc']
+ 'test/dummy_lxvst.cc', 'test/audio_region_test.cc', 'test/test_util.cc', 'test/test_ui.cc']
testcommon.uselib = ['CPPUNIT','SIGCPP','GLIBMM','GTHREAD',
'SAMPLERATE','XML','LRDF','COREAUDIO','TAGLIB','VAMPSDK','VAMPHOSTSDK','RUBBERBAND']
testcommon.use = ['libpbd','libmidipp','libevoral',