summaryrefslogtreecommitdiff
path: root/test/signal.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/signal.cpp')
-rw-r--r--test/signal.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/signal.cpp b/test/signal.cpp
index 595782a2..fcf2def1 100644
--- a/test/signal.cpp
+++ b/test/signal.cpp
@@ -191,6 +191,24 @@ protected:
signalVoid_.connect(slotStaticReturn);
signalVoid_.connect(this, &SignalTest::slotReturn);
+ /* Test signal connection to a lambda. */
+ int value = 0;
+ signalInt_.connect(this, [&](int v) { value = v; });
+ signalInt_.emit(42);
+
+ if (value != 42) {
+ cout << "Signal connection to lambda failed" << endl;
+ return TestFail;
+ }
+
+ signalInt_.disconnect(this);
+ signalInt_.emit(0);
+
+ if (value != 42) {
+ cout << "Signal disconnection from lambda failed" << endl;
+ return TestFail;
+ }
+
/* ----------------- Signal -> Object tests ----------------- */
/*
@@ -256,6 +274,27 @@ protected:
delete slotObject;
+ /* Test signal connection to a lambda. */
+ slotObject = new SlotObject();
+ value = 0;
+ signalInt_.connect(slotObject, [&](int v) { value = v; });
+ signalInt_.emit(42);
+
+ if (value != 42) {
+ cout << "Signal connection to Object lambda failed" << endl;
+ return TestFail;
+ }
+
+ signalInt_.disconnect(slotObject);
+ signalInt_.emit(0);
+
+ if (value != 42) {
+ cout << "Signal disconnection from Object lambda failed" << endl;
+ return TestFail;
+ }
+
+ delete slotObject;
+
/* --------- Signal -> Object (multiple inheritance) -------- */
/*