Merge pull request #576 from gummif/gfa/monitor-test-flaky

Problem: Intermittent monitor test failures
This commit is contained in:
Gudmundur Adalsteinsson 2022-10-09 14:16:48 +00:00 committed by GitHub
commit c25f595506
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 11 deletions

View File

@ -81,7 +81,7 @@ jobs:
libzmqbuild: false libzmqbuild: false
brewinstall: "zeromq" brewinstall: "zeromq"
# windows # windows
- os: "windows-2016" - os: "windows-2019"
cppstd: "14" cppstd: "14"
cc: "msbuild" cc: "msbuild"
cxx: "msbuild" cxx: "msbuild"

View File

@ -9,11 +9,6 @@
class mock_monitor_t : public zmq::monitor_t class mock_monitor_t : public zmq::monitor_t
{ {
public: public:
void on_event_connect_delayed(const zmq_event_t &, const char *) ZMQ_OVERRIDE
{
++connect_delayed;
++total;
}
void on_event_connected(const zmq_event_t &, const char *) ZMQ_OVERRIDE void on_event_connected(const zmq_event_t &, const char *) ZMQ_OVERRIDE
{ {
@ -22,7 +17,6 @@ public:
} }
int total{0}; int total{0};
int connect_delayed{0};
int connected{0}; int connected{0};
}; };
@ -79,15 +73,14 @@ TEST_CASE("monitor init event count", "[monitor]")
common_server_client_setup s{false}; common_server_client_setup s{false};
mock_monitor_t monitor; mock_monitor_t monitor;
const int expected_event_count = 2; const int expected_event_count = 1;
monitor.init(s.client, "inproc://foo"); monitor.init(s.client, "inproc://foo");
CHECK_FALSE(monitor.check_event(0)); CHECK_FALSE(monitor.check_event(0));
s.init(); s.init();
while (monitor.check_event(100) && monitor.total < expected_event_count) { while (monitor.check_event(1000) && monitor.total < expected_event_count) {
} }
CHECK(monitor.connect_delayed == 1);
CHECK(monitor.connected == 1); CHECK(monitor.connected == 1);
CHECK(monitor.total == expected_event_count); CHECK(monitor.total == expected_event_count);
} }
@ -137,7 +130,6 @@ TEST_CASE("monitor init abort", "[monitor]")
CHECK(cond_var.wait_for(lock, std::chrono::seconds(1), CHECK(cond_var.wait_for(lock, std::chrono::seconds(1),
[&done] { return done; })); [&done] { return done; }));
} }
CHECK(monitor.connect_delayed == 1);
CHECK(monitor.connected == 1); CHECK(monitor.connected == 1);
monitor.abort(); monitor.abort();
thread.join(); thread.join();