// This test verifies the case where we don't need a bind mount for // slave's working directory because the mount containing it is // already a shared mount in its own peer group. TEST_F(LinuxFilesystemIsolatorTest, ROOT_WorkDirMountNotNeeded) { Try<string> directory = environment->mkdtemp(); ASSERT_SOME(directory); // Make 'sandbox' a shared mount in its own peer group. ASSERT_SOME(os::shell( "mount --bind %s %s && " "mount --make-private %s &&" "mount --make-shared %s", directory->c_str(), directory->c_str(), directory->c_str(), directory->c_str())); // Slave's working directory is under 'sandbox'. slave::Flags flags = CreateSlaveFlags(); flags.work_dir = path::join(directory.get(), "slave"); ASSERT_SOME(os::mkdir(flags.work_dir)); Try<Isolator*> isolator = LinuxFilesystemIsolatorProcess::create(flags); ASSERT_SOME(isolator); Try<fs::MountInfoTable> table = fs::MountInfoTable::read(); ASSERT_SOME(table); // Verifies that there's no mount for slave's working directory. bool mountFound = false; foreach (const fs::MountInfoTable::Entry& entry, table->entries) { if (entry.target == flags.work_dir) { mountFound = true; } } EXPECT_FALSE(mountFound); delete isolator.get(); }