packages feed

tasty 0.11.0.4 → 0.11.1

raw patch · 7 files changed

+44/−53 lines, 7 files

Files

CHANGELOG.md view
@@ -1,6 +1,11 @@ Changes ======= +Version 0.11.1+--------------++Introduce `mkOptionCLParser` and `mkFlagCLParser`+ Version 0.11.0.4 ---------------- 
Test/Tasty/Ingredients/ConsoleReporter.hs view
@@ -334,7 +334,7 @@   parseValue = fmap Quiet . safeRead   optionName = return "quiet"   optionHelp = return "Do not produce any output; indicate success only by the exit code"-  optionCLParser = flagCLParser (Just 'q') (Quiet True)+  optionCLParser = mkFlagCLParser (short 'q') (Quiet True)  -- | Report only failed tests newtype HideSuccesses = HideSuccesses Bool@@ -344,7 +344,7 @@   parseValue = fmap HideSuccesses . safeRead   optionName = return "hide-successes"   optionHelp = return "Do not print tests that passed successfully"-  optionCLParser = flagCLParser Nothing (HideSuccesses True)+  optionCLParser = mkFlagCLParser mempty (HideSuccesses True)  -- | When to use color on the output data UseColor@@ -357,15 +357,6 @@   parseValue = parseUseColor   optionName = return "color"   optionHelp = return "When to use colored output. Options are 'never', 'always' and 'auto' (default: 'auto')"-  optionCLParser =-    option parse-      (  long name-      <> help (untag (optionHelp :: Tagged UseColor String))-      )-    where-      name = untag (optionName :: Tagged UseColor String)-      parse = str >>=-        maybe (readerError $ "Could not parse " ++ name) pure <$> parseValue  -- | @useColor when isTerm@ decides if colors should be used, --   where @isTerm@ denotes where @stdout@ is a terminal device.
Test/Tasty/Ingredients/ListTests.hs view
@@ -8,6 +8,8 @@  import Data.Typeable import Data.Proxy+import Data.Monoid+import Options.Applicative  import Test.Tasty.Core import Test.Tasty.Options@@ -22,7 +24,7 @@   parseValue = fmap ListTests . safeRead   optionName = return "list-tests"   optionHelp = return "Do not run the tests; just print their names"-  optionCLParser = flagCLParser (Just 'l') (ListTests True)+  optionCLParser = mkFlagCLParser (short 'l') (ListTests True)  -- | Obtain the list of all tests in the suite testsNames :: OptionSet -> TestTree -> [TestName]
Test/Tasty/Options.hs view
@@ -17,6 +17,8 @@   , OptionDescription(..)     -- * Utilities   , flagCLParser+  , mkFlagCLParser+  , mkOptionCLParser   , safeRead   ) where @@ -46,7 +48,9 @@   -- | A command-line option parser.   --   -- It has a default implementation in terms of the other methods.-  -- You may want to override it in some cases (e.g. add a short flag).+  -- You may want to override it in some cases (e.g. add a short flag) and+  -- 'flagCLParser', 'mkFlagCLParser' and 'mkOptionCLParser' might come in+  -- handy.   --   -- Even if you override this, you still should implement all the methods   -- above, to allow alternative interfaces.@@ -62,16 +66,7 @@   -- failing parser into an always-succeeding one that may return an empty   -- OptionSet.)   optionCLParser :: Parser v-  optionCLParser =-    option parse-      (  long name-      <> help helpString-      )-    where-      name = untag (optionName :: Tagged v String)-      helpString = untag (optionHelp :: Tagged v String)-      parse = str >>=-        maybe (readerError $ "Could not parse " ++ name) pure <$> parseValue+  optionCLParser = mkOptionCLParser mempty   data OptionValue = forall v . IsOption v => OptionValue v@@ -119,11 +114,32 @@   => Maybe Char -- ^ optional short flag   -> v          -- ^ non-default value (when the flag is supplied)   -> Parser v-flagCLParser mbShort v = flag' v-  (  foldMap short mbShort-  <> long (untag (optionName :: Tagged v String))+flagCLParser mbShort = mkFlagCLParser (foldMap short mbShort)++-- | Command-line flag parser that takes additional option modifiers.+mkFlagCLParser+  :: forall v . IsOption v+  => Mod FlagFields v -- ^ option modifier+  -> v                -- ^ non-default value (when the flag is supplied)+  -> Parser v+mkFlagCLParser mod v = flag' v+  (  long (untag (optionName :: Tagged v String))   <> help (untag (optionHelp :: Tagged v String))+  <> mod   )++-- | Command-line option parser that takes additional option modifiers.+mkOptionCLParser :: forall v . IsOption v => Mod OptionFields v -> Parser v+mkOptionCLParser mod =+  option parse+    (  long name+    <> help (untag (optionHelp :: Tagged v String))+    <> mod+    )+  where+    name = untag (optionName :: Tagged v String)+    parse = str >>=+      maybe (readerError $ "Could not parse " ++ name) pure <$> parseValue  -- | Safe read function. Defined here for convenience to use for -- 'parseValue'.
Test/Tasty/Options/Core.hs view
@@ -35,16 +35,7 @@   parseValue = mfilter onlyPositive . fmap NumThreads . safeRead   optionName = return "num-threads"   optionHelp = return "Number of threads to use for tests execution"-  optionCLParser =-    option parse-      (  short 'j'-      <> long name-      <> help (untag (optionHelp :: Tagged NumThreads String))-      )-    where-      name = untag (optionName :: Tagged NumThreads String)-      parse = str >>=-        maybe (readerError $ "Could not parse " ++ name) pure <$> parseValue+  optionCLParser = mkOptionCLParser (short 'j')  -- | Filtering function to prevent non-positive number of threads onlyPositive :: NumThreads -> Bool@@ -67,16 +58,7 @@       <*> pure str   optionName = return "timeout"   optionHelp = return "Timeout for individual tests (suffixes: ms,s,m,h; default: s)"-  optionCLParser =-    option parse-      (  short 't'-      <> long name-      <> help (untag (optionHelp :: Tagged Timeout String))-      )-    where-      name = untag (optionName :: Tagged Timeout String)-      parse = str >>=-        maybe (readerError $ "Could not parse " ++ name) pure <$> parseValue+  optionCLParser = mkOptionCLParser (short 't')  parseTimeout :: String -> Maybe Integer parseTimeout str =
Test/Tasty/Patterns.hs view
@@ -89,12 +89,7 @@   parseValue = Just . parseTestPattern   optionName = return "pattern"   optionHelp = return "Select only tests that match pattern"-  optionCLParser =-    option (fmap parseTestPattern str)-      (  short 'p'-      <> long (untag (optionName :: Tagged TestPattern String))-      <> help (untag (optionHelp :: Tagged TestPattern String))-      )+  optionCLParser = mkOptionCLParser (short 'p')  -- | Parse a pattern parseTestPattern :: String -> TestPattern
tasty.cabal view
@@ -2,7 +2,7 @@ --  see http://haskell.org/cabal/users-guide/  name:                tasty-version:             0.11.0.4+version:             0.11.1 synopsis:            Modern and extensible testing framework description:         Tasty is a modern testing framework for Haskell.                      It lets you combine your unit tests, golden