diff --git a/Makefile.am b/Makefile.am index 0b74f95df3348749d10eb8b5bc38ab8d4c7aa93b..76d91733e397d9aff287e741f7f4df09b84a3f79 100644 --- a/Makefile.am +++ b/Makefile.am @@ -60,7 +60,9 @@ HTOOLS_DIRS = \ htools/Ganeti/HTools \ htools/Ganeti/HTools/Program \ htools/Ganeti/Query \ - htest + htest \ + htest/Test \ + htest/Test/Ganeti DIRS = \ autotools \ @@ -374,7 +376,8 @@ HPCEXCL = --exclude Main \ --exclude Ganeti.THH \ --exclude Ganeti.HTools.QC \ --exclude Ganeti.HTools.Version \ - --exclude Test.Ganeti.TestHelper + --exclude Test.Ganeti.TestHelper \ + $(patsubst htools.%,--exclude Test.%,$(subst /,.,$(patsubst %.hs,%, $(filter-out htest/%,$(HS_LIB_SRCS))))) HS_LIB_SRCS = \ htools/Ganeti/HTools/CLI.hs \ @@ -426,7 +429,8 @@ HS_LIB_SRCS = \ htools/Ganeti/Runtime.hs \ htools/Ganeti/Ssconf.hs \ htools/Ganeti/THH.hs \ - htest/Test/Ganeti/TestHelper.hs + htest/Test/Ganeti/TestHelper.hs \ + htest/Test/Ganeti/Objects.hs HS_BUILT_SRCS = htools/Ganeti/HTools/Version.hs htools/Ganeti/Constants.hs diff --git a/htest/Test/Ganeti/Objects.hs b/htest/Test/Ganeti/Objects.hs new file mode 100644 index 0000000000000000000000000000000000000000..af825605006cf4ebdd3af233fd62fb770c53a77c --- /dev/null +++ b/htest/Test/Ganeti/Objects.hs @@ -0,0 +1,53 @@ +{-# LANGUAGE TemplateHaskell #-} +{-# OPTIONS_GHC -fno-warn-orphans #-} + +{-| Unittests for ganeti-htools. + +-} + +{- + +Copyright (C) 2009, 2010, 2011, 2012 Google Inc. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. + +-} + +module Test.Ganeti.Objects (testObjects) where + +import qualified Data.Map as Map +import Test.QuickCheck + +import Test.Ganeti.TestHelper +import qualified Ganeti.Objects as Objects + +-- | Tests that fillDict behaves correctly +prop_Objects_fillDict :: [(Int, Int)] -> [(Int, Int)] -> Property +prop_Objects_fillDict defaults custom = + let d_map = Map.fromList defaults + d_keys = map fst defaults + c_map = Map.fromList custom + c_keys = map fst custom + in printTestCase "Empty custom filling" + (Objects.fillDict d_map Map.empty [] == d_map) .&&. + printTestCase "Empty defaults filling" + (Objects.fillDict Map.empty c_map [] == c_map) .&&. + printTestCase "Delete all keys" + (Objects.fillDict d_map c_map (d_keys++c_keys) == Map.empty) + +testSuite "Objects" + [ 'prop_Objects_fillDict + ] diff --git a/htest/test.hs b/htest/test.hs index 3aecfa679cc13a59f65bef0c679471d714ce9645..d4fefcd7c54bbdd1f167700191fda5fd5fb1ae15 100644 --- a/htest/test.hs +++ b/htest/test.hs @@ -30,6 +30,7 @@ import Test.Framework import System.Environment (getArgs) import Ganeti.HTools.QC +import Test.Ganeti.Objects -- | Our default test options, overring the built-in test-framework -- ones. diff --git a/htools/Ganeti/HTools/QC.hs b/htools/Ganeti/HTools/QC.hs index 729fc4f5d5f58f878558840741b7eda67ac82656..07501420a641f30e55b4345569deaa9c07d6d6b0 100644 --- a/htools/Ganeti/HTools/QC.hs +++ b/htools/Ganeti/HTools/QC.hs @@ -51,7 +51,6 @@ module Ganeti.HTools.QC , testRpc , testQlang , testConfd - , testObjects ) where import qualified Test.HUnit as HUnit @@ -2173,23 +2172,3 @@ testSuite "Confd" [ 'prop_Confd_req_sign , 'prop_Confd_bad_key ] - --- * Objects tests - --- | Tests that fillDict behaves correctly -prop_Objects_fillDict :: [(Int, Int)] -> [(Int, Int)] -> Property -prop_Objects_fillDict defaults custom = - let d_map = Map.fromList defaults - d_keys = map fst defaults - c_map = Map.fromList custom - c_keys = map fst custom - in printTestCase "Empty custom filling" - (Objects.fillDict d_map Map.empty [] == d_map) .&&. - printTestCase "Empty defaults filling" - (Objects.fillDict Map.empty c_map [] == c_map) .&&. - printTestCase "Delete all keys" - (Objects.fillDict d_map c_map (d_keys++c_keys) == Map.empty) - -testSuite "Objects" - [ 'prop_Objects_fillDict - ]