This is an automated email from the ASF dual-hosted git repository.

asekretenko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git


The following commit(s) were added to refs/heads/master by this push:
     new ebf4cc1  Ensured that MasterAPITest.ReservationUpdate waits for 
changes on agent.
ebf4cc1 is described below

commit ebf4cc17d5d191699c9b4b8cf4b7066ca3575723
Author: Andrei Sekretenko <asekrete...@apache.org>
AuthorDate: Fri Mar 6 19:33:12 2020 +0100

    Ensured that MasterAPITest.ReservationUpdate waits for changes on agent.
    
    This patch fixes flakiness in this test by making sure that,
    before checking agent state via agent API, not only RESERVE_RESOURCES
    call of master V1 API returns, but also the agent completes processing
    messages from master.
    
    Review: https://reviews.apache.org/r/72208
---
 src/tests/api_tests.cpp | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/tests/api_tests.cpp b/src/tests/api_tests.cpp
index d1368a7..f222b43 100644
--- a/src/tests/api_tests.cpp
+++ b/src/tests/api_tests.cpp
@@ -1495,6 +1495,10 @@ TEST_P(MasterAPITest, ReservationUpdate)
 
   // Helper function to attempt a reservation update from a given `source`
   // to a given reservation using an operator API call.
+  //
+  // Note that RESERVE_RESOURCES call does not wait for the agent to apply
+  // the operation, hence this function might return before the agent changes
+  // its state!
   auto attemptReservation = [&master, &slaveId, &contentType](
       const Resources& source,
       const Resources& resources,
@@ -1566,6 +1570,11 @@ TEST_P(MasterAPITest, ReservationUpdate)
       dynamicallyReservedToFoo,
       accepted);
 
+  // Wait for the agent to apply operation.
+  Clock::pause();
+  Clock::settle();
+  Clock::resume();
+
   verifyReservation("role/foo");
 
   // Should fail again, since there are still no resources that are
@@ -1581,6 +1590,11 @@ TEST_P(MasterAPITest, ReservationUpdate)
       dynamicallyReservedToBar,
       accepted);
 
+  // Wait for the agent to apply operation.
+  Clock::pause();
+  Clock::settle();
+  Clock::resume();
+
   verifyReservation("role/bar");
 }
 

Reply via email to