diff --git a/htest/Test/Ganeti/HTools/Node.hs b/htest/Test/Ganeti/HTools/Node.hs index 13934532e0c1a55a143ad0ac7491512ac37d69a0..2e1acf51687d007113b80046fd7238032419021c 100644 --- a/htest/Test/Ganeti/HTools/Node.hs +++ b/htest/Test/Ganeti/HTools/Node.hs @@ -32,6 +32,7 @@ module Test.Ganeti.HTools.Node , setInstanceSmallerThanNode , genNode , genOnlineNode + , genNodeList ) where import Test.QuickCheck @@ -46,6 +47,7 @@ import Test.Ganeti.TestHTools import Test.Ganeti.HTools.Instance (genInstanceSmallerThanNode) import Ganeti.BasicTypes +import qualified Ganeti.HTools.Loader as Loader import qualified Ganeti.HTools.Container as Container import qualified Ganeti.HTools.Instance as Instance import qualified Ganeti.HTools.Node as Node @@ -97,6 +99,14 @@ genOnlineNode = instance Arbitrary Node.Node where arbitrary = genNode Nothing Nothing +-- | Node list generator. +-- Given a node generator, create a random length node list. Note that "real" +-- clusters always have at least one node, so we don't generate empty node +-- lists here. +genNodeList :: Gen Node.Node -> Gen Node.List +genNodeList ngen = fmap (snd . Loader.assignIndices) names_nodes + where names_nodes = (fmap . map) (\n -> (Node.name n, n)) $ listOf1 ngen + -- * Test cases prop_setAlias :: Node.Node -> String -> Bool