[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