8#include <boost/test/unit_test.hpp>
15void IncrementCallback(
int& val)
19void SquareCallback(
int& val)
42 sig0.
connect(IncrementCallback);
53 auto conn0 = sig0.
connect(IncrementCallback);
54 auto conn1 = sig0.
connect(SquareCallback);
67 conn0 = sig0.
connect(IncrementCallback);
68 conn1 = sig0.
connect(IncrementCallback);
87 decltype(sig0)::result_type
ret;
123 std::atomic<uint32_t> val_det{0};
124 std::atomic<uint32_t> val_non_det{0};
125 auto conn0 = sig0.
connect([&val_det] { val_det++; });
127 std::thread incrementor([&conn0, &sig0] {
128 for (
int i = 0; i < 1000; i++) {
135 assert(conn0.connected());
138 std::thread extra_increment_injector([&conn0, &sig0, &val_non_det] {
139 static constexpr size_t num_extra_conns{1000};
140 std::vector<btcsignals::scoped_connection> extra_conns;
141 extra_conns.reserve(num_extra_conns);
142 for (
size_t i = 0; i < num_extra_conns; i++) {
147 extra_conns.emplace_back(std::move(extra));
153 extra_increment_injector.join();
166 BOOST_CHECK_GE(val_non_det.load(), 500 * 501 / 2);
176 bool nonrecursive_callback_ran{
false};
177 bool recursive_callback_ran{
false};
181 nonrecursive_callback_ran =
true;
188 nonrecursive_callback_ran =
false;
190 nonrecursive_callback_ran =
true;
201 nonrecursive_callback_ran =
false;
205 recursive_callback_ran =
true;
209 nonrecursive_callback_ran =
true;
236 std::binary_semaphore done1{0};
237 std::binary_semaphore done2{0};
240 conn0 = sig0.
connect([&](
int&) {
245 conn1 = sig0.
connect(IncrementCallback);
246 conn2 = sig0.
connect(IncrementCallback);
247 std::thread thr([&] {
BOOST_AUTO_TEST_CASE(callback_order)
A combiner, which checks if at least one callback returned true.
void disconnect()
If a callback is associated with this connection, prevent it from being called in the future.
bool connected() const
Returns true if this connection was created by a signal and has not been disabled.
connection connect(Callable &&func) EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
bool empty() const EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
BOOST_FIXTURE_TEST_SUITE(cuckoocache_tests, BasicTestingSetup)
Test Suite for CuckooCache.
BOOST_AUTO_TEST_SUITE_END()
BOOST_CHECK_EQUAL(headers.FindFirst("key"), "value")
#define BOOST_CHECK(expr)