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