.. when creating a map to be distributed to the master candidates.
Signed-off-by: Petr Pudlak <[email protected]>
---
Makefile.am | 1 +
test/hs/Test/Ganeti/WConfd/Ssconf.hs | 65 ++++++++++++++++++++++++++++++++++++
test/hs/htest.hs | 2 ++
3 files changed, 68 insertions(+)
create mode 100644 test/hs/Test/Ganeti/WConfd/Ssconf.hs
diff --git a/Makefile.am b/Makefile.am
index 916cddb..d2a8eba 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1129,6 +1129,7 @@ HS_TEST_SRCS = \
test/hs/Test/Ganeti/Utils.hs \
test/hs/Test/Ganeti/Utils/MultiMap.hs \
test/hs/Test/Ganeti/Utils/Statistics.hs \
+ test/hs/Test/Ganeti/WConfd/Ssconf.hs \
test/hs/Test/Ganeti/WConfd/TempRes.hs
diff --git a/test/hs/Test/Ganeti/WConfd/Ssconf.hs
b/test/hs/Test/Ganeti/WConfd/Ssconf.hs
new file mode 100644
index 0000000..53f4427
--- /dev/null
+++ b/test/hs/Test/Ganeti/WConfd/Ssconf.hs
@@ -0,0 +1,65 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+
+{-| Unittests for Ssconf writing
+
+-}
+
+{-
+
+Copyright (C) 2015 Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+1. Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-}
+
+module Test.Ganeti.WConfd.Ssconf (testWConfd_Ssconf) where
+
+import Test.QuickCheck
+
+import qualified Data.Map as M
+import qualified Data.Set as S
+
+import Test.Ganeti.Objects ()
+import Test.Ganeti.TestHelper
+import Test.Ganeti.TestCommon
+
+import Ganeti.Objects (ConfigData)
+import qualified Ganeti.Ssconf as Ssconf
+import qualified Ganeti.WConfd.Ssconf as Ssconf
+
+-- * Ssconf construction tests
+
+hasAllKeys :: Ssconf.SSConf -> Property
+hasAllKeys ssc =
+ counterexample "Missing SSConf key in the output" $
+ M.keysSet (Ssconf.getSSConf ssc) ==? S.fromList [minBound..maxBound]
+
+prop_mkSSConf_all_keys :: ConfigData -> Property
+prop_mkSSConf_all_keys = hasAllKeys . Ssconf.mkSSConf
+
+testSuite "WConfd/Ssconf"
+ [ 'prop_mkSSConf_all_keys
+ ]
diff --git a/test/hs/htest.hs b/test/hs/htest.hs
index 6168077..86d193e 100644
--- a/test/hs/htest.hs
+++ b/test/hs/htest.hs
@@ -95,6 +95,7 @@ import Test.Ganeti.Types
import Test.Ganeti.Utils
import Test.Ganeti.Utils.MultiMap
import Test.Ganeti.Utils.Statistics
+import Test.Ganeti.WConfd.Ssconf
import Test.Ganeti.WConfd.TempRes
-- | Our default test options, overring the built-in test-framework
@@ -167,6 +168,7 @@ allTests =
, testUtils
, testUtils_MultiMap
, testUtils_Statistics
+ , testWConfd_Ssconf
, testWConfd_TempRes
]
--
2.4.3.573.g4eafbef