Repository: aurora
Updated Branches:
  refs/heads/master 9825e054d -> dbe9a52a0


Add test case for regression of AURORA-1952

Reviewed at https://reviews.apache.org/r/63202/


Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/dbe9a52a
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/dbe9a52a
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/dbe9a52a

Branch: refs/heads/master
Commit: dbe9a52a0315885eb478c6e9666bf89eb346349f
Parents: 9825e05
Author: Bill Farner <[email protected]>
Authored: Sat Oct 21 11:12:26 2017 -0700
Committer: Bill Farner <[email protected]>
Committed: Sat Oct 21 11:12:26 2017 -0700

----------------------------------------------------------------------
 .../scheduler/offers/OfferManagerImplTest.java  | 26 ++++++++++++++++++++
 1 file changed, 26 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aurora/blob/dbe9a52a/src/test/java/org/apache/aurora/scheduler/offers/OfferManagerImplTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/aurora/scheduler/offers/OfferManagerImplTest.java 
b/src/test/java/org/apache/aurora/scheduler/offers/OfferManagerImplTest.java
index 6c8434e..3d38a59 100644
--- a/src/test/java/org/apache/aurora/scheduler/offers/OfferManagerImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/offers/OfferManagerImplTest.java
@@ -42,6 +42,7 @@ import org.apache.aurora.scheduler.testing.FakeStatsProvider;
 import org.apache.mesos.v1.Protos;
 import org.apache.mesos.v1.Protos.Filters;
 import org.apache.mesos.v1.Protos.Offer.Operation;
+import org.apache.mesos.v1.Protos.OfferID;
 import org.apache.mesos.v1.Protos.TaskInfo;
 import org.apache.mesos.v1.Protos.TimeInfo;
 import org.apache.mesos.v1.Protos.Unavailability;
@@ -545,4 +546,29 @@ public class OfferManagerImplTest extends EasyMockTest {
     assertEquals(0, statsProvider.getLongValue(OUTSTANDING_OFFERS));
     assertEquals(0, statsProvider.getLongValue(STATICALLY_BANNED_OFFERS));
   }
+
+  @Test
+  public void testTwoOffersPerHost() {
+    // Test for regression of AURORA-1952, where a specific call order could 
cause OfferManager
+    // to violate its one-offer-per-host invariant.
+
+    HostOffer sameAgent = new HostOffer(
+        
OFFER_A.getOffer().toBuilder().setId(OfferID.newBuilder().setValue("sameAgent")).build(),
+        HOST_ATTRIBUTES_A);
+    HostOffer sameAgent2 = new HostOffer(
+        
OFFER_A.getOffer().toBuilder().setId(OfferID.newBuilder().setValue("sameAgent2")).build(),
+        HOST_ATTRIBUTES_A);
+
+    driver.declineOffer(OFFER_A_ID, OFFER_FILTER);
+    driver.declineOffer(sameAgent.getOffer().getId(), OFFER_FILTER);
+
+    control.replay();
+
+    offerManager.banOffer(OFFER_A_ID);
+    offerManager.addOffer(OFFER_A);
+    offerManager.addOffer(sameAgent);
+    offerManager.cancelOffer(OFFER_A_ID);
+    offerManager.addOffer(sameAgent2);
+    assertEquals(ImmutableSet.of(sameAgent2), offerManager.getOffers());
+  }
 }

Reply via email to