Revision 5006418e
b/htest/Test/Ganeti/Confd/Utils.hs | ||
---|---|---|
49 | 49 |
|
50 | 50 |
instance Arbitrary Confd.ConfdQuery where |
51 | 51 |
arbitrary = oneof [ pure Confd.EmptyQuery |
52 |
, Confd.PlainQuery <$> getName
|
|
52 |
, Confd.PlainQuery <$> genName
|
|
53 | 53 |
, Confd.DictQuery <$> arbitrary |
54 | 54 |
] |
55 | 55 |
|
b/htest/Test/Ganeti/HTools/Instance.hs | ||
---|---|---|
49 | 49 |
-- | Generates a random instance with maximum disk/mem/cpu values. |
50 | 50 |
genInstanceSmallerThan :: Int -> Int -> Int -> Gen Instance.Instance |
51 | 51 |
genInstanceSmallerThan lim_mem lim_dsk lim_cpu = do |
52 |
name <- getFQDN
|
|
52 |
name <- genFQDN
|
|
53 | 53 |
mem <- choose (0, lim_mem) |
54 | 54 |
dsk <- choose (0, lim_dsk) |
55 | 55 |
run_st <- arbitrary |
b/htest/Test/Ganeti/HTools/Node.hs | ||
---|---|---|
71 | 71 |
mm * Types.unitDsk, |
72 | 72 |
mm * Types.unitCpu) |
73 | 73 |
Nothing -> (maxMem, maxDsk, maxCpu) |
74 |
name <- getFQDN
|
|
74 |
name <- genFQDN
|
|
75 | 75 |
mem_t <- choose (base_mem, top_mem) |
76 | 76 |
mem_f <- choose (base_mem, mem_t) |
77 | 77 |
mem_n <- choose (0, mem_t - mem_f) |
b/htest/Test/Ganeti/Luxi.hs | ||
---|---|---|
58 | 58 |
arbitrary = do |
59 | 59 |
lreq <- arbitrary |
60 | 60 |
case lreq of |
61 |
Luxi.ReqQuery -> Luxi.Query <$> arbitrary <*> getFields <*> genFilter
|
|
62 |
Luxi.ReqQueryFields -> Luxi.QueryFields <$> arbitrary <*> getFields
|
|
63 |
Luxi.ReqQueryNodes -> Luxi.QueryNodes <$> listOf getFQDN <*>
|
|
64 |
getFields <*> arbitrary
|
|
61 |
Luxi.ReqQuery -> Luxi.Query <$> arbitrary <*> genFields <*> genFilter
|
|
62 |
Luxi.ReqQueryFields -> Luxi.QueryFields <$> arbitrary <*> genFields
|
|
63 |
Luxi.ReqQueryNodes -> Luxi.QueryNodes <$> listOf genFQDN <*>
|
|
64 |
genFields <*> arbitrary
|
|
65 | 65 |
Luxi.ReqQueryGroups -> Luxi.QueryGroups <$> arbitrary <*> |
66 | 66 |
arbitrary <*> arbitrary |
67 |
Luxi.ReqQueryInstances -> Luxi.QueryInstances <$> listOf getFQDN <*>
|
|
68 |
getFields <*> arbitrary
|
|
69 |
Luxi.ReqQueryJobs -> Luxi.QueryJobs <$> arbitrary <*> getFields
|
|
67 |
Luxi.ReqQueryInstances -> Luxi.QueryInstances <$> listOf genFQDN <*>
|
|
68 |
genFields <*> arbitrary
|
|
69 |
Luxi.ReqQueryJobs -> Luxi.QueryJobs <$> arbitrary <*> genFields
|
|
70 | 70 |
Luxi.ReqQueryExports -> Luxi.QueryExports <$> |
71 |
listOf getFQDN <*> arbitrary
|
|
72 |
Luxi.ReqQueryConfigValues -> Luxi.QueryConfigValues <$> getFields
|
|
71 |
listOf genFQDN <*> arbitrary
|
|
72 |
Luxi.ReqQueryConfigValues -> Luxi.QueryConfigValues <$> genFields
|
|
73 | 73 |
Luxi.ReqQueryClusterInfo -> pure Luxi.QueryClusterInfo |
74 | 74 |
Luxi.ReqQueryTags -> Luxi.QueryTags <$> arbitrary |
75 | 75 |
Luxi.ReqSubmitJob -> Luxi.SubmitJob <$> resize maxOpCodes arbitrary |
76 | 76 |
Luxi.ReqSubmitManyJobs -> Luxi.SubmitManyJobs <$> |
77 | 77 |
resize maxOpCodes arbitrary |
78 | 78 |
Luxi.ReqWaitForJobChange -> Luxi.WaitForJobChange <$> arbitrary <*> |
79 |
getFields <*> pure J.JSNull <*>
|
|
79 |
genFields <*> pure J.JSNull <*>
|
|
80 | 80 |
pure J.JSNull <*> arbitrary |
81 | 81 |
Luxi.ReqArchiveJob -> Luxi.ArchiveJob <$> arbitrary |
82 | 82 |
Luxi.ReqAutoArchiveJobs -> Luxi.AutoArchiveJobs <$> arbitrary <*> |
b/htest/Test/Ganeti/Objects.hs | ||
---|---|---|
53 | 53 |
$(genArbitrary ''PartialNDParams) |
54 | 54 |
|
55 | 55 |
instance Arbitrary Node where |
56 |
arbitrary = Node <$> getFQDN <*> getFQDN <*> getFQDN
|
|
57 |
<*> arbitrary <*> arbitrary <*> arbitrary <*> getFQDN
|
|
56 |
arbitrary = Node <$> genFQDN <*> genFQDN <*> genFQDN
|
|
57 |
<*> arbitrary <*> arbitrary <*> arbitrary <*> genFQDN
|
|
58 | 58 |
<*> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary |
59 |
<*> arbitrary <*> arbitrary <*> getFQDN <*> arbitrary
|
|
59 |
<*> arbitrary <*> arbitrary <*> genFQDN <*> arbitrary
|
|
60 | 60 |
<*> (Set.fromList <$> genTags) |
61 | 61 |
|
62 | 62 |
$(genArbitrary ''BlockDriver) |
... | ... | |
65 | 65 |
|
66 | 66 |
instance Arbitrary DiskLogicalId where |
67 | 67 |
arbitrary = oneof [ LIDPlain <$> arbitrary <*> arbitrary |
68 |
, LIDDrbd8 <$> getFQDN <*> getFQDN <*> arbitrary
|
|
68 |
, LIDDrbd8 <$> genFQDN <*> genFQDN <*> arbitrary
|
|
69 | 69 |
<*> arbitrary <*> arbitrary <*> arbitrary |
70 | 70 |
, LIDFile <$> arbitrary <*> arbitrary |
71 | 71 |
, LIDBlockDev <$> arbitrary <*> arbitrary |
... | ... | |
92 | 92 |
instance Arbitrary Instance where |
93 | 93 |
arbitrary = |
94 | 94 |
Instance |
95 |
<$> getFQDN <*> getFQDN <*> getFQDN -- OS name, but...
|
|
95 |
<$> genFQDN <*> genFQDN <*> genFQDN -- OS name, but...
|
|
96 | 96 |
<*> arbitrary |
97 | 97 |
-- FIXME: add non-empty hvparams when they're a proper type |
98 | 98 |
<*> pure (GenericContainer Map.empty) <*> arbitrary |
... | ... | |
119 | 119 |
-- | FIXME: This generates completely random data, without normal |
120 | 120 |
-- validation rules. |
121 | 121 |
instance Arbitrary NodeGroup where |
122 |
arbitrary = NodeGroup <$> getFQDN <*> pure [] <*> arbitrary <*> arbitrary
|
|
122 |
arbitrary = NodeGroup <$> genFQDN <*> pure [] <*> arbitrary <*> arbitrary
|
|
123 | 123 |
<*> arbitrary <*> pure (GenericContainer Map.empty) |
124 | 124 |
-- ts |
125 | 125 |
<*> arbitrary <*> arbitrary |
b/htest/Test/Ganeti/OpCodes.hs | ||
---|---|---|
56 | 56 |
-- * Arbitrary instances |
57 | 57 |
|
58 | 58 |
instance Arbitrary OpCodes.TagObject where |
59 |
arbitrary = oneof [ OpCodes.TagInstance <$> getFQDN
|
|
60 |
, OpCodes.TagNode <$> getFQDN
|
|
61 |
, OpCodes.TagGroup <$> getFQDN
|
|
59 |
arbitrary = oneof [ OpCodes.TagInstance <$> genFQDN
|
|
60 |
, OpCodes.TagNode <$> genFQDN
|
|
61 |
, OpCodes.TagGroup <$> genFQDN
|
|
62 | 62 |
, pure OpCodes.TagCluster |
63 | 63 |
] |
64 | 64 |
|
... | ... | |
70 | 70 |
arbitrary = choose (0, C.maxDisks - 1) >>= OpCodes.mkDiskIndex |
71 | 71 |
|
72 | 72 |
instance Arbitrary INicParams where |
73 |
arbitrary = INicParams <$> getMaybe genNameNE <*> getMaybe getName <*>
|
|
74 |
getMaybe genNameNE <*> getMaybe genNameNE
|
|
73 |
arbitrary = INicParams <$> genMaybe genNameNE <*> genMaybe genName <*>
|
|
74 |
genMaybe genNameNE <*> genMaybe genNameNE
|
|
75 | 75 |
|
76 | 76 |
instance Arbitrary IDiskParams where |
77 | 77 |
arbitrary = IDiskParams <$> arbitrary <*> arbitrary <*> |
78 |
getMaybe genNameNE <*> getMaybe genNameNE <*>
|
|
79 |
getMaybe genNameNE
|
|
78 |
genMaybe genNameNE <*> genMaybe genNameNE <*>
|
|
79 |
genMaybe genNameNE
|
|
80 | 80 |
|
81 | 81 |
instance Arbitrary RecreateDisksInfo where |
82 | 82 |
arbitrary = oneof [ pure RecreateDisksAll |
... | ... | |
108 | 108 |
OpCodes.OpTestDelay <$> arbitrary <*> arbitrary |
109 | 109 |
<*> genNodeNames <*> arbitrary |
110 | 110 |
"OP_INSTANCE_REPLACE_DISKS" -> |
111 |
OpCodes.OpInstanceReplaceDisks <$> getFQDN <*>
|
|
112 |
getMaybe genNodeNameNE <*> arbitrary <*> genDiskIndices <*>
|
|
113 |
getMaybe genNameNE
|
|
111 |
OpCodes.OpInstanceReplaceDisks <$> genFQDN <*>
|
|
112 |
genMaybe genNodeNameNE <*> arbitrary <*> genDiskIndices <*>
|
|
113 |
genMaybe genNameNE
|
|
114 | 114 |
"OP_INSTANCE_FAILOVER" -> |
115 |
OpCodes.OpInstanceFailover <$> getFQDN <*> arbitrary <*>
|
|
116 |
getMaybe genNodeNameNE
|
|
115 |
OpCodes.OpInstanceFailover <$> genFQDN <*> arbitrary <*>
|
|
116 |
genMaybe genNodeNameNE
|
|
117 | 117 |
"OP_INSTANCE_MIGRATE" -> |
118 |
OpCodes.OpInstanceMigrate <$> getFQDN <*> arbitrary <*>
|
|
119 |
arbitrary <*> arbitrary <*> getMaybe genNodeNameNE
|
|
118 |
OpCodes.OpInstanceMigrate <$> genFQDN <*> arbitrary <*>
|
|
119 |
arbitrary <*> arbitrary <*> genMaybe genNodeNameNE
|
|
120 | 120 |
"OP_TAGS_GET" -> |
121 | 121 |
OpCodes.OpTagsGet <$> arbitrary <*> arbitrary |
122 | 122 |
"OP_TAGS_SEARCH" -> |
... | ... | |
131 | 131 |
"OP_CLUSTER_VERIFY" -> |
132 | 132 |
OpCodes.OpClusterVerify <$> arbitrary <*> arbitrary <*> |
133 | 133 |
genSet Nothing <*> genSet Nothing <*> arbitrary <*> |
134 |
getMaybe genNameNE
|
|
134 |
genMaybe genNameNE
|
|
135 | 135 |
"OP_CLUSTER_VERIFY_CONFIG" -> |
136 | 136 |
OpCodes.OpClusterVerifyConfig <$> arbitrary <*> arbitrary <*> |
137 | 137 |
genSet Nothing <*> arbitrary |
... | ... | |
142 | 142 |
"OP_GROUP_VERIFY_DISKS" -> |
143 | 143 |
OpCodes.OpGroupVerifyDisks <$> genNameNE |
144 | 144 |
"OP_CLUSTER_REPAIR_DISK_SIZES" -> |
145 |
OpCodes.OpClusterRepairDiskSizes <$> |
|
146 |
resize maxNodes (listOf (getFQDN >>= mkNonEmpty)) |
|
145 |
OpCodes.OpClusterRepairDiskSizes <$> genNodeNamesNE |
|
147 | 146 |
"OP_CLUSTER_CONFIG_QUERY" -> |
148 | 147 |
OpCodes.OpClusterConfigQuery <$> genFieldsNE |
149 | 148 |
"OP_CLUSTER_RENAME" -> |
150 |
OpCodes.OpClusterRename <$> (getName >>= mkNonEmpty)
|
|
149 |
OpCodes.OpClusterRename <$> genNameNE
|
|
151 | 150 |
"OP_CLUSTER_SET_PARAMS" -> |
152 | 151 |
OpCodes.OpClusterSetParams <$> emptyMUD <*> emptyMUD <*> |
153 |
arbitrary <*> getMaybe (listOf1 arbitrary >>= mkNonEmpty) <*>
|
|
154 |
getMaybe genEmptyContainer <*> emptyMUD <*>
|
|
155 |
getMaybe genEmptyContainer <*> getMaybe genEmptyContainer <*>
|
|
156 |
getMaybe genEmptyContainer <*> getMaybe arbitrary <*>
|
|
152 |
arbitrary <*> genMaybe (listOf1 arbitrary >>= mkNonEmpty) <*>
|
|
153 |
genMaybe genEmptyContainer <*> emptyMUD <*>
|
|
154 |
genMaybe genEmptyContainer <*> genMaybe genEmptyContainer <*>
|
|
155 |
genMaybe genEmptyContainer <*> genMaybe arbitrary <*>
|
|
157 | 156 |
arbitrary <*> arbitrary <*> arbitrary <*> |
158 | 157 |
arbitrary <*> arbitrary <*> arbitrary <*> |
159 | 158 |
emptyMUD <*> emptyMUD <*> arbitrary <*> |
... | ... | |
171 | 170 |
"OP_OOB_COMMAND" -> |
172 | 171 |
OpCodes.OpOobCommand <$> genNodeNamesNE <*> arbitrary <*> |
173 | 172 |
arbitrary <*> arbitrary <*> (arbitrary `suchThat` (>0)) |
174 |
"OP_NODE_REMOVE" -> OpCodes.OpNodeRemove <$> (getFQDN >>= mkNonEmpty)
|
|
173 |
"OP_NODE_REMOVE" -> OpCodes.OpNodeRemove <$> genNodeNameNE
|
|
175 | 174 |
"OP_NODE_ADD" -> |
176 | 175 |
OpCodes.OpNodeAdd <$> genNodeNameNE <*> emptyMUD <*> emptyMUD <*> |
177 |
getMaybe getName <*> getMaybe genNameNE <*> arbitrary <*>
|
|
178 |
getMaybe genNameNE <*> arbitrary <*> arbitrary <*> emptyMUD
|
|
176 |
genMaybe genName <*> genMaybe genNameNE <*> arbitrary <*>
|
|
177 |
genMaybe genNameNE <*> arbitrary <*> arbitrary <*> emptyMUD
|
|
179 | 178 |
"OP_NODE_QUERY" -> |
180 | 179 |
OpCodes.OpNodeQuery <$> genFieldsNE <*> arbitrary <*> genNamesNE |
181 | 180 |
"OP_NODE_QUERYVOLS" -> |
... | ... | |
192 | 191 |
"OP_NODE_SET_PARAMS" -> |
193 | 192 |
OpCodes.OpNodeSetParams <$> genNodeNameNE <*> arbitrary <*> |
194 | 193 |
emptyMUD <*> emptyMUD <*> arbitrary <*> arbitrary <*> arbitrary <*> |
195 |
arbitrary <*> arbitrary <*> arbitrary <*> getMaybe genNameNE <*>
|
|
194 |
arbitrary <*> arbitrary <*> arbitrary <*> genMaybe genNameNE <*>
|
|
196 | 195 |
emptyMUD |
197 | 196 |
"OP_NODE_POWERCYCLE" -> |
198 | 197 |
OpCodes.OpNodePowercycle <$> genNodeNameNE <*> arbitrary |
199 | 198 |
"OP_NODE_MIGRATE" -> |
200 | 199 |
OpCodes.OpNodeMigrate <$> genNodeNameNE <*> arbitrary <*> |
201 |
arbitrary <*> getMaybe genNodeNameNE <*> arbitrary <*>
|
|
202 |
arbitrary <*> getMaybe genNameNE
|
|
200 |
arbitrary <*> genMaybe genNodeNameNE <*> arbitrary <*>
|
|
201 |
arbitrary <*> genMaybe genNameNE
|
|
203 | 202 |
"OP_NODE_EVACUATE" -> |
204 | 203 |
OpCodes.OpNodeEvacuate <$> arbitrary <*> genNodeNameNE <*> |
205 |
getMaybe genNodeNameNE <*> getMaybe genNameNE <*> arbitrary
|
|
204 |
genMaybe genNodeNameNE <*> genMaybe genNameNE <*> arbitrary
|
|
206 | 205 |
"OP_INSTANCE_CREATE" -> |
207 |
OpCodes.OpInstanceCreate <$> getFQDN <*> arbitrary <*>
|
|
206 |
OpCodes.OpInstanceCreate <$> genFQDN <*> arbitrary <*>
|
|
208 | 207 |
arbitrary <*> arbitrary <*> arbitrary <*> pure emptyJSObject <*> |
209 |
arbitrary <*> arbitrary <*> arbitrary <*> getMaybe genNameNE <*>
|
|
210 |
pure emptyJSObject <*> arbitrary <*> getMaybe genNameNE <*>
|
|
208 |
arbitrary <*> arbitrary <*> arbitrary <*> genMaybe genNameNE <*>
|
|
209 |
pure emptyJSObject <*> arbitrary <*> genMaybe genNameNE <*>
|
|
211 | 210 |
arbitrary <*> arbitrary <*> arbitrary <*> arbitrary <*> |
212 | 211 |
arbitrary <*> arbitrary <*> pure emptyJSObject <*> |
213 |
getMaybe genNameNE <*>
|
|
214 |
getMaybe genNodeNameNE <*> getMaybe genNodeNameNE <*>
|
|
215 |
getMaybe (pure []) <*> getMaybe genNodeNameNE <*>
|
|
216 |
arbitrary <*> getMaybe genNodeNameNE <*>
|
|
217 |
getMaybe genNodeNameNE <*> getMaybe genNameNE <*>
|
|
212 |
genMaybe genNameNE <*>
|
|
213 |
genMaybe genNodeNameNE <*> genMaybe genNodeNameNE <*>
|
|
214 |
genMaybe (pure []) <*> genMaybe genNodeNameNE <*>
|
|
215 |
arbitrary <*> genMaybe genNodeNameNE <*>
|
|
216 |
genMaybe genNodeNameNE <*> genMaybe genNameNE <*>
|
|
218 | 217 |
arbitrary <*> (genTags >>= mapM mkNonEmpty) |
219 | 218 |
"OP_INSTANCE_MULTI_ALLOC" -> |
220 |
OpCodes.OpInstanceMultiAlloc <$> getMaybe genNameNE <*> pure []
|
|
219 |
OpCodes.OpInstanceMultiAlloc <$> genMaybe genNameNE <*> pure []
|
|
221 | 220 |
"OP_INSTANCE_REINSTALL" -> |
222 |
OpCodes.OpInstanceReinstall <$> getFQDN <*> arbitrary <*>
|
|
223 |
getMaybe genNameNE <*> getMaybe (pure emptyJSObject)
|
|
221 |
OpCodes.OpInstanceReinstall <$> genFQDN <*> arbitrary <*>
|
|
222 |
genMaybe genNameNE <*> genMaybe (pure emptyJSObject)
|
|
224 | 223 |
"OP_INSTANCE_REMOVE" -> |
225 |
OpCodes.OpInstanceRemove <$> getFQDN <*> arbitrary <*> arbitrary
|
|
224 |
OpCodes.OpInstanceRemove <$> genFQDN <*> arbitrary <*> arbitrary
|
|
226 | 225 |
"OP_INSTANCE_RENAME" -> |
227 |
OpCodes.OpInstanceRename <$> getFQDN <*> genNodeNameNE <*>
|
|
226 |
OpCodes.OpInstanceRename <$> genFQDN <*> genNodeNameNE <*>
|
|
228 | 227 |
arbitrary <*> arbitrary |
229 | 228 |
"OP_INSTANCE_STARTUP" -> |
230 |
OpCodes.OpInstanceStartup <$> getFQDN <*> arbitrary <*> arbitrary <*>
|
|
229 |
OpCodes.OpInstanceStartup <$> genFQDN <*> arbitrary <*> arbitrary <*>
|
|
231 | 230 |
pure emptyJSObject <*> pure emptyJSObject <*> |
232 | 231 |
arbitrary <*> arbitrary |
233 | 232 |
"OP_INSTANCE_SHUTDOWN" -> |
234 |
OpCodes.OpInstanceShutdown <$> getFQDN <*> arbitrary <*>
|
|
233 |
OpCodes.OpInstanceShutdown <$> genFQDN <*> arbitrary <*>
|
|
235 | 234 |
arbitrary <*> arbitrary |
236 | 235 |
"OP_INSTANCE_REBOOT" -> |
237 |
OpCodes.OpInstanceReboot <$> getFQDN <*> arbitrary <*>
|
|
236 |
OpCodes.OpInstanceReboot <$> genFQDN <*> arbitrary <*>
|
|
238 | 237 |
arbitrary <*> arbitrary |
239 | 238 |
"OP_INSTANCE_MOVE" -> |
240 |
OpCodes.OpInstanceMove <$> getFQDN <*> arbitrary <*> arbitrary <*>
|
|
239 |
OpCodes.OpInstanceMove <$> genFQDN <*> arbitrary <*> arbitrary <*>
|
|
241 | 240 |
genNodeNameNE <*> arbitrary |
242 |
"OP_INSTANCE_CONSOLE" -> OpCodes.OpInstanceConsole <$> getFQDN
|
|
241 |
"OP_INSTANCE_CONSOLE" -> OpCodes.OpInstanceConsole <$> genFQDN
|
|
243 | 242 |
"OP_INSTANCE_ACTIVATE_DISKS" -> |
244 |
OpCodes.OpInstanceActivateDisks <$> getFQDN <*>
|
|
243 |
OpCodes.OpInstanceActivateDisks <$> genFQDN <*>
|
|
245 | 244 |
arbitrary <*> arbitrary |
246 | 245 |
"OP_INSTANCE_DEACTIVATE_DISKS" -> |
247 |
OpCodes.OpInstanceDeactivateDisks <$> getFQDN <*> arbitrary
|
|
246 |
OpCodes.OpInstanceDeactivateDisks <$> genFQDN <*> arbitrary
|
|
248 | 247 |
"OP_INSTANCE_RECREATE_DISKS" -> |
249 |
OpCodes.OpInstanceRecreateDisks <$> getFQDN <*> arbitrary <*>
|
|
250 |
genNodeNamesNE <*> getMaybe genNameNE
|
|
248 |
OpCodes.OpInstanceRecreateDisks <$> genFQDN <*> arbitrary <*>
|
|
249 |
genNodeNamesNE <*> genMaybe genNameNE
|
|
251 | 250 |
"OP_INSTANCE_QUERY" -> |
252 | 251 |
OpCodes.OpInstanceQuery <$> genFieldsNE <*> genNamesNE <*> arbitrary |
253 | 252 |
"OP_INSTANCE_QUERY_DATA" -> |
254 | 253 |
OpCodes.OpInstanceQueryData <$> arbitrary <*> |
255 | 254 |
genNodeNamesNE <*> arbitrary |
256 | 255 |
"OP_INSTANCE_SET_PARAMS" -> |
257 |
OpCodes.OpInstanceSetParams <$> getFQDN <*> arbitrary <*>
|
|
256 |
OpCodes.OpInstanceSetParams <$> genFQDN <*> arbitrary <*>
|
|
258 | 257 |
arbitrary <*> arbitrary <*> arbitrary <*> arbitrary <*> |
259 | 258 |
pure emptyJSObject <*> arbitrary <*> pure emptyJSObject <*> |
260 |
arbitrary <*> getMaybe genNodeNameNE <*> getMaybe genNameNE <*>
|
|
259 |
arbitrary <*> genMaybe genNodeNameNE <*> genMaybe genNameNE <*>
|
|
261 | 260 |
pure emptyJSObject <*> arbitrary <*> arbitrary <*> arbitrary |
262 | 261 |
"OP_INSTANCE_GROW_DISK" -> |
263 |
OpCodes.OpInstanceGrowDisk <$> getFQDN <*> arbitrary <*>
|
|
262 |
OpCodes.OpInstanceGrowDisk <$> genFQDN <*> arbitrary <*>
|
|
264 | 263 |
arbitrary <*> arbitrary <*> arbitrary |
265 | 264 |
"OP_INSTANCE_CHANGE_GROUP" -> |
266 |
OpCodes.OpInstanceChangeGroup <$> getFQDN <*> arbitrary <*>
|
|
267 |
getMaybe genNameNE <*> getMaybe (resize maxNodes (listOf genNameNE))
|
|
265 |
OpCodes.OpInstanceChangeGroup <$> genFQDN <*> arbitrary <*>
|
|
266 |
genMaybe genNameNE <*> genMaybe (resize maxNodes (listOf genNameNE))
|
|
268 | 267 |
"OP_GROUP_ADD" -> |
269 | 268 |
OpCodes.OpGroupAdd <$> genNameNE <*> arbitrary <*> |
270 |
emptyMUD <*> getMaybe genEmptyContainer <*>
|
|
269 |
emptyMUD <*> genMaybe genEmptyContainer <*>
|
|
271 | 270 |
emptyMUD <*> emptyMUD <*> emptyMUD |
272 | 271 |
"OP_GROUP_ASSIGN_NODES" -> |
273 | 272 |
OpCodes.OpGroupAssignNodes <$> genNameNE <*> arbitrary <*> |
... | ... | |
276 | 275 |
OpCodes.OpGroupQuery <$> genFieldsNE <*> genNamesNE |
277 | 276 |
"OP_GROUP_SET_PARAMS" -> |
278 | 277 |
OpCodes.OpGroupSetParams <$> genNameNE <*> arbitrary <*> |
279 |
emptyMUD <*> getMaybe genEmptyContainer <*>
|
|
278 |
emptyMUD <*> genMaybe genEmptyContainer <*>
|
|
280 | 279 |
emptyMUD <*> emptyMUD <*> emptyMUD |
281 | 280 |
"OP_GROUP_REMOVE" -> |
282 | 281 |
OpCodes.OpGroupRemove <$> genNameNE |
... | ... | |
284 | 283 |
OpCodes.OpGroupRename <$> genNameNE <*> genNameNE |
285 | 284 |
"OP_GROUP_EVACUATE" -> |
286 | 285 |
OpCodes.OpGroupEvacuate <$> genNameNE <*> arbitrary <*> |
287 |
getMaybe genNameNE <*> getMaybe genNamesNE
|
|
286 |
genMaybe genNameNE <*> genMaybe genNamesNE
|
|
288 | 287 |
"OP_OS_DIAGNOSE" -> |
289 | 288 |
OpCodes.OpOsDiagnose <$> genFieldsNE <*> genNamesNE |
290 | 289 |
"OP_BACKUP_QUERY" -> |
291 | 290 |
OpCodes.OpBackupQuery <$> arbitrary <*> genNodeNamesNE |
292 | 291 |
"OP_BACKUP_PREPARE" -> |
293 |
OpCodes.OpBackupPrepare <$> getFQDN <*> arbitrary
|
|
292 |
OpCodes.OpBackupPrepare <$> genFQDN <*> arbitrary
|
|
294 | 293 |
"OP_BACKUP_EXPORT" -> |
295 |
OpCodes.OpBackupExport <$> getFQDN <*> arbitrary <*>
|
|
294 |
OpCodes.OpBackupExport <$> genFQDN <*> arbitrary <*>
|
|
296 | 295 |
arbitrary <*> arbitrary <*> arbitrary <*> arbitrary <*> |
297 |
getMaybe (pure []) <*> getMaybe genNameNE
|
|
296 |
genMaybe (pure []) <*> genMaybe genNameNE
|
|
298 | 297 |
"OP_BACKUP_REMOVE" -> |
299 |
OpCodes.OpBackupRemove <$> getFQDN
|
|
298 |
OpCodes.OpBackupRemove <$> genFQDN
|
|
300 | 299 |
"OP_TEST_ALLOCATOR" -> |
301 | 300 |
OpCodes.OpTestAllocator <$> arbitrary <*> arbitrary <*> |
302 | 301 |
genNameNE <*> pure [] <*> pure [] <*> |
303 |
arbitrary <*> getMaybe genNameNE <*>
|
|
302 |
arbitrary <*> genMaybe genNameNE <*>
|
|
304 | 303 |
(genTags >>= mapM mkNonEmpty) <*> |
305 |
arbitrary <*> arbitrary <*> getMaybe genNameNE <*>
|
|
306 |
arbitrary <*> getMaybe genNodeNamesNE <*> arbitrary <*>
|
|
307 |
getMaybe genNamesNE <*> arbitrary <*> arbitrary
|
|
304 |
arbitrary <*> arbitrary <*> genMaybe genNameNE <*>
|
|
305 |
arbitrary <*> genMaybe genNodeNamesNE <*> arbitrary <*>
|
|
306 |
genMaybe genNamesNE <*> arbitrary <*> arbitrary
|
|
308 | 307 |
"OP_TEST_JQUEUE" -> |
309 | 308 |
OpCodes.OpTestJqueue <$> arbitrary <*> arbitrary <*> |
310 |
resize 20 (listOf getFQDN) <*> arbitrary
|
|
309 |
resize 20 (listOf genFQDN) <*> arbitrary
|
|
311 | 310 |
"OP_TEST_DUMMY" -> |
312 | 311 |
OpCodes.OpTestDummy <$> pure J.JSNull <*> pure J.JSNull <*> |
313 | 312 |
pure J.JSNull <*> pure J.JSNull |
314 | 313 |
"OP_NETWORK_ADD" -> |
315 | 314 |
OpCodes.OpNetworkAdd <$> genNameNE <*> arbitrary <*> genIp4Net <*> |
316 |
getMaybe genIp4Addr <*> pure Nothing <*> pure Nothing <*>
|
|
317 |
getMaybe genMacPrefix <*> getMaybe (listOf genIp4Addr) <*>
|
|
315 |
genMaybe genIp4Addr <*> pure Nothing <*> pure Nothing <*>
|
|
316 |
genMaybe genMacPrefix <*> genMaybe (listOf genIp4Addr) <*>
|
|
318 | 317 |
(genTags >>= mapM mkNonEmpty) |
319 | 318 |
"OP_NETWORK_REMOVE" -> |
320 | 319 |
OpCodes.OpNetworkRemove <$> genNameNE <*> arbitrary |
321 | 320 |
"OP_NETWORK_SET_PARAMS" -> |
322 | 321 |
OpCodes.OpNetworkSetParams <$> genNameNE <*> arbitrary <*> |
323 |
getMaybe genIp4Addr <*> pure Nothing <*> pure Nothing <*>
|
|
324 |
getMaybe genMacPrefix <*> getMaybe (listOf genIp4Addr) <*>
|
|
325 |
getMaybe (listOf genIp4Addr)
|
|
322 |
genMaybe genIp4Addr <*> pure Nothing <*> pure Nothing <*>
|
|
323 |
genMaybe genMacPrefix <*> genMaybe (listOf genIp4Addr) <*>
|
|
324 |
genMaybe (listOf genIp4Addr)
|
|
326 | 325 |
"OP_NETWORK_CONNECT" -> |
327 | 326 |
OpCodes.OpNetworkConnect <$> genNameNE <*> genNameNE <*> |
328 | 327 |
arbitrary <*> genNameNE <*> arbitrary |
... | ... | |
343 | 342 |
|
344 | 343 |
-- | Empty maybe unchecked dictionary. |
345 | 344 |
emptyMUD :: Gen (Maybe (J.JSObject J.JSValue)) |
346 |
emptyMUD = getMaybe $ pure emptyJSObject
|
|
345 |
emptyMUD = genMaybe $ pure emptyJSObject
|
|
347 | 346 |
|
348 | 347 |
-- | Generates an empty container. |
349 | 348 |
genEmptyContainer :: (Ord a) => Gen (GenericContainer a b) |
... | ... | |
357 | 356 |
|
358 | 357 |
-- | Generates a list of node names. |
359 | 358 |
genNodeNames :: Gen [String] |
360 |
genNodeNames = resize maxNodes (listOf getFQDN)
|
|
359 |
genNodeNames = resize maxNodes (listOf genFQDN)
|
|
361 | 360 |
|
362 | 361 |
-- | Generates a list of node names in non-empty string type. |
363 | 362 |
genNodeNamesNE :: Gen [NonEmptyString] |
... | ... | |
365 | 364 |
|
366 | 365 |
-- | Gets a node name in non-empty type. |
367 | 366 |
genNodeNameNE :: Gen NonEmptyString |
368 |
genNodeNameNE = getFQDN >>= mkNonEmpty
|
|
367 |
genNodeNameNE = genFQDN >>= mkNonEmpty
|
|
369 | 368 |
|
370 | 369 |
-- | Gets a name (non-fqdn) in non-empty type. |
371 | 370 |
genNameNE :: Gen NonEmptyString |
372 |
genNameNE = getName >>= mkNonEmpty
|
|
371 |
genNameNE = genName >>= mkNonEmpty
|
|
373 | 372 |
|
374 | 373 |
-- | Gets a list of names (non-fqdn) in non-empty type. |
375 | 374 |
genNamesNE :: Gen [NonEmptyString] |
... | ... | |
377 | 376 |
|
378 | 377 |
-- | Returns a list of non-empty fields. |
379 | 378 |
genFieldsNE :: Gen [NonEmptyString] |
380 |
genFieldsNE = getFields >>= mapM mkNonEmpty
|
|
379 |
genFieldsNE = genFields >>= mapM mkNonEmpty
|
|
381 | 380 |
|
382 | 381 |
-- | Generate an arbitrary IPv4 address in textual form. |
383 | 382 |
genIp4Addr :: Gen NonEmptyString |
b/htest/Test/Ganeti/Query/Filter.hs | ||
---|---|---|
180 | 180 |
-- | Tests make simple filter. |
181 | 181 |
prop_makeSimpleFilter :: Property |
182 | 182 |
prop_makeSimpleFilter = |
183 |
forAll (resize 10 $ listOf1 getName) $ \names ->
|
|
184 |
forAll getName $ \namefield ->
|
|
183 |
forAll (resize 10 $ listOf1 genName) $ \names ->
|
|
184 |
forAll genName $ \namefield ->
|
|
185 | 185 |
conjoin [ printTestCase "test expected names" $ |
186 | 186 |
makeSimpleFilter namefield names ==? |
187 | 187 |
OrFilter (map (EQFilter namefield . QuotedString) names) |
b/htest/Test/Ganeti/Query/Language.hs | ||
---|---|---|
53 | 53 |
genFilter' :: Int -> Gen (Filter FilterField) |
54 | 54 |
genFilter' 0 = |
55 | 55 |
oneof [ pure EmptyFilter |
56 |
, TrueFilter <$> getName
|
|
57 |
, EQFilter <$> getName <*> value
|
|
58 |
, LTFilter <$> getName <*> value
|
|
59 |
, GTFilter <$> getName <*> value
|
|
60 |
, LEFilter <$> getName <*> value
|
|
61 |
, GEFilter <$> getName <*> value
|
|
62 |
, RegexpFilter <$> getName <*> arbitrary
|
|
63 |
, ContainsFilter <$> getName <*> value
|
|
56 |
, TrueFilter <$> genName
|
|
57 |
, EQFilter <$> genName <*> value
|
|
58 |
, LTFilter <$> genName <*> value
|
|
59 |
, GTFilter <$> genName <*> value
|
|
60 |
, LEFilter <$> genName <*> value
|
|
61 |
, GEFilter <$> genName <*> value
|
|
62 |
, RegexpFilter <$> genName <*> arbitrary
|
|
63 |
, ContainsFilter <$> genName <*> value
|
|
64 | 64 |
] |
65 |
where value = oneof [ QuotedString <$> getName
|
|
65 |
where value = oneof [ QuotedString <$> genName
|
|
66 | 66 |
, NumericValue <$> arbitrary |
67 | 67 |
] |
68 | 68 |
genFilter' n = |
... | ... | |
81 | 81 |
$(genArbitrary ''ItemType) |
82 | 82 |
|
83 | 83 |
instance Arbitrary FilterRegex where |
84 |
arbitrary = getName >>= mkRegex -- a name should be a good regex
|
|
84 |
arbitrary = genName >>= mkRegex -- a name should be a good regex
|
|
85 | 85 |
|
86 | 86 |
$(genArbitrary ''ResultStatus) |
87 | 87 |
|
b/htest/Test/Ganeti/Query/Query.hs | ||
---|---|---|
235 | 235 |
-- | Tests that requested names checking behaves as expected. |
236 | 236 |
prop_getRequestedNames :: Property |
237 | 237 |
prop_getRequestedNames = |
238 |
forAll getName $ \node1 ->
|
|
238 |
forAll genName $ \node1 ->
|
|
239 | 239 |
let chk = getRequestedNames . Query (ItemTypeOpCode QRNode) [] |
240 | 240 |
q_node1 = QuotedString node1 |
241 | 241 |
eq_name = EQFilter "name" |
b/htest/Test/Ganeti/TestCommon.hs | ||
---|---|---|
132 | 132 |
show = show . dnsGetChar |
133 | 133 |
|
134 | 134 |
-- | Generates a single name component. |
135 |
getName :: Gen String
|
|
136 |
getName = do
|
|
135 |
genName :: Gen String
|
|
136 |
genName = do
|
|
137 | 137 |
n <- choose (1, 64) |
138 | 138 |
dn <- vector n |
139 | 139 |
return (map dnsGetChar dn) |
140 | 140 |
|
141 | 141 |
-- | Generates an entire FQDN. |
142 |
getFQDN :: Gen String
|
|
143 |
getFQDN = do
|
|
142 |
genFQDN :: Gen String
|
|
143 |
genFQDN = do
|
|
144 | 144 |
ncomps <- choose (1, 4) |
145 |
names <- vectorOf ncomps getName
|
|
145 |
names <- vectorOf ncomps genName
|
|
146 | 146 |
return $ intercalate "." names |
147 | 147 |
|
148 | 148 |
-- | Combinator that generates a 'Maybe' using a sub-combinator. |
149 |
getMaybe :: Gen a -> Gen (Maybe a)
|
|
150 |
getMaybe subgen = oneof [ pure Nothing, liftM Just subgen ]
|
|
149 |
genMaybe :: Gen a -> Gen (Maybe a)
|
|
150 |
genMaybe subgen = oneof [ pure Nothing, liftM Just subgen ]
|
|
151 | 151 |
|
152 | 152 |
-- | Defines a tag type. |
153 | 153 |
newtype TagChar = TagChar { tagGetChar :: Char } |
... | ... | |
181 | 181 |
|
182 | 182 |
-- | Generates a fields list. This uses the same character set as a |
183 | 183 |
-- DNS name (just for simplicity). |
184 |
getFields :: Gen [String]
|
|
185 |
getFields = do
|
|
184 |
genFields :: Gen [String]
|
|
185 |
genFields = do
|
|
186 | 186 |
n <- choose (1, 32) |
187 |
vectorOf n getName
|
|
187 |
vectorOf n genName
|
|
188 | 188 |
|
189 | 189 |
-- | Generates a list of a given size with non-duplicate elements. |
190 | 190 |
genUniquesList :: (Eq a, Arbitrary a) => Int -> Gen [a] |
b/htest/Test/Ganeti/Utils.hs | ||
---|---|---|
161 | 161 |
-- itself, etc.). |
162 | 162 |
prop_niceSort_single :: Property |
163 | 163 |
prop_niceSort_single = |
164 |
forAll getName $ \name ->
|
|
164 |
forAll genName $ \name ->
|
|
165 | 165 |
conjoin |
166 | 166 |
[ printTestCase "single string" $ [name] ==? niceSort [name] |
167 | 167 |
, printTestCase "single plus empty" $ ["", name] ==? niceSort [name, ""] |
Also available in: Unified diff