Revision c7d249d0 htest/Test/Ganeti/OpCodes.hs

b/htest/Test/Ganeti/OpCodes.hs
40 40

  
41 41
import Test.Ganeti.TestHelper
42 42
import Test.Ganeti.TestCommon
43
import Test.Ganeti.Types ()
43 44

  
44 45
import qualified Ganeti.Constants as C
45 46
import qualified Ganeti.OpCodes as OpCodes
47
import Ganeti.Types
48
import Ganeti.OpParams
46 49

  
47 50
{-# ANN module "HLint: ignore Use camelCase" #-}
48 51

  
......
66 69
    case op_id of
67 70
      "OP_TEST_DELAY" ->
68 71
        OpCodes.OpTestDelay <$> arbitrary <*> arbitrary
69
                 <*> resize maxNodes (listOf getFQDN)
72
                 <*> genNodeNames
70 73
      "OP_INSTANCE_REPLACE_DISKS" ->
71
        OpCodes.OpInstanceReplaceDisks <$> getFQDN <*> getMaybe getFQDN <*>
72
          arbitrary <*> resize C.maxDisks arbitrary <*> getMaybe getName
74
        OpCodes.OpInstanceReplaceDisks <$> getFQDN <*>
75
          getMaybe genNodeNameNE <*> arbitrary <*> genDiskIndices <*> arbitrary
73 76
      "OP_INSTANCE_FAILOVER" ->
74 77
        OpCodes.OpInstanceFailover <$> getFQDN <*> arbitrary <*>
75
          getMaybe getFQDN
78
          getMaybe genNodeNameNE
76 79
      "OP_INSTANCE_MIGRATE" ->
77 80
        OpCodes.OpInstanceMigrate <$> getFQDN <*> arbitrary <*>
78
          arbitrary <*> arbitrary <*> getMaybe getFQDN
81
          arbitrary <*> arbitrary <*> getMaybe genNodeNameNE
79 82
      "OP_TAGS_SET" ->
80 83
        OpCodes.OpTagsSet <$> arbitrary <*> genTags
81 84
      "OP_TAGS_DEL" ->
82 85
        OpCodes.OpTagsSet <$> arbitrary <*> genTags
83 86
      _ -> fail "Wrong opcode"
84 87

  
88
-- * Helper functions
89

  
90
-- | Generates list of disk indices.
91
genDiskIndices :: Gen [DiskIndex]
92
genDiskIndices = do
93
  cnt <- choose (0, C.maxDisks)
94
  genUniquesList cnt
95

  
96
-- | Generates a list of node names.
97
genNodeNames :: Gen [String]
98
genNodeNames = resize maxNodes (listOf getFQDN)
99

  
100
-- | Gets a node name in non-empty type.
101
genNodeNameNE :: Gen NonEmptyString
102
genNodeNameNE = getFQDN >>= mkNonEmpty
103

  
85 104
-- * Test cases
86 105

  
87 106
-- | Check that opcode serialization is idempotent.

Also available in: Unified diff