LUNodeQueryStorage: Use node allocation lock
[ganeti-local] / htest / test.hs
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.Block.Drbd.Parser
36 import Test.Ganeti.Common
37 import Test.Ganeti.Confd.Utils
38 import Test.Ganeti.Daemon
39 import Test.Ganeti.Errors
40 import Test.Ganeti.HTools.Backend.Simu
41 import Test.Ganeti.HTools.Backend.Text
42 import Test.Ganeti.HTools.CLI
43 import Test.Ganeti.HTools.Cluster
44 import Test.Ganeti.HTools.Container
45 import Test.Ganeti.HTools.Instance
46 import Test.Ganeti.HTools.Loader
47 import Test.Ganeti.HTools.Node
48 import Test.Ganeti.HTools.PeerMap
49 import Test.Ganeti.HTools.Types
50 import Test.Ganeti.JSON
51 import Test.Ganeti.Jobs
52 import Test.Ganeti.Luxi
53 import Test.Ganeti.Objects
54 import Test.Ganeti.OpCodes
55 import Test.Ganeti.Query.Filter
56 import Test.Ganeti.Query.Language
57 import Test.Ganeti.Query.Query
58 import Test.Ganeti.Rpc
59 import Test.Ganeti.Ssconf
60 import Test.Ganeti.THH
61 import Test.Ganeti.Types
62 import Test.Ganeti.Utils
63
64 -- | Our default test options, overring the built-in test-framework
65 -- ones (but not the supplied command line parameters).
66 defOpts :: TestOptions
67 defOpts = TestOptions
68        { topt_seed                               = Nothing
69        , topt_maximum_generated_tests            = Just 500
70        , topt_maximum_unsuitable_generated_tests = Just 5000
71        , topt_maximum_test_size                  = Nothing
72        , topt_maximum_test_depth                 = Nothing
73        , topt_timeout                            = Nothing
74        }
75
76 -- | All our defined tests.
77 allTests :: [Test]
78 allTests =
79   [ testBasicTypes
80   , testAttoparsec
81   , testCommon
82   , testConfd_Utils
83   , testDaemon
84   , testBlock_DRBDParser
85   , testErrors
86   , testHTools_Backend_Simu
87   , testHTools_Backend_Text
88   , testHTools_CLI
89   , testHTools_Cluster
90   , testHTools_Container
91   , testHTools_Instance
92   , testHTools_Loader
93   , testHTools_Node
94   , testHTools_PeerMap
95   , testHTools_Types
96   , testJSON
97   , testJobs
98   , testLuxi
99   , testObjects
100   , testOpCodes
101   , testQuery_Filter
102   , testQuery_Language
103   , testQuery_Query
104   , testRpc
105   , testSsconf
106   , testTHH
107   , testTypes
108   , testUtils
109   ]
110
111 -- | Main function. Note we don't use defaultMain since we want to
112 -- control explicitly our test sizes (and override the default).
113 main :: IO ()
114 main = do
115   ropts <- getArgs >>= interpretArgsOrExit
116   let opts = maybe defOpts (defOpts `mappend`) $ ropt_test_options ropts
117   defaultMainWithOpts allTests (ropts { ropt_test_options = Just opts })