From e5a29b6cccf6d59f8bcfca19ed1f1b7dce47e64a Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Wed, 29 Aug 2012 17:24:00 +0200 Subject: [PATCH] Split out Objects.hs from QC.hs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is the first file split out from QC.hs - an easy one, since it has just one test. The patch changes the way we build hpc excludes, since now we'll have many modules that need to be excluded, and hpc doesn't seem to be able to do wildcards (it can do packages, but all our code is not-package-based). Further splitting will be done in bigger batches. Signed-off-by: Iustin Pop <iustin@google.com> Reviewed-by: RenΓ© Nussbaumer <rn@google.com> --- Makefile.am | 10 +++++-- htest/Test/Ganeti/Objects.hs | 53 ++++++++++++++++++++++++++++++++++++ htest/test.hs | 1 + htools/Ganeti/HTools/QC.hs | 21 -------------- 4 files changed, 61 insertions(+), 24 deletions(-) create mode 100644 htest/Test/Ganeti/Objects.hs diff --git a/Makefile.am b/Makefile.am index 0b74f95df..76d91733e 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 000000000..af8256050 --- /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 3aecfa679..d4fefcd7c 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 729fc4f5d..07501420a 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 - ] -- GitLab