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

Function TEST_P

src/tests/persistent_volume_tests.cpp:301–458  ·  view source on GitHub ↗

This test verifies that the slave checkpoints resources when the framework creates/destroys persistent volumes.

Source from the content-addressed store, hash-verified

299// This test verifies that the slave checkpoints resources
300// when the framework creates/destroys persistent volumes.
301TEST_P(PersistentVolumeTest, CreateAndDestroyPersistentVolumes)
302{
303 FrameworkInfo frameworkInfo = DEFAULT_FRAMEWORK_INFO;
304 frameworkInfo.set_roles(0, DEFAULT_TEST_ROLE);
305
306 // Create a master.
307 master::Flags masterFlags = CreateMasterFlags();
308 masterFlags.roles = frameworkInfo.roles(0);
309
310 Try<Owned<cluster::Master>> master = StartMaster(masterFlags);
311 ASSERT_SOME(master);
312
313 slave::Flags slaveFlags = CreateSlaveFlags();
314 slaveFlags.resources = getSlaveResources();
315
316 Future<UpdateSlaveMessage> updateSlaveMessage =
317 FUTURE_PROTOBUF(UpdateSlaveMessage(), _, _);
318
319 Owned<MasterDetector> detector = master.get()->createDetector();
320 Try<Owned<cluster::Slave>> slave = StartSlave(detector.get(), slaveFlags);
321 ASSERT_SOME(slave);
322
323 AWAIT_READY(updateSlaveMessage);
324
325 MockScheduler sched;
326 MesosSchedulerDriver driver(
327 &sched, frameworkInfo, master.get()->pid, DEFAULT_CREDENTIAL);
328
329 EXPECT_CALL(sched, registered(&driver, _, _));
330
331 Future<vector<Offer>> offers;
332 EXPECT_CALL(sched, resourceOffers(&driver, _))
333 .WillOnce(FutureArg<1>(&offers))
334 .WillRepeatedly(Return()); // Ignore subsequent offers.
335
336 driver.start();
337
338 Clock::pause();
339 Clock::advance(masterFlags.allocation_interval);
340
341 AWAIT_READY(offers);
342 ASSERT_FALSE(offers->empty());
343
344 Offer offer = offers.get()[0];
345
346 Future<Resources> message3 = getOperationMessage(slave.get()->pid);
347 Future<Resources> message2 = getOperationMessage(slave.get()->pid);
348 Future<Resources> message1 = getOperationMessage(slave.get()->pid);
349
350 Resource volume1 = createPersistentVolume(
351 getDiskResource(Megabytes(2048), 1),
352 "id1",
353 "path1",
354 None(),
355 frameworkInfo.principal());
356
357 Resource volume2 = createPersistentVolume(
358 getDiskResource(Megabytes(2048), 2),

Callers

nothing calls this directly

Calls 15

createPersistentVolumeFunction · 0.85
MegabytesFunction · 0.85
NoneClass · 0.85
getPersistentVolumePathFunction · 0.85
allocatedResourcesFunction · 0.85
needCheckpointingFunction · 0.85
RESERVEFunction · 0.85
GROW_VOLUMEFunction · 0.85
SHRINK_VOLUMEFunction · 0.85
upgradeResourcesFunction · 0.85
getBootIdPathFunction · 0.85

Tested by

no test coverage detected