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.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
64 -- | Our default test options, overring the built-in test-framework
65 -- ones (but not the supplied command line parameters).
66 defOpts :: TestOptions
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
76 -- | All our defined tests.
84 , testBlock_DRBDParser
86 , testHTools_Backend_Simu
87 , testHTools_Backend_Text
90 , testHTools_Container
111 -- | Main function. Note we don't use defaultMain since we want to
112 -- control explicitly our test sizes (and override the default).
115 ropts <- getArgs >>= interpretArgsOrExit
116 let opts = maybe defOpts (defOpts `mappend`) $ ropt_test_options ropts
117 defaultMainWithOpts allTests (ropts { ropt_test_options = Just opts })