Revision 3cbd5808

b/test/hs/Test/Ganeti/HTools/Types.hs
7 7

  
8 8
{-
9 9

  
10
Copyright (C) 2009, 2010, 2011, 2012 Google Inc.
10
Copyright (C) 2009, 2010, 2011, 2012, 2013 Google Inc.
11 11

  
12 12
This program is free software; you can redistribute it and/or modify
13 13
it under the terms of the GNU General Public License as published by
......
46 46
import Test.Ganeti.TestHelper
47 47
import Test.Ganeti.TestCommon
48 48
import Test.Ganeti.TestHTools
49
import Test.Ganeti.Types ()
49
import Test.Ganeti.Types (allDiskTemplates)
50 50

  
51 51
import Ganeti.BasicTypes
52 52
import qualified Ganeti.Constants as C
......
56 56

  
57 57
-- * Helpers
58 58

  
59
-- | All disk templates (used later)
60
allDiskTemplates :: [Types.DiskTemplate]
61
allDiskTemplates = [minBound..maxBound]
62

  
63 59
-- * Arbitrary instance
64 60

  
65 61
$(genArbitrary ''Types.FailMode)
b/test/hs/Test/Ganeti/Types.hs
30 30
  ( testTypes
31 31
  , AllocPolicy(..)
32 32
  , DiskTemplate(..)
33
  , allDiskTemplates
33 34
  , InstanceStatus(..)
34 35
  , NonEmpty(..)
35 36
  , Hypervisor(..)
36 37
  , JobId(..)
37 38
  ) where
38 39

  
39
import Data.List (sort)
40
import Data.List (delete, sort)
40 41
import Test.QuickCheck as QuickCheck hiding (Result)
41 42
import Test.HUnit
42 43
import qualified Text.JSON as J
......
78 79

  
79 80
$(genArbitrary ''AllocPolicy)
80 81

  
81
$(genArbitrary ''DiskTemplate)
82
-- | Valid disk templates (depending on configure options).
83
allDiskTemplates :: [DiskTemplate]
84
allDiskTemplates =
85
  let all_vals = [minBound..maxBound]::[DiskTemplate]
86
      sel1 = if C.enableFileStorage
87
               then all_vals
88
               else delete DTFile all_vals
89
      sel2 = if C.enableSharedFileStorage
90
               then sel1
91
               else delete DTSharedFile sel1
92
  in sel2
93

  
94
-- | Custom 'Arbitrary' instance for 'DiskTemplate', which needs to
95
-- handle the case of file storage being disabled at configure time.
96
instance Arbitrary DiskTemplate where
97
  arbitrary = elements allDiskTemplates
82 98

  
83 99
$(genArbitrary ''InstanceStatus)
84 100

  
......
96 112

  
97 113
$(genArbitrary ''OobCommand)
98 114

  
99
$(genArbitrary ''StorageType)
115
-- | Valid storage types.
116
allStorageTypes :: [StorageType]
117
allStorageTypes =
118
  let all_vals = [minBound..maxBound]::[StorageType]
119
  in if C.enableFileStorage
120
       then all_vals
121
       else delete StorageFile all_vals
122

  
123
-- | Custom 'Arbitrary' instance for 'StorageType', which needs to
124
-- handle the case of file storage being disabled at configure time.
125
instance Arbitrary StorageType where
126
  arbitrary = elements allStorageTypes
100 127

  
101 128
$(genArbitrary ''NodeEvacMode)
102 129

  

Also available in: Unified diff