[Pkg-haskell-commits] darcs: tools: Import patches for exceptions

Clint Adams clint at debian.org
Tue Dec 31 15:44:16 UTC 2013


Tue Dec 31 15:43:00 UTC 2013  Clint Adams <clint at debian.org>
  * Import patches for exceptions

    A ./all-packages/all-packages.cabal
    M ./all-packages/packages.txt -1 +1
    A ./all-packages/patches/exceptions/
    A ./all-packages/patches/exceptions/0.3.2/
    A ./all-packages/patches/exceptions/0.3.2/missing-testsuite.diff
    A ./all-packages/patches/exceptions/0.3.2/newer-quickcheck.diff
    A ./all-packages/patches/exceptions/0.3.2/series

Tue Dec 31 15:43:00 UTC 2013  Clint Adams <clint at debian.org>
  * Import patches for exceptions
diff -rN -u old-tools/all-packages/packages.txt new-tools/all-packages/packages.txt
--- old-tools/all-packages/packages.txt	2013-12-31 15:44:16.448320820 +0000
+++ new-tools/all-packages/packages.txt	2013-12-31 15:44:16.452320820 +0000
@@ -177,7 +177,7 @@
 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 -rN -u old-tools/all-packages/patches/exceptions/0.3.2/missing-testsuite.diff new-tools/all-packages/patches/exceptions/0.3.2/missing-testsuite.diff
--- old-tools/all-packages/patches/exceptions/0.3.2/missing-testsuite.diff	1970-01-01 00:00:00.000000000 +0000
+++ new-tools/all-packages/patches/exceptions/0.3.2/missing-testsuite.diff	2013-12-31 15:44:16.476320819 +0000
@@ -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 -rN -u old-tools/all-packages/patches/exceptions/0.3.2/newer-quickcheck.diff new-tools/all-packages/patches/exceptions/0.3.2/newer-quickcheck.diff
--- old-tools/all-packages/patches/exceptions/0.3.2/newer-quickcheck.diff	1970-01-01 00:00:00.000000000 +0000
+++ new-tools/all-packages/patches/exceptions/0.3.2/newer-quickcheck.diff	2013-12-31 15:44:16.476320819 +0000
@@ -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 -rN -u old-tools/all-packages/patches/exceptions/0.3.2/series new-tools/all-packages/patches/exceptions/0.3.2/series
--- old-tools/all-packages/patches/exceptions/0.3.2/series	1970-01-01 00:00:00.000000000 +0000
+++ new-tools/all-packages/patches/exceptions/0.3.2/series	2013-12-31 15:44:16.476320819 +0000
@@ -0,0 +1,2 @@
+newer-quickcheck.diff
+missing-testsuite.diff




More information about the Pkg-haskell-commits mailing list