Statistics
| Branch: | Tag: | Revision:

root / htools / Ganeti / HTools / QC.hs @ 2d87bd0a

History | View | Annotate | Download (3.7 kB)

1
{-# LANGUAGE TemplateHaskell #-}
2
{-# OPTIONS_GHC -fno-warn-orphans -fno-warn-unused-imports #-}
3

    
4
-- FIXME: should remove the no-warn-unused-imports option, once we get
5
-- around to testing function from all modules; until then, we keep
6
-- the (unused) imports here to generate correct coverage (0 for
7
-- modules we don't use)
8

    
9
{-| Unittests for ganeti-htools.
10

    
11
-}
12

    
13
{-
14

    
15
Copyright (C) 2009, 2010, 2011, 2012 Google Inc.
16

    
17
This program is free software; you can redistribute it and/or modify
18
it under the terms of the GNU General Public License as published by
19
the Free Software Foundation; either version 2 of the License, or
20
(at your option) any later version.
21

    
22
This program is distributed in the hope that it will be useful, but
23
WITHOUT ANY WARRANTY; without even the implied warranty of
24
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
25
General Public License for more details.
26

    
27
You should have received a copy of the GNU General Public License
28
along with this program; if not, write to the Free Software
29
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
30
02110-1301, USA.
31

    
32
-}
33

    
34
module Ganeti.HTools.QC
35
  () where
36

    
37
import qualified Test.HUnit as HUnit
38
import Test.QuickCheck
39
import Test.QuickCheck.Monadic (assert, monadicIO, run, stop)
40
import Text.Printf (printf)
41
import Data.List (intercalate, nub, isPrefixOf, sort, (\\))
42
import Data.Maybe
43
import qualified Data.Set as Set
44
import Control.Monad
45
import Control.Applicative
46
import qualified System.Console.GetOpt as GetOpt
47
import qualified Text.JSON as J
48
import qualified Data.Map as Map
49
import qualified Data.IntMap as IntMap
50
import Control.Concurrent (forkIO)
51
import Control.Exception (bracket, catchJust)
52
import System.Directory (getTemporaryDirectory, removeFile)
53
import System.Environment (getEnv)
54
import System.Exit (ExitCode(..))
55
import System.IO (hClose, openTempFile)
56
import System.IO.Error (isEOFErrorType, ioeGetErrorType, isDoesNotExistError)
57
import System.Process (readProcessWithExitCode)
58

    
59
import qualified Ganeti.Confd as Confd
60
import qualified Ganeti.Confd.Server as Confd.Server
61
import qualified Ganeti.Confd.Utils as Confd.Utils
62
import qualified Ganeti.Config as Config
63
import qualified Ganeti.Daemon as Daemon
64
import qualified Ganeti.Hash as Hash
65
import qualified Ganeti.BasicTypes as BasicTypes
66
import qualified Ganeti.Jobs as Jobs
67
import qualified Ganeti.Logging as Logging
68
import qualified Ganeti.Luxi as Luxi
69
import qualified Ganeti.Objects as Objects
70
import qualified Ganeti.OpCodes as OpCodes
71
import qualified Ganeti.Query.Language as Qlang
72
import qualified Ganeti.Runtime as Runtime
73
import qualified Ganeti.HTools.CLI as CLI
74
import qualified Ganeti.HTools.Cluster as Cluster
75
import qualified Ganeti.HTools.Container as Container
76
import qualified Ganeti.HTools.ExtLoader
77
import qualified Ganeti.HTools.Group as Group
78
import qualified Ganeti.HTools.IAlloc as IAlloc
79
import qualified Ganeti.HTools.Instance as Instance
80
import qualified Ganeti.JSON as JSON
81
import qualified Ganeti.HTools.Loader as Loader
82
import qualified Ganeti.HTools.Luxi as HTools.Luxi
83
import qualified Ganeti.HTools.Node as Node
84
import qualified Ganeti.HTools.PeerMap as PeerMap
85
import qualified Ganeti.HTools.Rapi
86
import qualified Ganeti.HTools.Simu as Simu
87
import qualified Ganeti.HTools.Text as Text
88
import qualified Ganeti.HTools.Types as Types
89
import qualified Ganeti.HTools.Utils as Utils
90
import qualified Ganeti.HTools.Version
91
import qualified Ganeti.Constants as C
92

    
93
import qualified Ganeti.HTools.Program as Program
94
import qualified Ganeti.HTools.Program.Hail
95
import qualified Ganeti.HTools.Program.Hbal
96
import qualified Ganeti.HTools.Program.Hscan
97
import qualified Ganeti.HTools.Program.Hspace
98

    
99
import Test.Ganeti.TestHelper (testSuite)
100
import Test.Ganeti.TestCommon