Revision c7d249d0 htest/Test/Ganeti/OpCodes.hs
b/htest/Test/Ganeti/OpCodes.hs | ||
---|---|---|
40 | 40 |
|
41 | 41 |
import Test.Ganeti.TestHelper |
42 | 42 |
import Test.Ganeti.TestCommon |
43 |
import Test.Ganeti.Types () |
|
43 | 44 |
|
44 | 45 |
import qualified Ganeti.Constants as C |
45 | 46 |
import qualified Ganeti.OpCodes as OpCodes |
47 |
import Ganeti.Types |
|
48 |
import Ganeti.OpParams |
|
46 | 49 |
|
47 | 50 |
{-# ANN module "HLint: ignore Use camelCase" #-} |
48 | 51 |
|
... | ... | |
66 | 69 |
case op_id of |
67 | 70 |
"OP_TEST_DELAY" -> |
68 | 71 |
OpCodes.OpTestDelay <$> arbitrary <*> arbitrary |
69 |
<*> resize maxNodes (listOf getFQDN)
|
|
72 |
<*> genNodeNames
|
|
70 | 73 |
"OP_INSTANCE_REPLACE_DISKS" -> |
71 |
OpCodes.OpInstanceReplaceDisks <$> getFQDN <*> getMaybe getFQDN <*>
|
|
72 |
arbitrary <*> resize C.maxDisks arbitrary <*> getMaybe getName
|
|
74 |
OpCodes.OpInstanceReplaceDisks <$> getFQDN <*> |
|
75 |
getMaybe genNodeNameNE <*> arbitrary <*> genDiskIndices <*> arbitrary
|
|
73 | 76 |
"OP_INSTANCE_FAILOVER" -> |
74 | 77 |
OpCodes.OpInstanceFailover <$> getFQDN <*> arbitrary <*> |
75 |
getMaybe getFQDN
|
|
78 |
getMaybe genNodeNameNE
|
|
76 | 79 |
"OP_INSTANCE_MIGRATE" -> |
77 | 80 |
OpCodes.OpInstanceMigrate <$> getFQDN <*> arbitrary <*> |
78 |
arbitrary <*> arbitrary <*> getMaybe getFQDN
|
|
81 |
arbitrary <*> arbitrary <*> getMaybe genNodeNameNE
|
|
79 | 82 |
"OP_TAGS_SET" -> |
80 | 83 |
OpCodes.OpTagsSet <$> arbitrary <*> genTags |
81 | 84 |
"OP_TAGS_DEL" -> |
82 | 85 |
OpCodes.OpTagsSet <$> arbitrary <*> genTags |
83 | 86 |
_ -> fail "Wrong opcode" |
84 | 87 |
|
88 |
-- * Helper functions |
|
89 |
|
|
90 |
-- | Generates list of disk indices. |
|
91 |
genDiskIndices :: Gen [DiskIndex] |
|
92 |
genDiskIndices = do |
|
93 |
cnt <- choose (0, C.maxDisks) |
|
94 |
genUniquesList cnt |
|
95 |
|
|
96 |
-- | Generates a list of node names. |
|
97 |
genNodeNames :: Gen [String] |
|
98 |
genNodeNames = resize maxNodes (listOf getFQDN) |
|
99 |
|
|
100 |
-- | Gets a node name in non-empty type. |
|
101 |
genNodeNameNE :: Gen NonEmptyString |
|
102 |
genNodeNameNE = getFQDN >>= mkNonEmpty |
|
103 |
|
|
85 | 104 |
-- * Test cases |
86 | 105 |
|
87 | 106 |
-- | Check that opcode serialization is idempotent. |
Also available in: Unified diff