You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by al...@apache.org on 2016/04/13 11:37:07 UTC

[1/2] mesos git commit: Updated comments in allocator tests for consistency.

Repository: mesos
Updated Branches:
  refs/heads/master 06defcb9b -> 656702960


Updated comments in allocator tests for consistency.


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

Branch: refs/heads/master
Commit: 2a9e7697d4636cf0de01599f3bab35dbbdf643c9
Parents: 06defcb
Author: Alexander Rukletsov <al...@apache.org>
Authored: Wed Apr 13 09:49:23 2016 +0200
Committer: Alexander Rukletsov <al...@apache.org>
Committed: Wed Apr 13 09:49:23 2016 +0200

----------------------------------------------------------------------
 src/tests/hierarchical_allocator_tests.cpp | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/2a9e7697/src/tests/hierarchical_allocator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/hierarchical_allocator_tests.cpp b/src/tests/hierarchical_allocator_tests.cpp
index 5e60cb6..1db4635 100644
--- a/src/tests/hierarchical_allocator_tests.cpp
+++ b/src/tests/hierarchical_allocator_tests.cpp
@@ -3037,13 +3037,13 @@ TEST_F(HierarchicalAllocatorTest, UpdateWeight)
 }
 
 
-// This test checks that if a framework recovered resources with a
-// long filter, it will start receiving resource offers again after
-// reviving offer.
+// This test checks that if a framework declines resources with a
+// long filter, it will be offered filtered resources again after
+// reviving offers.
 TEST_F(HierarchicalAllocatorTest, ReviveOffers)
 {
   // Pausing the clock is not necessary, but ensures that the test
-  // doesn't rely on the periodic allocation in the allocator, which
+  // doesn't rely on the batch allocation in the allocator, which
   // would slow down the test.
   Clock::pause();
 
@@ -3074,10 +3074,10 @@ TEST_F(HierarchicalAllocatorTest, ReviveOffers)
       agent.resources(),
       filter1000s);
 
-  // Advance the clock to trigger a background allocation cycle.
+  // Advance the clock to trigger a batch allocation.
   Clock::advance(flags.allocation_interval);
-
   Clock::settle();
+
   allocation = allocations.get();
   EXPECT_TRUE(allocation.isPending());
 
@@ -3087,7 +3087,7 @@ TEST_F(HierarchicalAllocatorTest, ReviveOffers)
   Clock::settle();
 
   // Framework will be offered all of agent's resources again
-  // after revive offer.
+  // after reviving offers.
   AWAIT_READY(allocation);
   EXPECT_EQ(framework.id(), allocation.get().frameworkId);
   EXPECT_EQ(agent.resources(), Resources::sum(allocation.get().resources));


[2/2] mesos git commit: Replaced empty hashmaps with {} in allocator tests.

Posted by al...@apache.org.
Replaced empty hashmaps with {} in allocator tests.

Review: https://reviews.apache.org/r/44334/


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

Branch: refs/heads/master
Commit: 656702960f1ec9d59c89d054c1ca7ef4751e2cd9
Parents: 2a9e769
Author: Alexander Rukletsov <ru...@gmail.com>
Authored: Wed Apr 13 11:35:48 2016 +0200
Committer: Alexander Rukletsov <al...@apache.org>
Committed: Wed Apr 13 11:35:48 2016 +0200

----------------------------------------------------------------------
 src/tests/hierarchical_allocator_tests.cpp | 329 +++++++-----------------
 1 file changed, 92 insertions(+), 237 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/65670296/src/tests/hierarchical_allocator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/hierarchical_allocator_tests.cpp b/src/tests/hierarchical_allocator_tests.cpp
index 1db4635..03064da 100644
--- a/src/tests/hierarchical_allocator_tests.cpp
+++ b/src/tests/hierarchical_allocator_tests.cpp
@@ -178,7 +178,7 @@ protected:
         flags.allocation_interval,
         offerCallback.get(),
         inverseOfferCallback.get(),
-        hashmap<string, double>());
+        {});
   }
 
   SlaveInfo createSlaveInfo(const string& resources)
@@ -302,17 +302,14 @@ TEST_F(HierarchicalAllocatorTest, UnreservedDRF)
 
   initialize();
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   // Total cluster resources will become cpus=2, mem=1024.
   SlaveInfo slave1 = createSlaveInfo("cpus:2;mem:1024;disk:0");
-  allocator->addSlave(slave1.id(), slave1, None(), slave1.resources(), EMPTY);
+  allocator->addSlave(slave1.id(), slave1, None(), slave1.resources(), {});
 
   // framework1 will be offered all of slave1's resources since it is
   // the only framework running so far.
   FrameworkInfo framework1 = createFrameworkInfo("role1");
-  allocator->addFramework(
-      framework1.id(), framework1, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework1.id(), framework1, {});
 
   Future<Allocation> allocation = allocations.get();
   AWAIT_READY(allocation);
@@ -323,8 +320,7 @@ TEST_F(HierarchicalAllocatorTest, UnreservedDRF)
   //   framework1 share = 1
 
   FrameworkInfo framework2 = createFrameworkInfo("role2");
-  allocator->addFramework(
-      framework2.id(), framework2, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework2.id(), framework2, {});
 
   // Total cluster resources will become cpus=3, mem=1536:
   // role1 share = 0.66 (cpus=2, mem=1024)
@@ -332,7 +328,7 @@ TEST_F(HierarchicalAllocatorTest, UnreservedDRF)
   // role2 share = 0
   //   framework2 share = 0
   SlaveInfo slave2 = createSlaveInfo("cpus:1;mem:512;disk:0");
-  allocator->addSlave(slave2.id(), slave2, None(), slave2.resources(), EMPTY);
+  allocator->addSlave(slave2.id(), slave2, None(), slave2.resources(), {});
 
   // framework2 will be offered all of slave2's resources since role2
   // has the lowest user share, and framework2 is its only framework.
@@ -352,7 +348,7 @@ TEST_F(HierarchicalAllocatorTest, UnreservedDRF)
   // role2 share = 0.16 (cpus=1, mem=512)
   //   framework2 share = 1
   SlaveInfo slave3 = createSlaveInfo("cpus:3;mem:2048;disk:0");
-  allocator->addSlave(slave3.id(), slave3, None(), slave3.resources(), EMPTY);
+  allocator->addSlave(slave3.id(), slave3, None(), slave3.resources(), {});
 
   // framework2 will be offered all of slave3's resources since role2
   // has the lowest share.
@@ -367,8 +363,7 @@ TEST_F(HierarchicalAllocatorTest, UnreservedDRF)
   //   framework2 share = 1
 
   FrameworkInfo framework3 = createFrameworkInfo("role1");
-  allocator->addFramework(
-      framework3.id(), framework3, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework3.id(), framework3, {});
 
   // Total cluster resources will become cpus=10, mem=7680:
   // role1 share = 0.2 (cpus=2, mem=1024)
@@ -377,7 +372,7 @@ TEST_F(HierarchicalAllocatorTest, UnreservedDRF)
   // role2 share = 0.4 (cpus=4, mem=2560)
   //   framework2 share = 1
   SlaveInfo slave4 = createSlaveInfo("cpus:4;mem:4096;disk:0");
-  allocator->addSlave(slave4.id(), slave4, None(), slave4.resources(), EMPTY);
+  allocator->addSlave(slave4.id(), slave4, None(), slave4.resources(), {});
 
   // framework3 will be offered all of slave4's resources since role1
   // has the lowest user share, and framework3 has the lowest share of
@@ -394,8 +389,7 @@ TEST_F(HierarchicalAllocatorTest, UnreservedDRF)
   //   framework2 share = 1
 
   FrameworkInfo framework4 = createFrameworkInfo("role1");
-  allocator->addFramework(
-      framework4.id(), framework4, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework4.id(), framework4, {});
 
   // Total cluster resources will become cpus=11, mem=8192
   // role1 share = 0.63 (cpus=6, mem=5120)
@@ -405,7 +399,7 @@ TEST_F(HierarchicalAllocatorTest, UnreservedDRF)
   // role2 share = 0.36 (cpus=4, mem=2560)
   //   framework2 share = 1
   SlaveInfo slave5 = createSlaveInfo("cpus:1;mem:512;disk:0");
-  allocator->addSlave(slave5.id(), slave5, None(), slave5.resources(), EMPTY);
+  allocator->addSlave(slave5.id(), slave5, None(), slave5.resources(), {});
 
   // Even though framework4 doesn't have any resources, role2 has a
   // lower share than role1, so framework2 receives slave5's resources.
@@ -426,17 +420,14 @@ TEST_F(HierarchicalAllocatorTest, ReservedDRF)
 
   initialize();
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   SlaveInfo slave1 = createSlaveInfo(
       "cpus:1;mem:512;disk:0;"
       "cpus(role1):100;mem(role1):1024;disk(role1):0");
-  allocator->addSlave(slave1.id(), slave1, None(), slave1.resources(), EMPTY);
+  allocator->addSlave(slave1.id(), slave1, None(), slave1.resources(), {});
 
   // framework1 will be offered all of the resources.
   FrameworkInfo framework1 = createFrameworkInfo("role1");
-  allocator->addFramework(
-      framework1.id(), framework1, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework1.id(), framework1, {});
 
   Future<Allocation> allocation = allocations.get();
   AWAIT_READY(allocation);
@@ -444,12 +435,11 @@ TEST_F(HierarchicalAllocatorTest, ReservedDRF)
   EXPECT_EQ(slave1.resources(), Resources::sum(allocation.get().resources));
 
   FrameworkInfo framework2 = createFrameworkInfo("role2");
-  allocator->addFramework(
-      framework2.id(), framework2, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework2.id(), framework2, {});
 
   // framework2 will be allocated the new resources.
   SlaveInfo slave2 = createSlaveInfo("cpus:2;mem:512;disk:0");
-  allocator->addSlave(slave2.id(), slave2, None(), slave2.resources(), EMPTY);
+  allocator->addSlave(slave2.id(), slave2, None(), slave2.resources(), {});
 
   allocation = allocations.get();
   AWAIT_READY(allocation);
@@ -459,7 +449,7 @@ TEST_F(HierarchicalAllocatorTest, ReservedDRF)
   // Since `framework1` has more resources allocated to it than `framework2`,
   // We expect `framework2` to receive this agent's resources.
   SlaveInfo slave3 = createSlaveInfo("cpus:2;mem:512;disk:0");
-  allocator->addSlave(slave3.id(), slave3, None(), slave3.resources(), EMPTY);
+  allocator->addSlave(slave3.id(), slave3, None(), slave3.resources(), {});
 
   allocation = allocations.get();
   AWAIT_READY(allocation);
@@ -471,12 +461,11 @@ TEST_F(HierarchicalAllocatorTest, ReservedDRF)
   // expect framework3 to receive the next allocation of role1
   // resources.
   FrameworkInfo framework3 = createFrameworkInfo("role1");
-  allocator->addFramework(
-      framework3.id(), framework3, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework3.id(), framework3, {});
 
   SlaveInfo slave4 = createSlaveInfo(
       "cpus(role1):2;mem(role1):1024;disk(role1):0");
-  allocator->addSlave(slave4.id(), slave4, None(), slave4.resources(), EMPTY);
+  allocator->addSlave(slave4.id(), slave4, None(), slave4.resources(), {});
 
   allocation = allocations.get();
   AWAIT_READY(allocation);
@@ -498,25 +487,15 @@ TEST_F(HierarchicalAllocatorTest, OfferFilter)
   // have had separate roles; this should not influence the test.
   const string ROLE{"role"};
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   initialize();
 
   FrameworkInfo framework1 = createFrameworkInfo(ROLE);
 
   SlaveInfo agent1 = createSlaveInfo("cpus:1;mem:512;disk:0");
 
-  allocator->addFramework(
-      framework1.id(),
-      framework1,
-      hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework1.id(), framework1, {});
 
-  allocator->addSlave(
-      agent1.id(),
-      agent1,
-      None(),
-      agent1.resources(),
-      EMPTY);
+  allocator->addSlave(agent1.id(), agent1, None(), agent1.resources(), {});
 
   // `framework1` will be offered all of `agent1` resources
   // because it is the only framework in the cluster.
@@ -588,8 +567,6 @@ TEST_F(HierarchicalAllocatorTest, SmallOfferFilterTimeout)
   // have had separate roles; this should not influence the test.
   const string ROLE{"role"};
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   // Explicitly set the allocation interval to make sure
   // it is greater than the offer filter timeout.
   master::Flags flags_;
@@ -602,15 +579,9 @@ TEST_F(HierarchicalAllocatorTest, SmallOfferFilterTimeout)
 
   SlaveInfo agent1 = createSlaveInfo("cpus:1;mem:512;disk:0");
 
-  allocator->addFramework(
-      framework1.id(),
-      framework1,
-      hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework1.id(), framework1, {});
 
-  allocator->addFramework(
-      framework2.id(),
-      framework2,
-      hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework2.id(), framework2, {});
 
   allocator->addSlave(
       agent1.id(),
@@ -631,12 +602,7 @@ TEST_F(HierarchicalAllocatorTest, SmallOfferFilterTimeout)
 
   // Add one more agent with some free resources.
   SlaveInfo agent2 = createSlaveInfo("cpus:1;mem:512;disk:0");
-  allocator->addSlave(
-      agent2.id(),
-      agent2,
-      None(),
-      agent2.resources(),
-      EMPTY);
+  allocator->addSlave(agent2.id(), agent2, None(), agent2.resources(), {});
 
   // Process the allocation triggered by the agent addition.
   Clock::settle();
@@ -739,17 +705,13 @@ TEST_F(HierarchicalAllocatorTest, MaintenanceInverseOffers)
 
   initialize();
 
-  // No initial resources.
-  hashmap<FrameworkID, Resources> EMPTY;
-
   // Create an agent.
   SlaveInfo agent = createSlaveInfo("cpus:2;mem:1024;disk:0");
-  allocator->addSlave(agent.id(), agent, None(), agent.resources(), EMPTY);
+  allocator->addSlave(agent.id(), agent, None(), agent.resources(), {});
 
   // This framework will be offered all of the resources.
   FrameworkInfo framework1 = createFrameworkInfo("*");
-  allocator->addFramework(
-      framework1.id(), framework1, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework1.id(), framework1, {});
 
   // Check that the resources go to the framework.
   Future<Allocation> allocation = allocations.get();
@@ -796,20 +758,17 @@ TEST_F(HierarchicalAllocatorTest, CoarseGrained)
 
   initialize();
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   SlaveInfo slave1 = createSlaveInfo("cpus:2;mem:1024;disk:0");
-  allocator->addSlave(slave1.id(), slave1, None(), slave1.resources(), EMPTY);
+  allocator->addSlave(slave1.id(), slave1, None(), slave1.resources(), {});
 
   SlaveInfo slave2 = createSlaveInfo("cpus:2;mem:1024;disk:0");
-  allocator->addSlave(slave2.id(), slave2, None(), slave2.resources(), EMPTY);
+  allocator->addSlave(slave2.id(), slave2, None(), slave2.resources(), {});
 
   // Once framework1 is added, an allocation will occur. Return the
   // resources so that we can test what happens when there are 2
   // frameworks and 2 slaves to consider during allocation.
   FrameworkInfo framework1 = createFrameworkInfo("role1");
-  allocator->addFramework(
-      framework1.id(), framework1, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework1.id(), framework1, {});
 
   Future<Allocation> allocation = allocations.get();
   AWAIT_READY(allocation);
@@ -831,8 +790,7 @@ TEST_F(HierarchicalAllocatorTest, CoarseGrained)
   // Now add the second framework, we expect there to be 2 subsequent
   // allocations, each framework being allocated a full slave.
   FrameworkInfo framework2 = createFrameworkInfo("role2");
-  allocator->addFramework(
-      framework2.id(), framework2, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework2.id(), framework2, {});
 
   hashmap<FrameworkID, Allocation> frameworkAllocations;
 
@@ -868,18 +826,14 @@ TEST_F(HierarchicalAllocatorTest, SameShareFairness)
 
   initialize();
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   FrameworkInfo framework1 = createFrameworkInfo("*");
-  allocator->addFramework(
-      framework1.id(), framework1, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework1.id(), framework1, {});
 
   FrameworkInfo framework2 = createFrameworkInfo("*");
-  allocator->addFramework(
-      framework2.id(), framework2, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework2.id(), framework2, {});
 
   SlaveInfo slave = createSlaveInfo("cpus:2;mem:1024;disk:0");
-  allocator->addSlave(slave.id(), slave, None(), slave.resources(), EMPTY);
+  allocator->addSlave(slave.id(), slave, None(), slave.resources(), {});
 
   // Ensure that the slave's resources are alternated between both
   // frameworks.
@@ -915,27 +869,24 @@ TEST_F(HierarchicalAllocatorTest, Reservations)
 
   initialize();
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   SlaveInfo slave1 = createSlaveInfo(
       "cpus(role1):2;mem(role1):1024;disk(role1):0");
-  allocator->addSlave(slave1.id(), slave1, None(), slave1.resources(), EMPTY);
+  allocator->addSlave(slave1.id(), slave1, None(), slave1.resources(), {});
 
   SlaveInfo slave2 = createSlaveInfo(
       "cpus(role2):2;mem(role2):1024;cpus:1;mem:1024;disk:0");
-  allocator->addSlave(slave2.id(), slave2, None(), slave2.resources(), EMPTY);
+  allocator->addSlave(slave2.id(), slave2, None(), slave2.resources(), {});
 
   // This slave's resources should never be allocated, since there
   // is no framework for role3.
   SlaveInfo slave3 = createSlaveInfo(
       "cpus(role3):1;mem(role3):1024;disk(role3):0");
-  allocator->addSlave(slave3.id(), slave3, None(), slave3.resources(), EMPTY);
+  allocator->addSlave(slave3.id(), slave3, None(), slave3.resources(), {});
 
   // framework1 should get all the resources from slave1, and the
   // unreserved resources from slave2.
   FrameworkInfo framework1 = createFrameworkInfo("role1");
-  allocator->addFramework(
-      framework1.id(), framework1, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework1.id(), framework1, {});
 
   Future<Allocation> allocation = allocations.get();
   AWAIT_READY(allocation);
@@ -948,8 +899,7 @@ TEST_F(HierarchicalAllocatorTest, Reservations)
 
   // framework2 should get all of its reserved resources on slave2.
   FrameworkInfo framework2 = createFrameworkInfo("role2");
-  allocator->addFramework(
-      framework2.id(), framework2, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework2.id(), framework2, {});
 
   allocation = allocations.get();
   AWAIT_READY(allocation);
@@ -968,17 +918,14 @@ TEST_F(HierarchicalAllocatorTest, RecoverResources)
 
   initialize();
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   SlaveInfo slave = createSlaveInfo(
       "cpus(role1):1;mem(role1):200;"
       "cpus:1;mem:200;disk:0");
-  allocator->addSlave(slave.id(), slave, None(), slave.resources(), EMPTY);
+  allocator->addSlave(slave.id(), slave, None(), slave.resources(), {});
 
   // Initially, all the resources are allocated.
   FrameworkInfo framework1 = createFrameworkInfo("role1");
-  allocator->addFramework(
-      framework1.id(), framework1, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework1.id(), framework1, {});
 
   Future<Allocation> allocation = allocations.get();
   AWAIT_READY(allocation);
@@ -1035,24 +982,21 @@ TEST_F(HierarchicalAllocatorTest, Allocatable)
   initialize();
 
   FrameworkInfo framework = createFrameworkInfo("role1");
-  allocator->addFramework(
-      framework.id(), framework, hashmap<SlaveID, Resources>());
-
-  hashmap<FrameworkID, Resources> EMPTY;
+  allocator->addFramework(framework.id(), framework, {});
 
   // Not enough memory or cpu to be considered allocatable.
   SlaveInfo slave1 = createSlaveInfo(
       "cpus:" + stringify(MIN_CPUS / 2) + ";"
       "mem:" + stringify((MIN_MEM / 2).megabytes()) + ";"
       "disk:128");
-  allocator->addSlave(slave1.id(), slave1, None(), slave1.resources(), EMPTY);
+  allocator->addSlave(slave1.id(), slave1, None(), slave1.resources(), {});
 
   // Enough cpus to be considered allocatable.
   SlaveInfo slave2 = createSlaveInfo(
       "cpus:" + stringify(MIN_CPUS) + ";"
       "mem:" + stringify((MIN_MEM / 2).megabytes()) + ";"
       "disk:128");
-  allocator->addSlave(slave2.id(), slave2, None(), slave2.resources(), EMPTY);
+  allocator->addSlave(slave2.id(), slave2, None(), slave2.resources(), {});
 
   Future<Allocation> allocation = allocations.get();
   AWAIT_READY(allocation);
@@ -1066,7 +1010,7 @@ TEST_F(HierarchicalAllocatorTest, Allocatable)
       "cpus:" + stringify(MIN_CPUS / 2) + ";"
       "mem:" + stringify((MIN_MEM).megabytes()) + ";"
       "disk:128");
-  allocator->addSlave(slave3.id(), slave3, None(), slave3.resources(), EMPTY);
+  allocator->addSlave(slave3.id(), slave3, None(), slave3.resources(), {});
 
   allocation = allocations.get();
   AWAIT_READY(allocation);
@@ -1083,7 +1027,7 @@ TEST_F(HierarchicalAllocatorTest, Allocatable)
       "cpus(role1):" + stringify(MIN_CPUS / 1.5) + ";"
       "mem(role1):" + stringify((MIN_MEM / 2).megabytes()) + ";"
       "disk:128");
-  allocator->addSlave(slave4.id(), slave4, None(), slave4.resources(), EMPTY);
+  allocator->addSlave(slave4.id(), slave4, None(), slave4.resources(), {});
 
   allocation = allocations.get();
   AWAIT_READY(allocation);
@@ -1102,15 +1046,12 @@ TEST_F(HierarchicalAllocatorTest, UpdateAllocation)
 
   initialize();
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   SlaveInfo slave = createSlaveInfo("cpus:100;mem:100;disk:100");
-  allocator->addSlave(slave.id(), slave, None(), slave.resources(), EMPTY);
+  allocator->addSlave(slave.id(), slave, None(), slave.resources(), {});
 
   // Initially, all the resources are allocated.
   FrameworkInfo framework = createFrameworkInfo("role1");
-  allocator->addFramework(
-      framework.id(), framework, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework.id(), framework, {});
 
   Future<Allocation> allocation = allocations.get();
   AWAIT_READY(allocation);
@@ -1174,10 +1115,8 @@ TEST_F(HierarchicalAllocatorTest, UpdateAvailableSuccess)
 {
   initialize();
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   SlaveInfo slave = createSlaveInfo("cpus:100;mem:100;disk:100");
-  allocator->addSlave(slave.id(), slave, None(), slave.resources(), EMPTY);
+  allocator->addSlave(slave.id(), slave, None(), slave.resources(), {});
 
   // Construct an offer operation for the framework's allocation.
   Resources unreserved = Resources::parse("cpus:25;mem:50").get();
@@ -1192,8 +1131,7 @@ TEST_F(HierarchicalAllocatorTest, UpdateAvailableSuccess)
 
   // Expect to receive the updated available resources.
   FrameworkInfo framework = createFrameworkInfo("role1");
-  allocator->addFramework(
-      framework.id(), framework, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework.id(), framework, {});
 
   Future<Allocation> allocation = allocations.get();
   AWAIT_READY(allocation);
@@ -1219,15 +1157,12 @@ TEST_F(HierarchicalAllocatorTest, UpdateAvailableFail)
 {
   initialize();
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   SlaveInfo slave = createSlaveInfo("cpus:100;mem:100;disk:100");
-  allocator->addSlave(slave.id(), slave, None(), slave.resources(), EMPTY);
+  allocator->addSlave(slave.id(), slave, None(), slave.resources(), {});
 
   // Expect to receive the all of the available resources.
   FrameworkInfo framework = createFrameworkInfo("role1");
-  allocator->addFramework(
-      framework.id(), framework, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework.id(), framework, {});
 
   Future<Allocation> allocation = allocations.get();
   AWAIT_READY(allocation);
@@ -1257,18 +1192,15 @@ TEST_F(HierarchicalAllocatorTest, UpdateSlave)
 
   initialize();
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   SlaveInfo slave = createSlaveInfo("cpus:100;mem:100;disk:100");
-  allocator->addSlave(slave.id(), slave, None(), slave.resources(), EMPTY);
+  allocator->addSlave(slave.id(), slave, None(), slave.resources(), {});
 
   // Add a framework that can accept revocable resources.
   FrameworkInfo framework = createFrameworkInfo("role1");
   framework.add_capabilities()->set_type(
       FrameworkInfo::Capability::REVOCABLE_RESOURCES);
 
-  allocator->addFramework(
-      framework.id(), framework, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework.id(), framework, {});
 
   // Initially, all the resources are allocated.
   Future<Allocation> allocation = allocations.get();
@@ -1315,15 +1247,12 @@ TEST_F(HierarchicalAllocatorTest, OversubscribedNotAllocated)
 
   initialize();
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   SlaveInfo slave = createSlaveInfo("cpus:100;mem:100;disk:100");
-  allocator->addSlave(slave.id(), slave, None(), slave.resources(), EMPTY);
+  allocator->addSlave(slave.id(), slave, None(), slave.resources(), {});
 
   // Add a framework that does *not* accept revocable resources.
   FrameworkInfo framework = createFrameworkInfo("role1");
-  allocator->addFramework(
-      framework.id(), framework, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework.id(), framework, {});
 
   // Initially, all the resources are allocated.
   Future<Allocation> allocation = allocations.get();
@@ -1351,18 +1280,15 @@ TEST_F(HierarchicalAllocatorTest, RecoverOversubscribedResources)
 
   initialize();
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   SlaveInfo slave = createSlaveInfo("cpus:100;mem:100;disk:100");
-  allocator->addSlave(slave.id(), slave, None(), slave.resources(), EMPTY);
+  allocator->addSlave(slave.id(), slave, None(), slave.resources(), {});
 
   // Add a framework that can accept revocable resources.
   FrameworkInfo framework = createFrameworkInfo("role1");
   framework.add_capabilities()->set_type(
       FrameworkInfo::Capability::REVOCABLE_RESOURCES);
 
-  allocator->addFramework(
-      framework.id(), framework, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework.id(), framework, {});
 
   // Initially, all the resources are allocated.
   Future<Allocation> allocation = allocations.get();
@@ -1408,14 +1334,11 @@ TEST_F(HierarchicalAllocatorTest, Whitelist)
 
   allocator->updateWhitelist(whitelist);
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   SlaveInfo slave = createSlaveInfo("cpus:2;mem:1024");
-  allocator->addSlave(slave.id(), slave, None(), slave.resources(), EMPTY);
+  allocator->addSlave(slave.id(), slave, None(), slave.resources(), {});
 
   FrameworkInfo framework = createFrameworkInfo("*");
-  allocator->addFramework(
-      framework.id(), framework, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework.id(), framework, {});
 
   Future<Allocation> allocation = allocations.get();
 
@@ -1474,22 +1397,18 @@ TEST_F(HierarchicalAllocatorTest, QuotaProvidesGuarantee)
   const string QUOTA_ROLE{"quota-role"};
   const string NO_QUOTA_ROLE{"no-quota-role"};
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   initialize();
 
   // Create `framework1` and set quota for its role.
   FrameworkInfo framework1 = createFrameworkInfo(QUOTA_ROLE);
-  allocator->addFramework(
-      framework1.id(), framework1, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework1.id(), framework1, {});
 
   const Quota quota1 = createQuota(QUOTA_ROLE, "cpus:2;mem:1024");
   allocator->setQuota(QUOTA_ROLE, quota1);
 
   // Create `framework2` in a non-quota'ed role.
   FrameworkInfo framework2 = createFrameworkInfo(NO_QUOTA_ROLE);
-  allocator->addFramework(
-      framework2.id(), framework2, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework2.id(), framework2, {});
 
   // Process all triggered allocation events.
   //
@@ -1497,7 +1416,7 @@ TEST_F(HierarchicalAllocatorTest, QuotaProvidesGuarantee)
   Clock::settle();
 
   SlaveInfo agent1 = createSlaveInfo("cpus:1;mem:512;disk:0");
-  allocator->addSlave(agent1.id(), agent1, None(), agent1.resources(), EMPTY);
+  allocator->addSlave(agent1.id(), agent1, None(), agent1.resources(), {});
 
   // `framework1` will be offered all of `agent1`'s resources because it is
   // the only framework in the only role with unsatisfied quota.
@@ -1513,7 +1432,7 @@ TEST_F(HierarchicalAllocatorTest, QuotaProvidesGuarantee)
   //   framework2 share = 0
 
   SlaveInfo agent2 = createSlaveInfo("cpus:1;mem:512;disk:0");
-  allocator->addSlave(agent2.id(), agent2, None(), agent2.resources(), EMPTY);
+  allocator->addSlave(agent2.id(), agent2, None(), agent2.resources(), {});
 
   // `framework1` will again be offered all of `agent2`'s resources
   // because it is the only framework in the only role with unsatisfied
@@ -1604,15 +1523,9 @@ TEST_F(HierarchicalAllocatorTest, RemoveQuota)
   // Notify allocator of agents, frameworks, quota and current allocations.
   allocator->setQuota(QUOTA_ROLE, quota1);
 
-  allocator->addFramework(
-      framework1.id(),
-      framework1,
-      hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework1.id(), framework1, {});
 
-  allocator->addFramework(
-      framework2.id(),
-      framework2,
-      hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework2.id(), framework2, {});
 
   allocator->addSlave(
       agent1.id(),
@@ -1699,22 +1612,18 @@ TEST_F(HierarchicalAllocatorTest, MultipleFrameworksInRoleWithQuota)
   const string QUOTA_ROLE{"quota-role"};
   const string NO_QUOTA_ROLE{"no-quota-role"};
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   initialize();
 
   // Create `framework1a` and set quota for its role.
   FrameworkInfo framework1a = createFrameworkInfo(QUOTA_ROLE);
-  allocator->addFramework(
-      framework1a.id(), framework1a, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework1a.id(), framework1a, {});
 
   const Quota quota1 = createQuota(QUOTA_ROLE, "cpus:4;mem:2048");
   allocator->setQuota(QUOTA_ROLE, quota1);
 
   // Create `framework2` in a non-quota'ed role.
   FrameworkInfo framework2 = createFrameworkInfo(NO_QUOTA_ROLE);
-  allocator->addFramework(
-      framework2.id(), framework2, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework2.id(), framework2, {});
 
   // Process all triggered allocation events.
   //
@@ -1722,7 +1631,7 @@ TEST_F(HierarchicalAllocatorTest, MultipleFrameworksInRoleWithQuota)
   Clock::settle();
 
   SlaveInfo agent1 = createSlaveInfo("cpus:1;mem:512;disk:0");
-  allocator->addSlave(agent1.id(), agent1, None(), agent1.resources(), EMPTY);
+  allocator->addSlave(agent1.id(), agent1, None(), agent1.resources(), {});
 
   // `framework1a` will be offered all of `agent1`'s resources because
   // it is the only framework in the only role with unsatisfied quota.
@@ -1739,11 +1648,10 @@ TEST_F(HierarchicalAllocatorTest, MultipleFrameworksInRoleWithQuota)
 
   // Create `framework1b` in the quota'ed role.
   FrameworkInfo framework1b = createFrameworkInfo(QUOTA_ROLE);
-  allocator->addFramework(
-      framework1b.id(), framework1b, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework1b.id(), framework1b, {});
 
   SlaveInfo agent2 = createSlaveInfo("cpus:2;mem:1024;disk:0");
-  allocator->addSlave(agent2.id(), agent2, None(), agent2.resources(), EMPTY);
+  allocator->addSlave(agent2.id(), agent2, None(), agent2.resources(), {});
 
   // `framework1b` will be offered all of `agent2`'s resources
   // (coarse-grained allocation) because its share is 0 and it belongs
@@ -1761,7 +1669,7 @@ TEST_F(HierarchicalAllocatorTest, MultipleFrameworksInRoleWithQuota)
   //   framework2 share = 0
 
   SlaveInfo agent3 = createSlaveInfo("cpus:1;mem:512;disk:0");
-  allocator->addSlave(agent3.id(), agent3, None(), agent3.resources(), EMPTY);
+  allocator->addSlave(agent3.id(), agent3, None(), agent3.resources(), {});
 
   // `framework1a` will be offered all of `agent3`'s resources because
   // its share is less than `framework1b`'s and `QUOTA_ROLE` still
@@ -1820,14 +1728,11 @@ TEST_F(HierarchicalAllocatorTest, QuotaAllocationGranularity)
   const string QUOTA_ROLE{"quota-role"};
   const string NO_QUOTA_ROLE{"no-quota-role"};
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   initialize();
 
   // Create `framework1` and set quota for its role.
   FrameworkInfo framework1 = createFrameworkInfo(QUOTA_ROLE);
-  allocator->addFramework(
-      framework1.id(), framework1, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework1.id(), framework1, {});
 
   // Set quota to be less than the agent resources.
   const Quota quota1 = createQuota(QUOTA_ROLE, "cpus:0.5;mem:200");
@@ -1835,8 +1740,7 @@ TEST_F(HierarchicalAllocatorTest, QuotaAllocationGranularity)
 
   // Create `framework2` in a non-quota'ed role.
   FrameworkInfo framework2 = createFrameworkInfo(NO_QUOTA_ROLE);
-  allocator->addFramework(
-      framework2.id(), framework2, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework2.id(), framework2, {});
 
   // Process all triggered allocation events.
   //
@@ -1844,7 +1748,7 @@ TEST_F(HierarchicalAllocatorTest, QuotaAllocationGranularity)
   Clock::settle();
 
   SlaveInfo agent1 = createSlaveInfo("cpus:1;mem:512;disk:0");
-  allocator->addSlave(agent1.id(), agent1, None(), agent1.resources(), EMPTY);
+  allocator->addSlave(agent1.id(), agent1, None(), agent1.resources(), {});
 
   // `framework1` will be offered all of `agent1`'s resources because
   // it is the only framework in the only role with unsatisfied quota
@@ -1889,15 +1793,9 @@ TEST_F(HierarchicalAllocatorTest, DRFWithQuota)
   // Notify allocator of agents, frameworks, quota and current allocations.
   allocator->setQuota(QUOTA_ROLE, quota1);
 
-  allocator->addFramework(
-      framework1.id(),
-      framework1,
-      hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework1.id(), framework1, {});
 
-  allocator->addFramework(
-      framework2.id(),
-      framework2,
-      hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework2.id(), framework2, {});
 
   // Process all triggered allocation events.
   //
@@ -1975,12 +1873,7 @@ TEST_F(HierarchicalAllocatorTest, DRFWithQuota)
   //   framework2 share = 1
 
   SlaveInfo agent2 = createSlaveInfo("cpus:1;mem:512;disk:0");
-  allocator->addSlave(
-      agent2.id(),
-      agent2,
-      None(),
-      agent2.resources(),
-      hashmap<FrameworkID, Resources>());
+  allocator->addSlave(agent2.id(), agent2, None(), agent2.resources(), {});
 
   // `framework2` will be offered all of `agent2`'s resources (coarse-grained
   // allocation). `framework1` does not receive them even though it has a
@@ -2022,15 +1915,9 @@ TEST_F(HierarchicalAllocatorTest, QuotaAgainstStarvation)
   SlaveInfo agent2 = createSlaveInfo("cpus:1;mem:512;disk:0");
 
   // Notify allocator of agents, frameworks, and current allocations.
-  allocator->addFramework(
-      framework1.id(),
-      framework1,
-      hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework1.id(), framework1, {});
 
-  allocator->addFramework(
-      framework2.id(),
-      framework2,
-      hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework2.id(), framework2, {});
 
   allocator->addSlave(
       agent1.id(),
@@ -2050,12 +1937,7 @@ TEST_F(HierarchicalAllocatorTest, QuotaAgainstStarvation)
   // NO_QUOTA_ROLE share = 0
   //   framework2 share = 0
 
-  allocator->addSlave(
-      agent2.id(),
-      agent2,
-      None(),
-      agent2.resources(),
-      hashmap<FrameworkID, Resources>());
+  allocator->addSlave(agent2.id(), agent2, None(), agent2.resources(), {});
 
   // Free cluster resources on `agent2` will be allocated to `framework2`
   // because its share is 0.
@@ -2138,8 +2020,6 @@ TEST_F(HierarchicalAllocatorTest, QuotaAbsentFramework)
   const string QUOTA_ROLE{"quota-role"};
   const string NO_QUOTA_ROLE{"no-quota-role"};
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   initialize();
 
   // Set quota for the quota'ed role. This role isn't registered with
@@ -2149,8 +2029,7 @@ TEST_F(HierarchicalAllocatorTest, QuotaAbsentFramework)
 
   // Add `framework` in the non-quota'ed role.
   FrameworkInfo framework = createFrameworkInfo(NO_QUOTA_ROLE);
-  allocator->addFramework(
-      framework.id(), framework, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework.id(), framework, {});
 
   // Process all triggered allocation events.
   //
@@ -2171,8 +2050,8 @@ TEST_F(HierarchicalAllocatorTest, QuotaAbsentFramework)
   // NOTE: The second event-based allocation for `agent2` takes into account
   // that `agent1`'s resources are laid away for `QUOTA_ROLE`'s quota and
   // hence freely allocates for the non-quota'ed `NO_QUOTA_ROLE` role.
-  allocator->addSlave(agent1.id(), agent1, None(), agent1.resources(), EMPTY);
-  allocator->addSlave(agent2.id(), agent2, None(), agent2.resources(), EMPTY);
+  allocator->addSlave(agent1.id(), agent1, None(), agent1.resources(), {});
+  allocator->addSlave(agent2.id(), agent2, None(), agent2.resources(), {});
 
   // `framework` can only be allocated resources on `agent2`. This
   // is due to the coarse-grained nature of the allocations. All the
@@ -2216,13 +2095,11 @@ TEST_F(HierarchicalAllocatorTest, MultiQuotaAbsentFrameworks)
   const string QUOTA_ROLE1{"quota-role-1"};
   const string QUOTA_ROLE2{"quota-role-2"};
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   initialize();
 
   SlaveInfo agent = createSlaveInfo("cpus:2;mem:2048;disk:0");
 
-  allocator->addSlave(agent.id(), agent, None(), agent.resources(), EMPTY);
+  allocator->addSlave(agent.id(), agent, None(), agent.resources(), {});
 
   // Set quota for both roles.
   const Quota quota1 = createQuota(QUOTA_ROLE1, "cpus:1;mem:1024");
@@ -2233,8 +2110,7 @@ TEST_F(HierarchicalAllocatorTest, MultiQuotaAbsentFrameworks)
 
   // Add a framework in the `QUOTA_ROLE2` role.
   FrameworkInfo framework = createFrameworkInfo(QUOTA_ROLE2);
-  allocator->addFramework(
-      framework.id(), framework, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework.id(), framework, {});
 
   // Due to the coarse-grained nature of the allocations, `framework` will
   // get all `agent`'s resources.
@@ -2261,8 +2137,6 @@ TEST_F(HierarchicalAllocatorTest, MultiQuotaWithFrameworks)
   const string QUOTA_ROLE1{"quota-role-1"};
   const string QUOTA_ROLE2{"quota-role-2"};
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   initialize();
 
   SlaveInfo agent1 = createSlaveInfo("cpus:1;mem:1024;disk:0");
@@ -2277,13 +2151,11 @@ TEST_F(HierarchicalAllocatorTest, MultiQuotaWithFrameworks)
 
   // Add `framework1` in the `QUOTA_ROLE1` role.
   FrameworkInfo framework1 = createFrameworkInfo(QUOTA_ROLE1);
-  allocator->addFramework(
-      framework1.id(), framework1, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework1.id(), framework1, {});
 
   // Add `framework2` in the `QUOTA_ROLE2` role.
   FrameworkInfo framework2 = createFrameworkInfo(QUOTA_ROLE2);
-  allocator->addFramework(
-      framework2.id(), framework2, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework2.id(), framework2, {});
 
   // Process all triggered allocation events.
   //
@@ -2316,12 +2188,7 @@ TEST_F(HierarchicalAllocatorTest, MultiQuotaWithFrameworks)
 
   SlaveInfo agent3 = createSlaveInfo("cpus:2;mem:2048");
 
-  allocator->addSlave(
-      agent3.id(),
-      agent3,
-      None(),
-      agent3.resources(),
-      EMPTY);
+  allocator->addSlave(agent3.id(), agent3, None(), agent3.resources(), {});
 
   // `framework2` will get all agent3's resources because its role is under
   // quota, while other roles' quotas are satisfied.
@@ -2359,15 +2226,9 @@ TEST_F(HierarchicalAllocatorTest, ReservationWithinQuota)
   // Notify allocator of agents, frameworks, quota and current allocations.
   allocator->setQuota(QUOTA_ROLE, quota);
 
-  allocator->addFramework(
-      framework1.id(),
-      framework1,
-      hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework1.id(), framework1, {});
 
-  allocator->addFramework(
-      framework2.id(),
-      framework2,
-      hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework2.id(), framework2, {});
 
   // Process all triggered allocation events.
   //
@@ -2424,17 +2285,14 @@ TEST_F(HierarchicalAllocatorTest, DeactivateAndReactivateFramework)
 
   initialize();
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   // Total cluster resources will become cpus=2, mem=1024.
   SlaveInfo agent = createSlaveInfo("cpus:2;mem:1024;disk:0");
-  allocator->addSlave(agent.id(), agent, None(), agent.resources(), EMPTY);
+  allocator->addSlave(agent.id(), agent, None(), agent.resources(), {});
 
   // Framework will be offered all of the agent's resources since it is
   // the only framework running so far.
   FrameworkInfo framework = createFrameworkInfo("role1");
-  allocator->addFramework(
-      framework.id(), framework, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework.id(), framework, {});
 
   Future<Allocation> allocation = allocations.get();
   AWAIT_READY(allocation);
@@ -3049,17 +2907,14 @@ TEST_F(HierarchicalAllocatorTest, ReviveOffers)
 
   initialize();
 
-  hashmap<FrameworkID, Resources> EMPTY;
-
   // Total cluster resources will become cpus=2, mem=1024.
   SlaveInfo agent = createSlaveInfo("cpus:2;mem:1024;disk:0");
-  allocator->addSlave(agent.id(), agent, None(), agent.resources(), EMPTY);
+  allocator->addSlave(agent.id(), agent, None(), agent.resources(), {});
 
   // Framework will be offered all of agent's resources since it is
   // the only framework running so far.
   FrameworkInfo framework = createFrameworkInfo("role1");
-  allocator->addFramework(
-      framework.id(), framework, hashmap<SlaveID, Resources>());
+  allocator->addFramework(framework.id(), framework, {});
 
   Future<Allocation> allocation = allocations.get();
   AWAIT_READY(allocation);