[Pkg-haskell-commits] [package-plan] 368/457: Import patches for exceptions

Joachim Breitner nomeata at moszumanska.debian.org
Mon Apr 14 20:05:49 UTC 2014


This is an automated email from the git hooks/post-receive script.

nomeata pushed a commit to branch master
in repository package-plan.

commit 396e866311f976216b998284030f351c2b3d8ba5
Author: Clint Adams <clint at debian.org>
Date:   Tue Dec 31 15:43:00 2013 +0000

    Import patches for exceptions
---
 all-packages.cabal                              |  0
 packages.txt                                    |  2 +-
 patches/exceptions/0.3.2/missing-testsuite.diff | 95 +++++++++++++++++++++++++
 patches/exceptions/0.3.2/newer-quickcheck.diff  |  8 +++
 patches/exceptions/0.3.2/series                 |  2 +
 5 files changed, 106 insertions(+), 1 deletion(-)

diff --git a/all-packages.cabal b/all-packages.cabal
new file mode 100644
index 0000000..e69de29
diff --git a/packages.txt b/packages.txt
index 54e69e7..e5de458 100644
--- a/packages.txt
+++ b/packages.txt
@@ -177,7 +177,7 @@ erf 2.0.0.0
 errors 1.4.4
 esqueleto 1.3.4.2
 event-list 0.1.0.2
-exceptions 0.3.2 patched for newer QuickCheck
+exceptions 0.3.2
 exception-transformers 0.3.0.3
 executable-path 0.0.3
 explicit-exception 0.1.7.1
diff --git a/patches/exceptions/0.3.2/missing-testsuite.diff b/patches/exceptions/0.3.2/missing-testsuite.diff
new file mode 100644
index 0000000..21bf92e
--- /dev/null
+++ b/patches/exceptions/0.3.2/missing-testsuite.diff
@@ -0,0 +1,95 @@
+--- /dev/null
++++ b/tests/Control/Monad/Catch/Tests.hs
+@@ -0,0 +1,92 @@
++{-# LANGUAGE DeriveDataTypeable #-}
++{-# LANGUAGE ScopedTypeVariables #-}
++{-# LANGUAGE ExistentialQuantification #-}
++{-# LANGUAGE NamedFieldPuns #-}
++{-# LANGUAGE CPP #-}
++
++module Control.Monad.Catch.Tests (tests) where
++
++#if defined(__GLASGOW_HASKELL__) && (__GLASGOW_HASKELL__ < 706)
++import Prelude hiding (catch)
++#endif
++
++import Control.Applicative ((<*>))
++import Data.Data (Data, Typeable)
++
++import Control.Monad.Trans.Identity (IdentityT(..))
++import Control.Monad.Reader (ReaderT(..))
++import Test.Framework (Test, testGroup)
++import Test.Framework.Providers.QuickCheck2 (testProperty)
++import Test.QuickCheck (Property, once)
++import Test.QuickCheck.Monadic (monadic, run, assert)
++import Test.QuickCheck.Property (morallyDubiousIOProperty)
++import qualified Control.Monad.State.Lazy as LazyState
++import qualified Control.Monad.State.Strict as StrictState
++import qualified Control.Monad.Writer.Lazy as LazyWriter
++import qualified Control.Monad.Writer.Strict as StrictWriter
++import qualified Control.Monad.RWS.Lazy as LazyRWS
++import qualified Control.Monad.RWS.Strict as StrictRWS
++
++import Control.Monad.Catch
++import Control.Monad.Catch.Pure
++
++data TestException = TestException String
++    deriving (Show, Eq, Data, Typeable)
++
++instance Exception TestException
++
++data MSpec = forall m. (MonadCatch m) => MSpec
++    { mspecName :: String
++    , mspecRunner :: (m Property -> Property)
++    }
++
++testMonadCatch :: MSpec -> Property
++testMonadCatch MSpec { mspecRunner } = monadic mspecRunner $
++    run $ catch failure handler
++  where
++    failure = throwM (TestException "foo") >> error "testMonadCatch"
++    handler (_ :: TestException) = return ()
++
++testCatchJust :: MSpec -> Property
++testCatchJust MSpec { mspecRunner } = monadic mspecRunner $ do
++    nice <- run $ catchJust testException posFailure posHandler
++    assert $ nice == ("pos", True)
++    bad <- run $ catch (catchJust testException negFailure posHandler) negHandler
++    assert $ bad == ("neg", True)
++  where
++    testException (TestException s) = if s == "pos" then Just True else Nothing
++    posHandler x = return ("pos", x)
++    negHandler (_ :: TestException) = return ("neg", True)
++    posFailure = throwM (TestException "pos") >> error "testCatchJust pos"
++    negFailure = throwM (TestException "neg") >> error "testCatchJust neg"
++
++tests :: Test
++tests = testGroup "Control.Monad.Catch.Tests" $
++    [ mkMonadCatch
++    , mkCatchJust
++    ] <*> mspecs
++  where
++    mspecs =
++        [ MSpec "IO" io
++        , MSpec "IdentityT IO" $ io . runIdentityT
++        , MSpec "LazyState.StateT IO" $ io . flip LazyState.evalStateT ()
++        , MSpec "StrictState.StateT IO" $ io . flip StrictState.evalStateT ()
++        , MSpec "ReaderT IO" $ io . flip runReaderT ()
++        , MSpec "LazyWriter.WriterT IO" $ io . fmap tfst . LazyWriter.runWriterT
++        , MSpec "StrictWriter.WriterT IO" $ io . fmap tfst . StrictWriter.runWriterT
++        , MSpec "LazyRWS.RWST IO" $ \m -> io $ fmap tfst $ LazyRWS.evalRWST m () ()
++        , MSpec "StrictRWS.RWST IO" $ \m -> io $ fmap tfst $ StrictRWS.evalRWST m () ()
++
++        , MSpec "CatchT Indentity" $ fromRight . runCatch
++        ]
++
++    tfst :: (Property, ()) -> Property = fst
++    fromRight (Left _) = error "fromRight"
++    fromRight (Right a) = a
++    io = morallyDubiousIOProperty
++
++    mkMonadCatch = mkTestType "MonadCatch" testMonadCatch
++    mkCatchJust = mkTestType "catchJust" testCatchJust
++
++    mkTestType name test = \spec ->
++        testProperty (name ++ " " ++ mspecName spec) $ once $ test spec
diff --git a/patches/exceptions/0.3.2/newer-quickcheck.diff b/patches/exceptions/0.3.2/newer-quickcheck.diff
new file mode 100644
index 0000000..2790eb6
--- /dev/null
+++ b/patches/exceptions/0.3.2/newer-quickcheck.diff
@@ -0,0 +1,8 @@
+--- a/exceptions.cabal
++++ b/exceptions.cabal
+@@ -56,4 +56,4 @@
+ 
+     test-framework             >= 0.8      && < 0.9,
+     test-framework-quickcheck2 >= 0.3      && < 0.4,
+-    QuickCheck                 >= 2.5      && < 2.6
++    QuickCheck                 >= 2.5      && < 2.7
diff --git a/patches/exceptions/0.3.2/series b/patches/exceptions/0.3.2/series
new file mode 100644
index 0000000..2be1e06
--- /dev/null
+++ b/patches/exceptions/0.3.2/series
@@ -0,0 +1,2 @@
+newer-quickcheck.diff
+missing-testsuite.diff

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-haskell/package-plan.git



More information about the Pkg-haskell-commits mailing list