Hello community, here is the log from the commit of package ghc-tasty-hspec for openSUSE:Factory checked in at 2017-07-06 00:03:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-tasty-hspec (Old) and /work/SRC/openSUSE:Factory/.ghc-tasty-hspec.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-tasty-hspec" Thu Jul 6 00:03:40 2017 rev:2 rq:508040 version:1.1.3.2 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-tasty-hspec/ghc-tasty-hspec.changes 2017-05-10 20:51:18.828105642 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-tasty-hspec.new/ghc-tasty-hspec.changes 2017-07-06 00:03:41.351850463 +0200 @@ -1,0 +2,10 @@ +Sun Jun 25 18:41:37 UTC 2017 - [email protected] + +- Update to version 1.1.3.2. + +------------------------------------------------------------------- +Mon Jun 19 21:01:46 UTC 2017 - [email protected] + +- Update to version 1.1.3.1 revision 2. + +------------------------------------------------------------------- Old: ---- tasty-hspec-1.1.3.1.tar.gz tasty-hspec.cabal New: ---- tasty-hspec-1.1.3.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-tasty-hspec.spec ++++++ --- /var/tmp/diff_new_pack.uKMR7T/_old 2017-07-06 00:03:42.639669039 +0200 +++ /var/tmp/diff_new_pack.uKMR7T/_new 2017-07-06 00:03:42.643668475 +0200 @@ -18,14 +18,13 @@ %global pkg_name tasty-hspec Name: ghc-%{pkg_name} -Version: 1.1.3.1 +Version: 1.1.3.2 Release: 0 Summary: Hspec support for the Tasty test framework License: BSD-3-Clause Group: Development/Languages/Other Url: https://hackage.haskell.org/package/%{pkg_name} Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz -Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal BuildRequires: ghc-Cabal-devel BuildRequires: ghc-QuickCheck-devel BuildRequires: ghc-hspec-core-devel @@ -54,7 +53,6 @@ %prep %setup -q -n %{pkg_name}-%{version} -cp -p %{SOURCE1} %{pkg_name}.cabal %build %ghc_lib_build ++++++ tasty-hspec-1.1.3.1.tar.gz -> tasty-hspec-1.1.3.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tasty-hspec-1.1.3.1/Test/Tasty/Hspec.hs new/tasty-hspec-1.1.3.2/Test/Tasty/Hspec.hs --- old/tasty-hspec-1.1.3.1/Test/Tasty/Hspec.hs 2017-01-25 16:57:36.000000000 +0100 +++ new/tasty-hspec-1.1.3.2/Test/Tasty/Hspec.hs 1970-01-01 01:00:00.000000000 +0100 @@ -1,137 +0,0 @@ -{-# LANGUAGE CPP #-} -{-# LANGUAGE DeriveDataTypeable #-} -{-# LANGUAGE InstanceSigs #-} - -module Test.Tasty.Hspec ( - -- * Test - testSpec - , testSpecs - -- * Options - -- | === Re-exported from <https://hackage.haskell.org/package/tasty-smallcheck tasty-smallcheck> - , SmallCheckDepth(..) - -- | === Re-exported from <https://hackage.haskell.org/package/tasty-quickcheck tasty-quickcheck> - , QuickCheckMaxRatio(..) - , QuickCheckMaxSize(..) - , QuickCheckReplay(..) - , QuickCheckTests(..) - -- * Hspec re-export - , module Test.Hspec - ) where - -import Control.Applicative ((<$>)) -import Data.Proxy -import Data.Tagged (Tagged) -import Data.Typeable (Typeable) - -import qualified Test.Hspec as H -import qualified Test.Hspec.Core.Formatters as H -import qualified Test.Hspec.Core.Spec as H -import qualified Test.QuickCheck as QC -import qualified Test.Tasty as T -import qualified Test.Tasty.SmallCheck as TSC -import qualified Test.Tasty.Options as T -import qualified Test.Tasty.Providers as T -import qualified Test.Tasty.QuickCheck as TQC -import qualified Test.Tasty.Runners as T - --- For re-export. -import Test.Hspec -import Test.Tasty.SmallCheck (SmallCheckDepth(..)) -import Test.Tasty.QuickCheck - (QuickCheckMaxRatio(..), QuickCheckMaxSize(..), QuickCheckReplay(..), - QuickCheckTests(..)) - --- | Create a <https://hackage.haskell.org/package/tasty tasty> 'T.TestTree' from an --- <https://hackage.haskell.org/package/hspec Hspec> 'H.Spec'. -testSpec :: T.TestName -> H.Spec -> IO T.TestTree -testSpec name spec = T.testGroup name <$> testSpecs spec - --- | Create a list of <https://hackage.haskell.org/package/tasty tasty> --- 'T.TestTree' from a <https://hackage.haskell.org/package/hspec Hspec> --- 'H.Spec' test. This returns the same tests as 'testSpec' but doesn't create --- a <https://hackage.haskell.org/package/tasty tasty> test group from them. -testSpecs :: H.Spec -> IO [T.TestTree] -testSpecs spec = map specTreeToTestTree <$> H.runSpecM spec - -specTreeToTestTree :: H.SpecTree () -> T.TestTree -specTreeToTestTree (H.Node name spec_trees) = - T.testGroup name (map specTreeToTestTree spec_trees) -specTreeToTestTree (H.NodeWithCleanup cleanup spec_trees) = - T.WithResource (T.ResourceSpec (return ()) cleanup) (const test_tree) - where - test_tree :: T.TestTree - test_tree = specTreeToTestTree (H.Node "(unnamed)" spec_trees) -specTreeToTestTree (H.Leaf item) = T.singleTest (H.itemRequirement item) (Item item) - -newtype Item = Item (H.Item ()) - deriving Typeable - -instance T.IsTest Item where - run :: T.OptionSet -> Item -> (T.Progress -> IO ()) -> IO T.Result - run opts (Item (H.Item _ _ _ ex)) progress = -#if MIN_VERSION_hspec(2,4,0) - either (T.testFailed . H.formatException) hspecResultToTastyResult -#else - hspecResultToTastyResult -#endif - <$> ex params ($ ()) hprogress - where - params :: H.Params - params = H.Params - { H.paramsQuickCheckArgs = qc_args - , H.paramsSmallCheckDepth = sc_depth - } - where - qc_args :: QC.Args - qc_args = QC.stdArgs - { QC.chatty = False - , QC.maxDiscardRatio = max_ratio - , QC.maxSize = max_size - , QC.maxSuccess = num_tests - , QC.replay = replay - } - where - TQC.QuickCheckTests num_tests = T.lookupOption opts - TQC.QuickCheckReplay replay = T.lookupOption opts - TQC.QuickCheckMaxSize max_size = T.lookupOption opts - TQC.QuickCheckMaxRatio max_ratio = T.lookupOption opts - - sc_depth :: Int - sc_depth = depth - where - TSC.SmallCheckDepth depth = T.lookupOption opts - - hprogress :: H.Progress -> IO () - hprogress (x,y) = progress (T.Progress - { T.progressText = "" - , T.progressPercent = fromIntegral x / fromIntegral y - }) - - testOptions :: Tagged Item [T.OptionDescription] - testOptions = return - [ T.Option (Proxy :: Proxy TQC.QuickCheckTests) - , T.Option (Proxy :: Proxy TQC.QuickCheckReplay) - , T.Option (Proxy :: Proxy TQC.QuickCheckMaxSize) - , T.Option (Proxy :: Proxy TQC.QuickCheckMaxRatio) - , T.Option (Proxy :: Proxy TSC.SmallCheckDepth) - ] - -hspecResultToTastyResult :: H.Result -> T.Result -hspecResultToTastyResult H.Success = T.testPassed "" -hspecResultToTastyResult (H.Pending mstr) = T.testFailed ("Test pending" ++ maybe "" (": " ++) mstr) -#if MIN_VERSION_hspec(2,4,0) -hspecResultToTastyResult (H.Failure _ reason) = - case reason of - H.NoReason -> T.testFailed "" - H.Reason str -> T.testFailed str - H.ExpectedButGot preface expected actual -> - T.testFailed $ mconcat - [ maybe "" (++ ": ") preface - , "expected " ++ expected - , ", but got " ++ actual - ] -#elif MIN_VERSION_hspec(2,2,0) -hspecResultToTastyResult (H.Fail _ str) = T.testFailed str -#else -hspecResultToTastyResult (H.Fail str) = T.testFailed str -#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tasty-hspec-1.1.3.1/src/Test/Tasty/Hspec.hs new/tasty-hspec-1.1.3.2/src/Test/Tasty/Hspec.hs --- old/tasty-hspec-1.1.3.1/src/Test/Tasty/Hspec.hs 1970-01-01 01:00:00.000000000 +0100 +++ new/tasty-hspec-1.1.3.2/src/Test/Tasty/Hspec.hs 2017-06-20 19:08:50.000000000 +0200 @@ -0,0 +1,149 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE DeriveDataTypeable #-} +{-# LANGUAGE InstanceSigs #-} +{-# LANGUAGE LambdaCase #-} + +module Test.Tasty.Hspec ( + -- * Test + testSpec + , testSpecs + -- * Options + -- | === Re-exported from <https://hackage.haskell.org/package/tasty-smallcheck tasty-smallcheck> + , SmallCheckDepth(..) + -- | === Re-exported from <https://hackage.haskell.org/package/tasty-quickcheck tasty-quickcheck> + , QuickCheckMaxRatio(..) + , QuickCheckMaxSize(..) + , QuickCheckReplay(..) + , QuickCheckTests(..) + -- * Hspec re-export + , module Test.Hspec + ) where + +import Control.Applicative ((<$>)) +import Data.Monoid (mconcat) +import Data.Proxy +import Data.Tagged (Tagged) +import Data.Typeable (Typeable) + +import qualified Test.Hspec as H +import qualified Test.Hspec.Core.Formatters as H +import qualified Test.Hspec.Core.Spec as H +import qualified Test.QuickCheck as QC +import qualified Test.Tasty as T +import qualified Test.Tasty.SmallCheck as TSC +import qualified Test.Tasty.Options as T +import qualified Test.Tasty.Providers as T +import qualified Test.Tasty.QuickCheck as TQC +import qualified Test.Tasty.Runners as T + +-- For re-export. +import Test.Hspec +import Test.Tasty.SmallCheck (SmallCheckDepth(..)) +import Test.Tasty.QuickCheck + (QuickCheckMaxRatio(..), QuickCheckMaxSize(..), QuickCheckReplay(..), + QuickCheckTests(..)) + +-- | Create a <https://hackage.haskell.org/package/tasty tasty> 'T.TestTree' from an +-- <https://hackage.haskell.org/package/hspec Hspec> 'H.Spec'. +testSpec :: T.TestName -> H.Spec -> IO T.TestTree +testSpec name spec = T.testGroup name <$> testSpecs spec + +-- | Create a list of <https://hackage.haskell.org/package/tasty tasty> +-- 'T.TestTree' from a <https://hackage.haskell.org/package/hspec Hspec> +-- 'H.Spec' test. This returns the same tests as 'testSpec' but doesn't create +-- a <https://hackage.haskell.org/package/tasty tasty> test group from them. +testSpecs :: H.Spec -> IO [T.TestTree] +testSpecs spec = map specTreeToTestTree <$> H.runSpecM spec + +specTreeToTestTree :: H.SpecTree () -> T.TestTree +specTreeToTestTree = \case + H.Node name spec_trees -> + T.testGroup name (map specTreeToTestTree spec_trees) + H.NodeWithCleanup cleanup spec_trees -> + T.WithResource (T.ResourceSpec (return ()) cleanup) (const test_tree) + where + test_tree :: T.TestTree + test_tree = specTreeToTestTree (H.Node "(unnamed)" spec_trees) + H.Leaf item -> + T.singleTest (H.itemRequirement item) (Item item) + +newtype Item = Item (H.Item ()) + deriving Typeable + +instance T.IsTest Item where + run :: T.OptionSet -> Item -> (T.Progress -> IO ()) -> IO T.Result + run opts (Item (H.Item _ _ _ ex)) progress = do + qc_args <- tastyOptionSetToQuickCheckArgs opts + + let params :: H.Params + params = H.Params + { H.paramsQuickCheckArgs = qc_args + , H.paramsSmallCheckDepth = sc_depth + } + +#if MIN_VERSION_hspec(2,4,0) + either (T.testFailed . H.formatException) hspecResultToTastyResult +#else + hspecResultToTastyResult +#endif + <$> ex params ($ ()) hprogress + where + sc_depth :: Int + sc_depth = depth + where + TSC.SmallCheckDepth depth = T.lookupOption opts + + hprogress :: H.Progress -> IO () + hprogress (x,y) = progress (T.Progress + { T.progressText = "" + , T.progressPercent = fromIntegral x / fromIntegral y + }) + + testOptions :: Tagged Item [T.OptionDescription] + testOptions = return + [ T.Option (Proxy :: Proxy TQC.QuickCheckTests) + , T.Option (Proxy :: Proxy TQC.QuickCheckReplay) + , T.Option (Proxy :: Proxy TQC.QuickCheckMaxSize) + , T.Option (Proxy :: Proxy TQC.QuickCheckMaxRatio) + , T.Option (Proxy :: Proxy TSC.SmallCheckDepth) + ] + +tastyOptionSetToQuickCheckArgs :: T.OptionSet -> IO QC.Args +tastyOptionSetToQuickCheckArgs opts = +#if MIN_VERSION_tasty_quickcheck(0,9,1) + snd <$> TQC.optionSetToArgs opts +#else + return (QC.stdArgs + { QC.chatty = False + , QC.maxDiscardRatio = max_ratio + , QC.maxSize = max_size + , QC.maxSuccess = num_tests + , QC.replay = replay + }) + where + TQC.QuickCheckTests num_tests = T.lookupOption opts + TQC.QuickCheckReplay replay = T.lookupOption opts + TQC.QuickCheckMaxSize max_size = T.lookupOption opts + TQC.QuickCheckMaxRatio max_ratio = T.lookupOption opts +#endif + +hspecResultToTastyResult :: H.Result -> T.Result +hspecResultToTastyResult = \case + H.Success -> T.testPassed "" + H.Pending mstr -> T.testFailed ("Test pending" ++ maybe "" (": " ++) mstr) +#if MIN_VERSION_hspec(2,4,0) + H.Failure _ reason -> + case reason of + H.NoReason -> T.testFailed "" + H.Reason str -> T.testFailed str + H.ExpectedButGot preface expected actual -> + T.testFailed $ mconcat + [ maybe "" (++ ": ") preface + , "expected " ++ expected + , ", but got " ++ actual + ] +#elif MIN_VERSION_hspec(2,2,0) + H.Fail _ str -> T.testFailed str +#else + H.Fail str -> T.testFailed str +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tasty-hspec-1.1.3.1/tasty-hspec.cabal new/tasty-hspec-1.1.3.2/tasty-hspec.cabal --- old/tasty-hspec-1.1.3.1/tasty-hspec.cabal 2017-01-25 18:49:59.000000000 +0100 +++ new/tasty-hspec-1.1.3.2/tasty-hspec.cabal 2017-06-20 19:08:51.000000000 +0200 @@ -1,5 +1,5 @@ name: tasty-hspec -version: 1.1.3.1 +version: 1.1.3.2 synopsis: Hspec support for the Tasty test framework. description: This package provides a Tasty provider for Hspec test suites. @@ -19,15 +19,17 @@ library exposed-modules: Test.Tasty.Hspec - other-extensions: DeriveDataTypeable - build-depends: base ==4.* - , hspec >=2 && <2.5 - , hspec-core >=2 && <2.5 - , QuickCheck >=2.7 - , tagged >=0.7 - , tasty >=0.8 - , tasty-smallcheck >=0.1 - , tasty-quickcheck >=0.3 + hs-source-dirs: src + build-depends: base >=4.6 && <5 + , hspec >=2 && <2.5 + , hspec-core >=2 && <2.5 + , QuickCheck >=2.7 && <2.11 + , tagged >=0.7 && <0.9 + , tasty >=0.8 && <0.12 + , tasty-smallcheck >=0.1 && <0.9 + -- 0.9 is missing 'optionSetToArgs' + , tasty-quickcheck >=0.3 && <0.9 || >=0.9.1 && <0.10 , random default-language: Haskell2010 ghc-options: -Wall +
