[blivet 03/13] Add some additional unit tests in mdraid_tests.py.
mulhern
amulhern at redhat.com
Tue Nov 26 18:47:08 UTC 2013
Also, do integer division instead of floating point division for RAID10
disks.
Signed-off-by: mulhern <amulhern at redhat.com>
---
blivet/devicelibs/mdraid.py | 2 +-
tests/devicelibs_test/mdraid_test.py | 78 +++++++++++++++++++++++++++++++++++-
2 files changed, 77 insertions(+), 3 deletions(-)
diff --git a/blivet/devicelibs/mdraid.py b/blivet/devicelibs/mdraid.py
index 1c21c04..54b7fcf 100644
--- a/blivet/devicelibs/mdraid.py
+++ b/blivet/devicelibs/mdraid.py
@@ -154,7 +154,7 @@ def get_member_space(size, disks, level=None):
elif level == RAID10:
# you need the sum of the member sizes to equal twice your desired
# capacity
- space = size / (disks / 2.0)
+ space = size / (disks / 2)
space += get_raid_superblock_size(size)
diff --git a/tests/devicelibs_test/mdraid_test.py b/tests/devicelibs_test/mdraid_test.py
index 7c68426..f6bb72a 100755
--- a/tests/devicelibs_test/mdraid_test.py
+++ b/tests/devicelibs_test/mdraid_test.py
@@ -23,7 +23,9 @@ class MDRaidTestCase(unittest.TestCase):
# fail
# unsupported raid
- self.assertRaises(errors.MDRaidError, mdraid.get_raid_min_members, 8)
+ self.assertRaisesRegexp(errors.MDRaidError,
+ "invalid raid level",
+ mdraid.get_raid_min_members, 8)
##
## get_raid_max_spares
@@ -37,8 +39,80 @@ class MDRaidTestCase(unittest.TestCase):
# fail
# unsupported raid
- self.assertRaises(errors.MDRaidError, mdraid.get_raid_max_spares, 8, 5)
+ self.assertRaisesRegexp(errors.MDRaidError,
+ "invalid raid level",
+ mdraid.get_raid_max_spares, 8, 5)
+ ##
+ ## get_raid_superblock_size
+ ##
+ self.assertEqual(mdraid.get_raid_superblock_size(256 * 1024), 128)
+ self.assertEqual(mdraid.get_raid_superblock_size(128 * 1024), 128)
+ self.assertEqual(mdraid.get_raid_superblock_size(64 * 1024), 64)
+ self.assertEqual(mdraid.get_raid_superblock_size(63 * 1024), 32)
+ self.assertEqual(mdraid.get_raid_superblock_size(10 * 1024), 8)
+ self.assertEqual(mdraid.get_raid_superblock_size(1024), 1)
+ self.assertEqual(mdraid.get_raid_superblock_size(1023), 0)
+ self.assertEqual(mdraid.get_raid_superblock_size(512), 0)
+
+ self.assertEqual(mdraid.get_raid_superblock_size(257, "version"),
+ mdraid.MD_SUPERBLOCK_SIZE)
+
+ ##
+ ## get_member_space
+ ##
+ self.assertEqual(mdraid.get_member_space(1024, 2, 0), 513 * 2)
+ self.assertEqual(mdraid.get_member_space(1024, 2, 1), 1025 * 2)
+ self.assertEqual(mdraid.get_member_space(1024, 3, 4), 513 * 3)
+ self.assertEqual(mdraid.get_member_space(1024, 3, 5), 513 * 3)
+ self.assertEqual(mdraid.get_member_space(1024, 4, 6), 513 * 4)
+ self.assertEqual(mdraid.get_member_space(1024, 5, 10), 513 * 5)
+
+ # fail
+ # unsupported raid
+ self.assertRaisesRegexp(errors.MDRaidError,
+ "invalid raid level",
+ mdraid.get_member_space, 1024, 0)
+
+ # fail
+ # not enough disks
+ self.assertRaisesRegexp(errors.MDRaidError,
+ "requires at least",
+ mdraid.get_member_space, 1024, 0, 0)
+
+ ##
+ ## isRaid
+ ##
+ self.assertTrue(mdraid.isRaid(0, "RAID0"))
+ self.assertFalse(mdraid.isRaid(6, "RAID0"))
+
+ # fail
+ # invalid raid
+ self.assertRaisesRegexp(errors.MDRaidError,
+ "invalid raid level",
+ mdraid.isRaid, 7, "RAID")
+
+ ##
+ ## raidLevel
+ ##
+ self.assertEqual(mdraid.raidLevel("RAID0"), 0)
+
+ # fail
+ # invalid raid
+ self.assertRaisesRegexp(errors.MDRaidError,
+ "invalid raid level",
+ mdraid.raidLevel, "RAID")
+
+ ##
+ ## raidLevelString
+ ##
+ self.assertEqual(mdraid.raidLevelString(0), "raid0")
+
+ # fail
+ # invalid constant
+ self.assertRaisesRegexp(errors.MDRaidError,
+ "invalid raid level constant",
+ mdraid.raidLevelString, -1)
class MDRaidAsRootTestCase(baseclass.DevicelibsTestCase):
--
1.8.3.1
More information about the anaconda-patches
mailing list