1 #include <glibmm/thread.h>
3 #include "signals_test.h"
4 #include "pbd/signals.h"
8 CPPUNIT_TEST_SUITE_REGISTRATION (SignalsTest);
13 if (!Glib::thread_supported ()) {
24 PBD::Signal0<void> Fred;
36 SignalsTest::testEmission ()
38 Emitter* e = new Emitter;
39 PBD::ScopedConnection c;
40 e->Fred.connect_same_thread (c, boost::bind (&receiver));
45 CPPUNIT_ASSERT_EQUAL (2, N);
47 PBD::ScopedConnection d;
48 e->Fred.connect_same_thread (d, boost::bind (&receiver));
51 CPPUNIT_ASSERT_EQUAL (2, N);
55 SignalsTest::testDestruction ()
57 Emitter* e = new Emitter;
58 PBD::ScopedConnection c;
59 e->Fred.connect_same_thread (c, boost::bind (&receiver));
64 CPPUNIT_ASSERT (true);
67 class Receiver : public PBD::ScopedConnectionList
70 Receiver (Emitter* e) {
71 e->Fred.connect_same_thread (*this, boost::bind (&Receiver::receiver, this));
80 SignalsTest::testScopedConnectionList ()
82 Emitter* e = new Emitter;
83 Receiver* r = new Receiver (e);
90 CPPUNIT_ASSERT_EQUAL (1, N);