Statistics
| Branch: | Tag: | Revision:

root / htest / test.hs @ 26d62e4c

History | View | Annotate | Download (3 kB)

1
{-| Unittest runner for ganeti-htools.
2

    
3
-}
4

    
5
{-
6

    
7
Copyright (C) 2009, 2011, 2012 Google Inc.
8

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

    
14
This program is distributed in the hope that it will be useful, but
15
WITHOUT ANY WARRANTY; without even the implied warranty of
16
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17
General Public License for more details.
18

    
19
You should have received a copy of the GNU General Public License
20
along with this program; if not, write to the Free Software
21
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
22
02110-1301, USA.
23

    
24
-}
25

    
26
module Main(main) where
27

    
28
import Data.Monoid (mappend)
29
import Test.Framework
30
import System.Environment (getArgs)
31

    
32
import Test.Ganeti.TestImports ()
33
import Test.Ganeti.BasicTypes
34
import Test.Ganeti.Confd.Utils
35
import Test.Ganeti.Common
36
import Test.Ganeti.Daemon
37
import Test.Ganeti.HTools.CLI
38
import Test.Ganeti.HTools.Cluster
39
import Test.Ganeti.HTools.Container
40
import Test.Ganeti.HTools.Loader
41
import Test.Ganeti.HTools.Instance
42
import Test.Ganeti.HTools.Node
43
import Test.Ganeti.HTools.PeerMap
44
import Test.Ganeti.HTools.Simu
45
import Test.Ganeti.HTools.Text
46
import Test.Ganeti.HTools.Types
47
import Test.Ganeti.Jobs
48
import Test.Ganeti.JSON
49
import Test.Ganeti.Luxi
50
import Test.Ganeti.Objects
51
import Test.Ganeti.OpCodes
52
import Test.Ganeti.Query.Filter
53
import Test.Ganeti.Query.Language
54
import Test.Ganeti.Query.Query
55
import Test.Ganeti.Rpc
56
import Test.Ganeti.Ssconf
57
import Test.Ganeti.Utils
58

    
59
-- | Our default test options, overring the built-in test-framework
60
-- ones (but not the supplied command line parameters).
61
defOpts :: TestOptions
62
defOpts = TestOptions
63
       { topt_seed                               = Nothing
64
       , topt_maximum_generated_tests            = Just 500
65
       , topt_maximum_unsuitable_generated_tests = Just 5000
66
       , topt_maximum_test_size                  = Nothing
67
       , topt_maximum_test_depth                 = Nothing
68
       , topt_timeout                            = Nothing
69
       }
70

    
71
-- | All our defined tests.
72
allTests :: [Test]
73
allTests =
74
  [ testBasicTypes
75
  , testCommon
76
  , testConfd_Utils
77
  , testDaemon
78
  , testHTools_CLI
79
  , testHTools_Cluster
80
  , testHTools_Container
81
  , testHTools_Instance
82
  , testHTools_Loader
83
  , testHTools_Node
84
  , testHTools_PeerMap
85
  , testHTools_Simu
86
  , testHTools_Text
87
  , testHTools_Types
88
  , testJSON
89
  , testJobs
90
  , testLuxi
91
  , testObjects
92
  , testOpCodes
93
  , testQuery_Filter
94
  , testQuery_Language
95
  , testQuery_Query
96
  , testRpc
97
  , testSsconf
98
  , testUtils
99
  ]
100

    
101
-- | Main function. Note we don't use defaultMain since we want to
102
-- control explicitly our test sizes (and override the default).
103
main :: IO ()
104
main = do
105
  ropts <- getArgs >>= interpretArgsOrExit
106
  let opts = maybe defOpts (defOpts `mappend`) $ ropt_test_options ropts
107
  defaultMainWithOpts allTests (ropts { ropt_test_options = Just opts })