def testUnmountTree(self): with osutils.TempDir(prefix='chromite.test.osutils') as tempdir: # Mount the dir and verify it worked. st_before = os.stat(tempdir) osutils.MountTmpfsDir(tempdir) st_after = os.stat(tempdir) self.assertNotEqual(st_before.st_dev, st_after.st_dev) # Mount an inner dir the same way. tempdir2 = os.path.join(tempdir, 'inner') osutils.SafeMakedirsNonRoot(tempdir2) st_before2 = os.stat(tempdir2) osutils.MountTmpfsDir(tempdir2) st_after2 = os.stat(tempdir2) self.assertNotEqual(st_before2.st_dev, st_after2.st_dev) # Unmount the whole tree and verify it worked. osutils.UmountTree(tempdir) st_umount = os.stat(tempdir) self.assertNotExists(tempdir2) self.assertEqual(st_before.st_dev, st_umount.st_dev)
def testMountTmpfsDir(self): """Verify mounting a tmpfs works""" cleaned = False with osutils.TempDir(prefix='chromite.test.osutils') as tempdir: st_before = os.stat(tempdir) try: # Mount the dir and verify it worked. osutils.MountTmpfsDir(tempdir) st_after = os.stat(tempdir) self.assertNotEqual(st_before.st_dev, st_after.st_dev) # Unmount the dir and verify it worked. osutils.UmountDir(tempdir) cleaned = True # Finally make sure it's cleaned up. self.assertFalse(os.path.exists(tempdir)) finally: if not cleaned: cros_build_lib.SudoRunCommand(['umount', '-lf', tempdir], error_code_ok=True)