Unverified Commit d8851c5c authored by Luca Boccassi's avatar Luca Boccassi Committed by GitHub

Merge pull request #3807 from sigiesec/fix-test-heartbeats

Problem: intermittent timeouts on test_heartbeats
parents 0a1fc44e 58b63667
...@@ -50,7 +50,7 @@ SETUP_TEARDOWN_TESTCONTEXT ...@@ -50,7 +50,7 @@ SETUP_TEARDOWN_TESTCONTEXT
static int get_monitor_event (void *monitor_) static int get_monitor_event (void *monitor_)
{ {
for (int i = 0; i < 2; i++) { for (int i = 0; i < 10; i++) {
// First frame in message contains event number and value // First frame in message contains event number and value
zmq_msg_t msg; zmq_msg_t msg;
TEST_ASSERT_SUCCESS_ERRNO (zmq_msg_init (&msg)); TEST_ASSERT_SUCCESS_ERRNO (zmq_msg_init (&msg));
...@@ -417,7 +417,9 @@ void test_setsockopt_heartbeat_ttl_near_zero () ...@@ -417,7 +417,9 @@ void test_setsockopt_heartbeat_ttl_near_zero ()
int main (void) int main (void)
{ {
setup_test_environment (); // The test cases are very long-running. The default timeout of 60 seconds
// is not always enough.
setup_test_environment (90);
UNITY_BEGIN (); UNITY_BEGIN ();
......
...@@ -215,7 +215,7 @@ void close_zero_linger (void *socket_) ...@@ -215,7 +215,7 @@ void close_zero_linger (void *socket_)
TEST_ASSERT_SUCCESS_ERRNO (zmq_close (socket_)); TEST_ASSERT_SUCCESS_ERRNO (zmq_close (socket_));
} }
void setup_test_environment () void setup_test_environment (int timeout_seconds_)
{ {
#if defined _WIN32 #if defined _WIN32
#if defined _MSC_VER #if defined _MSC_VER
...@@ -228,10 +228,8 @@ void setup_test_environment () ...@@ -228,10 +228,8 @@ void setup_test_environment ()
// abort test after 121 seconds // abort test after 121 seconds
alarm (121); alarm (121);
#else #else
#if !defined ZMQ_DISABLE_TEST_TIMEOUT // abort test after timeout_seconds_ seconds
// abort test after 60 seconds alarm (timeout_seconds_);
alarm (60);
#endif
#endif #endif
#endif #endif
#if defined __MVS__ #if defined __MVS__
......
...@@ -144,7 +144,11 @@ void s_recv_seq (void *socket_, ...); ...@@ -144,7 +144,11 @@ void s_recv_seq (void *socket_, ...);
// Sets a zero linger period on a socket and closes it. // Sets a zero linger period on a socket and closes it.
void close_zero_linger (void *socket_); void close_zero_linger (void *socket_);
void setup_test_environment (void); // Setups the test environment. Must be called at the beginning of each test
// executable. On POSIX systems, it sets an alarm to the specified number of
// seconds, after which the test will be killed. Set to 0 to disable this
// timeout.
void setup_test_environment (int timeout_seconds_ = 60);
// Provide portable millisecond sleep // Provide portable millisecond sleep
// http://www.cplusplus.com/forum/unices/60161/ // http://www.cplusplus.com/forum/unices/60161/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment