diff --git a/libs/pbd/test/signals_test.cc b/libs/pbd/test/signals_test.cc new file mode 100644 index 0000000000..f635ea63da --- /dev/null +++ b/libs/pbd/test/signals_test.cc @@ -0,0 +1,33 @@ +#include "signals_test.h" +#include "pbd/signals.h" + +CPPUNIT_TEST_SUITE_REGISTRATION (SignalsTest); + +class Emitter { +public: + void emit () { + Fred (); + } + + PBD::Signal0 Fred; +}; + +void +receiver () +{ + +} + +void +SignalsTest::testDestruction () +{ + Emitter* e = new Emitter; + PBD::ScopedConnection c; + e->Fred.connect_same_thread (c, boost::bind (&receiver)); + e->emit (); + delete e; + c.disconnect (); + + CPPUNIT_ASSERT (true); +} + diff --git a/libs/pbd/test/signals_test.h b/libs/pbd/test/signals_test.h new file mode 100644 index 0000000000..9a66564705 --- /dev/null +++ b/libs/pbd/test/signals_test.h @@ -0,0 +1,12 @@ +#include +#include + +class SignalsTest : public CppUnit::TestFixture +{ + CPPUNIT_TEST_SUITE (SignalsTest); + CPPUNIT_TEST (testDestruction); + CPPUNIT_TEST_SUITE_END (); + +public: + void testDestruction (); +};