def _test_ext_generic_mkfs(self, fsname, info_fn, label=None, uuid=None): # clean the device succ = BlockDev.fs_clean(self.loop_dev) self.assertTrue(succ) supported, flags, _util = BlockDev.fs_can_mkfs(fsname) if not supported: self.skipTest("skipping %s: not available" % fsname) if flags & BlockDev.FSMkfsOptionsFlags.DRY_RUN: # try dry run first options = BlockDev.FSMkfsOptions(None, None, True, False) succ = BlockDev.fs_mkfs(self.loop_dev, fsname, options) self.assertTrue(succ) fstype = BlockDev.fs_get_fstype(self.loop_dev) self.assertIsNone(fstype) options = BlockDev.FSMkfsOptions(label, uuid, False, False) succ = BlockDev.fs_mkfs(self.loop_dev, fsname, options) self.assertTrue(succ) fstype = BlockDev.fs_get_fstype(self.loop_dev) self.assertEqual(fstype, fsname) info = info_fn(self.loop_dev) self.assertIsNotNone(info) if label: self.assertEqual(info.label, label) if uuid: self.assertEqual(info.uuid, uuid)
def test_ext2_generic_mkfs(self): """ Test generic mkfs with ext2 """ label = "label" uuid = "8802574c-587b-43b9-a6be-9de77759d2c5" self._test_ext_generic_mkfs("ext2", BlockDev.fs_ext2_get_info, label, uuid) # clean the device succ = BlockDev.fs_clean(self.loop_dev) self.assertTrue(succ) options = BlockDev.FSMkfsOptions(label, uuid, False, False) # and try with a custom extra arg (we can get block size from the info) extra = BlockDev.ExtraArg("-b", "4096") succ = BlockDev.fs_mkfs(self.loop_dev, "ext2", options, [extra]) self.assertTrue(succ) fstype = BlockDev.fs_get_fstype(self.loop_dev) self.assertEqual(fstype, "ext2") info = BlockDev.fs_ext2_get_info(self.loop_dev) self.assertEqual(info.label, label) self.assertEqual(info.uuid, uuid) self.assertEqual(info.block_size, 4096)