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