RAPI: read the group UUID from the server
[ganeti-local] / test.hs
diff --git a/test.hs b/test.hs
index 35cc26e..12aa50d 100644 (file)
--- a/test.hs
+++ b/test.hs
@@ -29,17 +29,18 @@ import Data.IORef
 import Test.QuickCheck.Batch
 import System.IO
 import System.Exit
+import System (getArgs)
 
 import Ganeti.HTools.QC
 
-fastOptions :: TestOptions
-fastOptions = TestOptions
+fast :: TestOptions
+fast = TestOptions
               { no_of_tests         = 500
               , length_of_tests     = 10
               , debug_tests         = False }
 
-slowOptions :: TestOptions
-slowOptions = TestOptions
+slow :: TestOptions
+slow = TestOptions
               { no_of_tests         = 50
               , length_of_tests     = 100
               , debug_tests         = False }
@@ -55,21 +56,35 @@ wrapTest ir t to = do
     tr <- t to
     case tr of
       TestFailed _ _ -> incIORef ir
-      TestAborted _ -> incIORef ir
+      TestAborted e -> do
+        incIORef ir
+        putStrLn ("Failure during test: <" ++ show e ++ ">")
       _ -> return ()
     return tr
 
+allTests :: [(String, TestOptions, [TestOptions -> IO TestResult])]
+allTests =
+  [ ("Utils", fast, testUtils)
+  , ("PeerMap", fast, testPeerMap)
+  , ("Container", fast, testContainer)
+  , ("Instance", fast, testInstance)
+  , ("Node", fast, testNode)
+  , ("Text", fast, testText)
+  , ("OpCodes", fast, testOpCodes)
+  , ("Jobs", fast, testJobs)
+  , ("Loader", fast, testLoader)
+  , ("Cluster", slow, testCluster)
+  ]
+
 main :: IO ()
 main = do
   errs <- newIORef 0
   let wrap = map (wrapTest errs)
-  runTests "PeerMap" fastOptions $ wrap testPeerMap
-  runTests "Container" fastOptions $ wrap testContainer
-  runTests "Instance" fastOptions $ wrap testInstance
-  runTests "Node" fastOptions $ wrap testNode
-  runTests "Text" fastOptions $ wrap testText
-  runTests "OpCodes" fastOptions $ wrap testOpCodes
-  runTests "Cluster" slowOptions $ wrap testCluster
+  args <- getArgs
+  let tests = if null args
+              then allTests
+              else filter (\(name, _, _) -> name `elem` args) allTests
+  mapM_ (\(name, opts, tl) -> runTests name opts (wrap tl)) tests
   terr <- readIORef errs
   (if terr > 0
    then do