Revision 74ff6aed test/hs/Test/Ganeti/HTools/Node.hs
b/test/hs/Test/Ganeti/HTools/Node.hs | ||
---|---|---|
214 | 214 |
, Instance.diskTemplate = dt } |
215 | 215 |
in (Node.addPri node inst'' ==? Bad Types.FailDisk) |
216 | 216 |
|
217 |
-- | Check if an instance exceeds a spindles limit or has no spindles set. |
|
218 |
hasInstTooManySpindles :: Instance.Instance -> Int -> Bool |
|
219 |
hasInstTooManySpindles inst sp_lim = |
|
220 |
case Instance.getTotalSpindles inst of |
|
221 |
Just s -> s > sp_lim |
|
222 |
Nothing -> True |
|
223 |
|
|
224 |
-- | Check that adding a primary instance with too many spindles fails |
|
225 |
-- with type FailSpindles (when exclusive storage is enabled). |
|
226 |
prop_addPriFS :: Instance.Instance -> Property |
|
227 |
prop_addPriFS inst = |
|
228 |
forAll genExclStorNode $ \node -> |
|
229 |
forAll (elements Instance.localStorageTemplates) $ \dt -> |
|
230 |
hasInstTooManySpindles inst (Node.fSpindles node) && |
|
231 |
not (Node.failN1 node) ==> |
|
232 |
let inst' = setInstanceSmallerThanNode node inst |
|
233 |
inst'' = inst' { Instance.disks = Instance.disks inst |
|
234 |
, Instance.diskTemplate = dt } |
|
235 |
in (Node.addPri node inst'' ==? Bad Types.FailSpindles) |
|
236 |
|
|
217 | 237 |
-- | Check that adding a primary instance with too many VCPUs fails |
218 | 238 |
-- with type FailCPU. |
219 | 239 |
prop_addPriFC :: Property |
... | ... | |
233 | 253 |
prop_addSec node inst pdx = |
234 | 254 |
((Instance.mem inst >= (Node.fMem node - Node.rMem node) && |
235 | 255 |
not (Instance.isOffline inst)) || |
236 |
Instance.dsk inst >= Node.fDsk node) && |
|
256 |
Instance.dsk inst >= Node.fDsk node || |
|
257 |
(Node.exclStorage node && |
|
258 |
hasInstTooManySpindles inst (Node.fSpindles node))) && |
|
237 | 259 |
not (Node.failN1 node) ==> |
238 | 260 |
isBad (Node.addSec node inst pdx) |
239 | 261 |
|
... | ... | |
419 | 441 |
, 'prop_setXmem |
420 | 442 |
, 'prop_addPriFM |
421 | 443 |
, 'prop_addPriFD |
444 |
, 'prop_addPriFS |
|
422 | 445 |
, 'prop_addPriFC |
423 | 446 |
, 'prop_addPri_NoN1Fail |
424 | 447 |
, 'prop_addSec |
Also available in: Unified diff