Revision 7bc82927 Ganeti/HTools/QC.hs
b/Ganeti/HTools/QC.hs | ||
---|---|---|
49 | 49 |
-- | Make sure add is idempotent |
50 | 50 |
prop_PeerMap_addIdempotent pmap key elem = |
51 | 51 |
fn puniq == fn (fn puniq) |
52 |
where fn = PeerMap.add key elem |
|
53 |
puniq = PeerMap.accumArray const pmap |
|
54 |
_types = (pmap::PeerMap.PeerMap, |
|
52 |
where _types = (pmap::PeerMap.PeerMap, |
|
55 | 53 |
key::PeerMap.Key, elem::PeerMap.Elem) |
54 |
fn = PeerMap.add key elem |
|
55 |
puniq = PeerMap.accumArray const pmap |
|
56 | 56 |
|
57 | 57 |
-- | Make sure remove is idempotent |
58 | 58 |
prop_PeerMap_removeIdempotent pmap key = |
59 | 59 |
fn puniq == fn (fn puniq) |
60 |
where fn = PeerMap.remove key |
|
60 |
where _types = (pmap::PeerMap.PeerMap, key::PeerMap.Key) |
|
61 |
fn = PeerMap.remove key |
|
61 | 62 |
puniq = PeerMap.accumArray const pmap |
62 |
_types = (pmap::PeerMap.PeerMap, |
|
63 |
key::PeerMap.Key) |
|
64 | 63 |
|
65 | 64 |
-- | Make sure a missing item returns 0 |
66 | 65 |
prop_PeerMap_findMissing pmap key = |
67 | 66 |
PeerMap.find key (PeerMap.remove key puniq) == 0 |
68 |
where fn = PeerMap.remove key
|
|
67 |
where _types = (pmap::PeerMap.PeerMap, key::PeerMap.Key)
|
|
69 | 68 |
puniq = PeerMap.accumArray const pmap |
70 |
_types = (pmap::PeerMap.PeerMap, |
|
71 |
key::PeerMap.Key) |
|
72 | 69 |
|
73 | 70 |
-- | Make sure an added item is found |
74 | 71 |
prop_PeerMap_addFind pmap key elem = |
75 | 72 |
PeerMap.find key (PeerMap.add key elem puniq) == elem |
76 |
where puniq = PeerMap.accumArray const pmap |
|
77 |
_types = (pmap::PeerMap.PeerMap, |
|
73 |
where _types = (pmap::PeerMap.PeerMap, |
|
78 | 74 |
key::PeerMap.Key, elem::PeerMap.Elem) |
75 |
puniq = PeerMap.accumArray const pmap |
|
79 | 76 |
|
80 | 77 |
-- | Manual check that maxElem returns the maximum indeed, or 0 for null |
81 | 78 |
prop_PeerMap_maxElem pmap = |
82 | 79 |
PeerMap.maxElem puniq == if null puniq then 0 |
83 | 80 |
else (maximum . snd . unzip) puniq |
84 |
where |
|
81 |
where _types = pmap::PeerMap.PeerMap
|
|
85 | 82 |
puniq = PeerMap.accumArray const pmap |
86 |
_types = pmap::PeerMap.PeerMap |
|
87 | 83 |
|
84 |
-- Simple instance tests, we only have setter/getters |
|
85 |
|
|
86 |
prop_Instance_setIdx inst idx = |
|
87 |
Instance.idx (Instance.setIdx inst idx) == idx |
|
88 |
where _types = (inst::Instance.Instance, idx::Types.Idx) |
|
89 |
|
|
90 |
prop_Instance_setName inst name = |
|
91 |
Instance.name (Instance.setName inst name) == name |
|
92 |
where _types = (inst::Instance.Instance, name::String) |
|
93 |
|
|
94 |
prop_Instance_setPri inst pdx = |
|
95 |
Instance.pnode (Instance.setPri inst pdx) == pdx |
|
96 |
where _types = (inst::Instance.Instance, pdx::Types.Ndx) |
|
97 |
|
|
98 |
prop_Instance_setSec inst sdx = |
|
99 |
Instance.snode (Instance.setSec inst sdx) == sdx |
|
100 |
where _types = (inst::Instance.Instance, sdx::Types.Ndx) |
|
101 |
|
|
102 |
prop_Instance_setBoth inst pdx sdx = |
|
103 |
Instance.pnode si == pdx && Instance.snode si == sdx |
|
104 |
where _types = (inst::Instance.Instance, pdx::Types.Ndx, sdx::Types.Ndx) |
|
105 |
si = Instance.setBoth inst pdx sdx |
|
106 |
|
|
107 |
-- | Check that an instance add with too high memory or disk will be rejected |
|
88 | 108 |
prop_Node_addPri node inst = (Instance.mem inst >= Node.f_mem node || |
89 | 109 |
Instance.dsk inst >= Node.f_dsk node) && |
90 | 110 |
(not $ Node.failN1 node) |
... | ... | |
92 | 112 |
isNothing(Node.addPri node inst) |
93 | 113 |
where _types = (node::Node.Node, inst::Instance.Instance) |
94 | 114 |
|
115 |
|
|
116 |
-- | Check that an instance add with too high memory or disk will be rejected |
|
95 | 117 |
prop_Node_addSec node inst pdx = |
96 | 118 |
(Instance.mem inst >= (Node.f_mem node - Node.r_mem node) || |
97 | 119 |
Instance.dsk inst >= Node.f_dsk node) && |
Also available in: Unified diff