Revision 5ef4fbb1
b/htest/Test/Ganeti/OpCodes.hs | ||
---|---|---|
66 | 66 |
instance Arbitrary OpCodes.DiskIndex where |
67 | 67 |
arbitrary = choose (0, C.maxDisks - 1) >>= OpCodes.mkDiskIndex |
68 | 68 |
|
69 |
$(genArbitrary ''INicParams) |
|
69 |
instance Arbitrary INicParams where |
|
70 |
arbitrary = INicParams <$> getMaybe genNameNE <*> getMaybe getName <*> |
|
71 |
getMaybe genNameNE <*> getMaybe genNameNE |
|
70 | 72 |
|
71 | 73 |
instance Arbitrary OpCodes.OpCode where |
72 | 74 |
arbitrary = do |
... | ... | |
77 | 79 |
<*> genNodeNames |
78 | 80 |
"OP_INSTANCE_REPLACE_DISKS" -> |
79 | 81 |
OpCodes.OpInstanceReplaceDisks <$> getFQDN <*> |
80 |
getMaybe genNodeNameNE <*> arbitrary <*> genDiskIndices <*> arbitrary |
|
82 |
getMaybe genNodeNameNE <*> arbitrary <*> genDiskIndices <*> |
|
83 |
getMaybe genNameNE |
|
81 | 84 |
"OP_INSTANCE_FAILOVER" -> |
82 | 85 |
OpCodes.OpInstanceFailover <$> getFQDN <*> arbitrary <*> |
83 | 86 |
getMaybe genNodeNameNE |
... | ... | |
93 | 96 |
"OP_CLUSTER_QUERY" -> pure OpCodes.OpClusterQuery |
94 | 97 |
"OP_CLUSTER_VERIFY" -> |
95 | 98 |
OpCodes.OpClusterVerify <$> arbitrary <*> arbitrary <*> |
96 |
genSet Nothing <*> genSet Nothing <*> arbitrary <*> arbitrary |
|
99 |
genSet Nothing <*> genSet Nothing <*> arbitrary <*> |
|
100 |
getMaybe genNameNE |
|
97 | 101 |
"OP_CLUSTER_VERIFY_CONFIG" -> |
98 | 102 |
OpCodes.OpClusterVerifyConfig <$> arbitrary <*> arbitrary <*> |
99 | 103 |
genSet Nothing <*> arbitrary |
100 | 104 |
"OP_CLUSTER_VERIFY_GROUP" -> |
101 |
OpCodes.OpClusterVerifyGroup <$> arbitrary <*> arbitrary <*>
|
|
105 |
OpCodes.OpClusterVerifyGroup <$> genNameNE <*> arbitrary <*>
|
|
102 | 106 |
arbitrary <*> genSet Nothing <*> genSet Nothing <*> arbitrary |
103 | 107 |
"OP_CLUSTER_VERIFY_DISKS" -> pure OpCodes.OpClusterVerifyDisks |
104 | 108 |
"OP_GROUP_VERIFY_DISKS" -> |
105 |
OpCodes.OpGroupVerifyDisks <$> arbitrary
|
|
109 |
OpCodes.OpGroupVerifyDisks <$> genNameNE
|
|
106 | 110 |
"OP_CLUSTER_REPAIR_DISK_SIZES" -> |
107 | 111 |
OpCodes.OpClusterRepairDiskSizes <$> |
108 | 112 |
resize maxNodes (listOf (getFQDN >>= mkNonEmpty)) |
109 | 113 |
"OP_CLUSTER_CONFIG_QUERY" -> |
110 |
OpCodes.OpClusterConfigQuery <$> resize maxNodes arbitrary
|
|
114 |
OpCodes.OpClusterConfigQuery <$> genFieldsNE
|
|
111 | 115 |
"OP_CLUSTER_RENAME" -> |
112 | 116 |
OpCodes.OpClusterRename <$> (getName >>= mkNonEmpty) |
113 | 117 |
"OP_CLUSTER_SET_PARAMS" -> |
... | ... | |
135 | 139 |
arbitrary <*> arbitrary <*> (arbitrary `suchThat` (>0)) |
136 | 140 |
"OP_NODE_REMOVE" -> OpCodes.OpNodeRemove <$> (getFQDN >>= mkNonEmpty) |
137 | 141 |
"OP_NODE_ADD" -> |
138 |
OpCodes.OpNodeAdd <$> (getFQDN >>= mkNonEmpty) <*> |
|
139 |
emptyMUD <*> emptyMUD <*> |
|
140 |
arbitrary <*> arbitrary <*> arbitrary <*> arbitrary <*> |
|
141 |
arbitrary <*> arbitrary <*> emptyMUD |
|
142 |
OpCodes.OpNodeAdd <$> genNodeNameNE <*> emptyMUD <*> emptyMUD <*> |
|
143 |
getMaybe getName <*> getMaybe genNameNE <*> arbitrary <*> |
|
144 |
getMaybe genNameNE <*> arbitrary <*> arbitrary <*> emptyMUD |
|
142 | 145 |
"OP_NODE_QUERY" -> |
143 | 146 |
OpCodes.OpNodeQuery <$> arbitrary <*> arbitrary <*> arbitrary |
144 | 147 |
"OP_NODE_QUERYVOLS" -> |
145 | 148 |
OpCodes.OpNodeQueryvols <$> arbitrary <*> genNodeNamesNE |
146 | 149 |
"OP_NODE_QUERY_STORAGE" -> |
147 | 150 |
OpCodes.OpNodeQueryStorage <$> arbitrary <*> arbitrary <*> |
148 |
genNodeNamesNE <*> arbitrary
|
|
151 |
genNodeNamesNE <*> genNameNE
|
|
149 | 152 |
"OP_NODE_MODIFY_STORAGE" -> |
150 | 153 |
OpCodes.OpNodeModifyStorage <$> genNodeNameNE <*> arbitrary <*> |
151 |
arbitrary <*> pure emptyJSObject
|
|
154 |
genNameNE <*> pure emptyJSObject
|
|
152 | 155 |
"OP_REPAIR_NODE_STORAGE" -> |
153 | 156 |
OpCodes.OpRepairNodeStorage <$> genNodeNameNE <*> arbitrary <*> |
154 |
arbitrary <*> arbitrary
|
|
157 |
genNameNE <*> arbitrary
|
|
155 | 158 |
"OP_NODE_SET_PARAMS" -> |
156 | 159 |
OpCodes.OpNodeSetParams <$> genNodeNameNE <*> arbitrary <*> |
157 | 160 |
emptyMUD <*> emptyMUD <*> arbitrary <*> arbitrary <*> arbitrary <*> |
158 |
arbitrary <*> arbitrary <*> arbitrary <*> arbitrary <*>
|
|
161 |
arbitrary <*> arbitrary <*> arbitrary <*> getMaybe genNameNE <*>
|
|
159 | 162 |
emptyMUD |
160 | 163 |
"OP_NODE_POWERCYCLE" -> |
161 | 164 |
OpCodes.OpNodePowercycle <$> genNodeNameNE <*> arbitrary |
162 | 165 |
"OP_NODE_MIGRATE" -> |
163 | 166 |
OpCodes.OpNodeMigrate <$> genNodeNameNE <*> arbitrary <*> |
164 |
arbitrary <*> arbitrary <*> arbitrary <*> arbitrary <*>
|
|
165 |
arbitrary |
|
167 |
arbitrary <*> getMaybe genNodeNameNE <*> arbitrary <*>
|
|
168 |
arbitrary <*> getMaybe genNameNE
|
|
166 | 169 |
"OP_NODE_EVACUATE" -> |
167 | 170 |
OpCodes.OpNodeEvacuate <$> arbitrary <*> genNodeNameNE <*> |
168 |
getMaybe genNodeNameNE <*> arbitrary <*> arbitrary
|
|
171 |
getMaybe genNodeNameNE <*> getMaybe genNameNE <*> arbitrary
|
|
169 | 172 |
_ -> fail $ "Undefined arbitrary for opcode " ++ op_id |
170 | 173 |
|
171 | 174 |
-- * Helper functions |
... | ... | |
200 | 203 |
genNodeNameNE :: Gen NonEmptyString |
201 | 204 |
genNodeNameNE = getFQDN >>= mkNonEmpty |
202 | 205 |
|
206 |
-- | Gets a name (non-fqdn) in non-empty type. |
|
207 |
genNameNE :: Gen NonEmptyString |
|
208 |
genNameNE = getName >>= mkNonEmpty |
|
209 |
|
|
210 |
-- | Returns a list of non-empty fields. |
|
211 |
genFieldsNE :: Gen [NonEmptyString] |
|
212 |
genFieldsNE = getFields >>= mapM mkNonEmpty |
|
213 |
|
|
203 | 214 |
-- * Test cases |
204 | 215 |
|
205 | 216 |
-- | Check that opcode serialization is idempotent. |
Also available in: Unified diff