Statistics
| Branch: | Tag: | Revision:

root / htest / test.hs @ 43b3b5c1

History | View | Annotate | Download (3.2 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.Attoparsec
34
import Test.Ganeti.BasicTypes
35
import Test.Ganeti.Common
36
import Test.Ganeti.Confd.Utils
37
import Test.Ganeti.Daemon
38
import Test.Ganeti.Errors
39
import Test.Ganeti.HTools.Backend.Simu
40
import Test.Ganeti.HTools.Backend.Text
41
import Test.Ganeti.HTools.CLI
42
import Test.Ganeti.HTools.Cluster
43
import Test.Ganeti.HTools.Container
44
import Test.Ganeti.HTools.Instance
45
import Test.Ganeti.HTools.Loader
46
import Test.Ganeti.HTools.Node
47
import Test.Ganeti.HTools.PeerMap
48
import Test.Ganeti.HTools.Types
49
import Test.Ganeti.JSON
50
import Test.Ganeti.Jobs
51
import Test.Ganeti.Luxi
52
import Test.Ganeti.Objects
53
import Test.Ganeti.OpCodes
54
import Test.Ganeti.Query.Filter
55
import Test.Ganeti.Query.Language
56
import Test.Ganeti.Query.Query
57
import Test.Ganeti.Rpc
58
import Test.Ganeti.Ssconf
59
import Test.Ganeti.THH
60
import Test.Ganeti.Utils
61

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

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

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