MCPcopy Create free account
hub / github.com/apache/mesos / TEST_F

Function TEST_F

src/tests/containerizer/memory_pressure_tests.cpp:77–196  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

75
76
77TEST_F(MemoryPressureMesosTest, ROOT_CGROUPS_Statistics)
78{
79 Try<Owned<cluster::Master>> master = StartMaster();
80 ASSERT_SOME(master);
81
82 slave::Flags flags = CreateSlaveFlags();
83
84 // We only care about memory cgroup for this test.
85 flags.isolation = "cgroups/mem";
86
87 Fetcher fetcher(flags);
88
89 Try<MesosContainerizer*> _containerizer =
90 MesosContainerizer::create(flags, true, &fetcher);
91
92 ASSERT_SOME(_containerizer);
93 Owned<MesosContainerizer> containerizer(_containerizer.get());
94
95 Owned<MasterDetector> detector = master.get()->createDetector();
96
97 Try<Owned<cluster::Slave>> slave =
98 StartSlave(detector.get(), containerizer.get(), flags);
99 ASSERT_SOME(slave);
100
101 MockScheduler sched;
102
103 MesosSchedulerDriver driver(
104 &sched, DEFAULT_FRAMEWORK_INFO, master.get()->pid, DEFAULT_CREDENTIAL);
105
106 EXPECT_CALL(sched, registered(_, _, _));
107
108 Future<vector<Offer>> offers;
109 EXPECT_CALL(sched, resourceOffers(_, _))
110 .WillOnce(FutureArg<1>(&offers))
111 .WillRepeatedly(Return()); // Ignore subsequent offers.
112
113 driver.start();
114
115 AWAIT_READY(offers);
116 ASSERT_FALSE(offers->empty());
117
118 Offer offer = offers.get()[0];
119
120 // Run a task that triggers memory pressure event. We request 1G
121 // disk because we are going to write a 512 MB file repeatedly.
122 TaskInfo task = createTask(
123 offer.slave_id(),
124 Resources::parse("cpus:1;mem:256;disk:1024").get(),
125 "while true; do dd count=512 bs=1M if=/dev/zero of=./temp; done");
126
127 Future<TaskStatus> starting;
128 Future<TaskStatus> running;
129 Future<TaskStatus> killed;
130 EXPECT_CALL(sched, statusUpdate(&driver, _))
131 .WillOnce(FutureArg<1>(&starting))
132 .WillOnce(FutureArg<1>(&running))
133 .WillOnce(FutureArg<1>(&killed))
134 .WillRepeatedly(Return()); // Ignore subsequent updates.

Callers

nothing calls this directly

Calls 15

MillisecondsClass · 0.85
SecondsClass · 0.85
createDetectorMethod · 0.80
startMethod · 0.65
launchTasksMethod · 0.65
killTaskMethod · 0.65
stopMethod · 0.65
joinMethod · 0.65
createFunction · 0.50
createTaskFunction · 0.50
parseFunction · 0.50
sleepFunction · 0.50

Tested by

no test coverage detected