1 {-| Unittest runner for ganeti-htools.
7 Copyright (C) 2009, 2011, 2012 Google Inc.
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.
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.
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
26 module Main(main) where
28 import Data.Monoid (mappend)
30 import System.Environment (getArgs)
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.Block.Drbd.Types
37 import Test.Ganeti.Common
38 import Test.Ganeti.Confd.Utils
39 import Test.Ganeti.Daemon
40 import Test.Ganeti.Errors
41 import Test.Ganeti.HTools.Backend.Simu
42 import Test.Ganeti.HTools.Backend.Text
43 import Test.Ganeti.HTools.CLI
44 import Test.Ganeti.HTools.Cluster
45 import Test.Ganeti.HTools.Container
46 import Test.Ganeti.HTools.Graph
47 import Test.Ganeti.HTools.Instance
48 import Test.Ganeti.HTools.Loader
49 import Test.Ganeti.HTools.Node
50 import Test.Ganeti.HTools.PeerMap
51 import Test.Ganeti.HTools.Types
52 import Test.Ganeti.JSON
53 import Test.Ganeti.Jobs
54 import Test.Ganeti.Luxi
55 import Test.Ganeti.Network
56 import Test.Ganeti.Objects
57 import Test.Ganeti.OpCodes
58 import Test.Ganeti.Query.Filter
59 import Test.Ganeti.Query.Language
60 import Test.Ganeti.Query.Query
61 import Test.Ganeti.Rpc
62 import Test.Ganeti.Ssconf
63 import Test.Ganeti.THH
64 import Test.Ganeti.Types
65 import Test.Ganeti.Utils
67 -- | Our default test options, overring the built-in test-framework
68 -- ones (but not the supplied command line parameters).
69 defOpts :: TestOptions
72 , topt_maximum_generated_tests = Just 500
73 , topt_maximum_unsuitable_generated_tests = Just 5000
74 , topt_maximum_test_size = Nothing
75 , topt_maximum_test_depth = Nothing
76 , topt_timeout = Nothing
79 -- | All our defined tests.
87 , testBlock_Drbd_Parser
88 , testBlock_Drbd_Types
90 , testHTools_Backend_Simu
91 , testHTools_Backend_Text
94 , testHTools_Container
117 -- | Main function. Note we don't use defaultMain since we want to
118 -- control explicitly our test sizes (and override the default).
121 ropts <- getArgs >>= interpretArgsOrExit
122 let opts = maybe defOpts (defOpts `mappend`) $ ropt_test_options ropts
123 defaultMainWithOpts allTests (ropts { ropt_test_options = Just opts })