From 74aac9a72d0182d9f9e6a44d982422c352cdce36 Mon Sep 17 00:00:00 2001 From: Yossi Itigin Date: Sun, 25 Jun 2017 16:25:45 +0300 Subject: [PATCH] TEST/UD: Wait for a packet up to 10 sec. --- test/gtest/uct/test_ud_slow_timer.cc | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/test/gtest/uct/test_ud_slow_timer.cc b/test/gtest/uct/test_ud_slow_timer.cc index 68bf4a3efd3..33d08fc7ecb 100644 --- a/test/gtest/uct/test_ud_slow_timer.cc +++ b/test/gtest/uct/test_ud_slow_timer.cc @@ -45,6 +45,15 @@ class test_ud_slow_timer : public ud_base_test { { return UCS_ERR_INVALID_PARAM; } + + void wait_for_rx_sn(unsigned sn) + { + ucs_time_t deadline = ucs_get_time() + + ucs_time_from_sec(10) * ucs::test_time_multiplier(); + while ((ucs_get_time() < deadline) && (ucs_frag_list_sn(&ep(m_e2)->rx.ooo_pkts) < sn)) { + usleep(1000); + } + } }; int test_ud_slow_timer::rx_limit = 10; @@ -69,7 +78,7 @@ UCS_TEST_P(test_ud_slow_timer, txn) { for (i = 0; i < N; i++) { EXPECT_UCS_OK(tx(m_e1)); } - twait(200); + wait_for_rx_sn(N); EXPECT_EQ(N+1, ep(m_e1)->tx.psn); EXPECT_EQ(N, ucs_frag_list_sn(&ep(m_e2)->rx.ooo_pkts)); } @@ -105,7 +114,7 @@ UCS_TEST_P(test_ud_slow_timer, retransmit1) { ep(m_e2)->rx.rx_hook = uct_ud_ep_null_hook; EXPECT_EQ(2, ep(m_e1)->tx.psn); EXPECT_EQ(0, ucs_frag_list_sn(&ep(m_e2)->rx.ooo_pkts)); - twait(500); + wait_for_rx_sn(1); EXPECT_EQ(2, ep(m_e1)->tx.psn); EXPECT_EQ(1, ucs_frag_list_sn(&ep(m_e2)->rx.ooo_pkts)); } @@ -125,9 +134,7 @@ UCS_TEST_P(test_ud_slow_timer, retransmitn) { ep(m_e2)->rx.rx_hook = uct_ud_ep_null_hook; EXPECT_EQ(N+1, ep(m_e1)->tx.psn); EXPECT_EQ(0, ucs_frag_list_sn(&ep(m_e2)->rx.ooo_pkts)); - twait(500*ucs::test_time_multiplier()); - //short_progress_loop(); - + wait_for_rx_sn(N); EXPECT_EQ(N+1, ep(m_e1)->tx.psn); EXPECT_EQ(N, ucs_frag_list_sn(&ep(m_e2)->rx.ooo_pkts)); } @@ -160,9 +167,7 @@ UCS_TEST_P(test_ud_slow_timer, partial_drop) { short_progress_loop(); EXPECT_EQ(N+1, ep(m_e1)->tx.psn); - while (ucs_frag_list_sn(&ep(m_e2)->rx.ooo_pkts) < N) { - progress(); - } + wait_for_rx_sn(N); EXPECT_EQ(N, ucs_frag_list_sn(&ep(m_e2)->rx.ooo_pkts)); } #endif