summaryrefslogtreecommitdiff
path: root/libs/pbd/test
diff options
context:
space:
mode:
authorJohn Emmas <johne53@tiscali.co.uk>2013-07-17 08:24:36 +0100
committerJohn Emmas <johne53@tiscali.co.uk>2013-07-17 08:24:36 +0100
commit57f9a4c344fc1142530d66283f07e9aa6524461c (patch)
tree400a30e66584302b8d3bc5af23d23c7bb21f1405 /libs/pbd/test
parent350ed31655b00f3043e5d723606cdd50099fa91b (diff)
parent15be15451592817731a271cd16d9b94c40c3023b (diff)
Merge branch 'windows' of git://git.ardour.org/ardour/ardour into windows
Diffstat (limited to 'libs/pbd/test')
-rw-r--r--libs/pbd/test/mutex_test.cc24
-rw-r--r--libs/pbd/test/mutex_test.h17
-rw-r--r--libs/pbd/test/testrunner.cc4
3 files changed, 45 insertions, 0 deletions
diff --git a/libs/pbd/test/mutex_test.cc b/libs/pbd/test/mutex_test.cc
new file mode 100644
index 0000000000..52c36c4695
--- /dev/null
+++ b/libs/pbd/test/mutex_test.cc
@@ -0,0 +1,24 @@
+#include "mutex_test.h"
+
+CPPUNIT_TEST_SUITE_REGISTRATION (MutexTest);
+
+using namespace std;
+
+MutexTest::MutexTest ()
+{
+}
+
+void
+MutexTest::testBasic ()
+{
+ Glib::Threads::Mutex::Lock lm (m_mutex);
+
+ CPPUNIT_ASSERT (lm.locked());
+
+ /* This will fail on POSIX systems but not on some older versions of glib
+ * on win32 as TryEnterCriticalSection is used and it will return true
+ * as CriticalSection is reentrant and fail the assertion.
+ */
+ CPPUNIT_ASSERT (!m_mutex.trylock());
+
+}
diff --git a/libs/pbd/test/mutex_test.h b/libs/pbd/test/mutex_test.h
new file mode 100644
index 0000000000..95b6ea3f65
--- /dev/null
+++ b/libs/pbd/test/mutex_test.h
@@ -0,0 +1,17 @@
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "glibmm/threads.h"
+
+class MutexTest : public CppUnit::TestFixture
+{
+ CPPUNIT_TEST_SUITE (MutexTest);
+ CPPUNIT_TEST (testBasic);
+ CPPUNIT_TEST_SUITE_END ();
+
+public:
+ MutexTest ();
+ void testBasic ();
+
+private:
+ Glib::Threads::Mutex m_mutex;
+};
diff --git a/libs/pbd/test/testrunner.cc b/libs/pbd/test/testrunner.cc
index 1512ebd024..ea8f0aa115 100644
--- a/libs/pbd/test/testrunner.cc
+++ b/libs/pbd/test/testrunner.cc
@@ -4,11 +4,15 @@
#include <cppunit/TestResultCollector.h>
#include <cppunit/TestRunner.h>
#include <cppunit/BriefTestProgressListener.h>
+#include <glibmm/thread.h>
#include "scalar_properties.h"
+
int
main ()
{
+ Glib::thread_init();
+
ScalarPropertiesTest::make_property_quarks ();
CppUnit::TestResult testresult;