packages feed

network-transport-tests 0.2.2.0 → 0.2.3.0

raw patch · 2 files changed

+32/−4 lines, 2 filesnew-uploaderPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Network.Transport.Tests.Auxiliary: instance [overlap ok] Show err => Traceable (TransportError err)
- Network.Transport.Tests.Auxiliary: instance [overlap ok] Traceable (Chan a)
- Network.Transport.Tests.Auxiliary: instance [overlap ok] Traceable Connection
- Network.Transport.Tests.Auxiliary: instance [overlap ok] Traceable EndPoint
- Network.Transport.Tests.Auxiliary: instance [overlap ok] Traceable EndPointAddress
- Network.Transport.Tests.Auxiliary: instance [overlap ok] Traceable Event
- Network.Transport.Tests.Auxiliary: instance [overlap ok] Traceable Float
- Network.Transport.Tests.Auxiliary: instance [overlap ok] Traceable SomeException
- Network.Transport.Tests.Auxiliary: instance [overlap ok] Traceable ThreadId
- Network.Transport.Tests.Auxiliary: instance [overlap ok] Traceable Transport
- Network.Transport.Tests.Traced: instance [overlap ok] (Traceable a, Traceable b) => Traceable (Either a b)
- Network.Transport.Tests.Traced: instance [overlap ok] (Traceable a, Traceable b) => Traceable (a, b)
- Network.Transport.Tests.Traced: instance [overlap ok] (Traceable a, Traceable b, Traceable c) => Traceable (a, b, c)
- Network.Transport.Tests.Traced: instance [overlap ok] Exception TracedException
- Network.Transport.Tests.Traced: instance [overlap ok] MonadS IO
- Network.Transport.Tests.Traced: instance [overlap ok] Show Showable
- Network.Transport.Tests.Traced: instance [overlap ok] Show TracedException
- Network.Transport.Tests.Traced: instance [overlap ok] Traceable ()
- Network.Transport.Tests.Traced: instance [overlap ok] Traceable (MVar a)
- Network.Transport.Tests.Traced: instance [overlap ok] Traceable Bool
- Network.Transport.Tests.Traced: instance [overlap ok] Traceable ByteString
- Network.Transport.Tests.Traced: instance [overlap ok] Traceable IOException
- Network.Transport.Tests.Traced: instance [overlap ok] Traceable Int
- Network.Transport.Tests.Traced: instance [overlap ok] Traceable Int32
- Network.Transport.Tests.Traced: instance [overlap ok] Traceable Int64
- Network.Transport.Tests.Traced: instance [overlap ok] Traceable Word32
- Network.Transport.Tests.Traced: instance [overlap ok] Traceable Word64
- Network.Transport.Tests.Traced: instance [overlap ok] Traceable [Char]
- Network.Transport.Tests.Traced: instance [overlap ok] Traceable a => Traceable (Maybe a)
- Network.Transport.Tests.Traced: instance [overlap ok] Traceable a => Traceable [a]
- Network.Transport.Tests.Traced: instance [overlap ok] Typeable TracedException
+ Network.Transport.Tests: testSelfSend :: Transport -> IO ()
+ Network.Transport.Tests.Auxiliary: instance GHC.Show.Show err => Network.Transport.Tests.Traced.Traceable (Network.Transport.TransportError err)
+ Network.Transport.Tests.Auxiliary: instance Network.Transport.Tests.Traced.Traceable (Control.Concurrent.Chan.Chan a)
+ Network.Transport.Tests.Auxiliary: instance Network.Transport.Tests.Traced.Traceable GHC.Conc.Sync.ThreadId
+ Network.Transport.Tests.Auxiliary: instance Network.Transport.Tests.Traced.Traceable GHC.Exception.SomeException
+ Network.Transport.Tests.Auxiliary: instance Network.Transport.Tests.Traced.Traceable GHC.Types.Float
+ Network.Transport.Tests.Auxiliary: instance Network.Transport.Tests.Traced.Traceable Network.Transport.Connection
+ Network.Transport.Tests.Auxiliary: instance Network.Transport.Tests.Traced.Traceable Network.Transport.EndPoint
+ Network.Transport.Tests.Auxiliary: instance Network.Transport.Tests.Traced.Traceable Network.Transport.EndPointAddress
+ Network.Transport.Tests.Auxiliary: instance Network.Transport.Tests.Traced.Traceable Network.Transport.Event
+ Network.Transport.Tests.Auxiliary: instance Network.Transport.Tests.Traced.Traceable Network.Transport.Transport
+ Network.Transport.Tests.Traced: instance (Network.Transport.Tests.Traced.Traceable a, Network.Transport.Tests.Traced.Traceable b) => Network.Transport.Tests.Traced.Traceable (Data.Either.Either a b)
+ Network.Transport.Tests.Traced: instance (Network.Transport.Tests.Traced.Traceable a, Network.Transport.Tests.Traced.Traceable b) => Network.Transport.Tests.Traced.Traceable (a, b)
+ Network.Transport.Tests.Traced: instance (Network.Transport.Tests.Traced.Traceable a, Network.Transport.Tests.Traced.Traceable b, Network.Transport.Tests.Traced.Traceable c) => Network.Transport.Tests.Traced.Traceable (a, b, c)
+ Network.Transport.Tests.Traced: instance GHC.Exception.Exception Network.Transport.Tests.Traced.TracedException
+ Network.Transport.Tests.Traced: instance GHC.Show.Show Network.Transport.Tests.Traced.Showable
+ Network.Transport.Tests.Traced: instance GHC.Show.Show Network.Transport.Tests.Traced.TracedException
+ Network.Transport.Tests.Traced: instance Network.Transport.Tests.Traced.MonadS GHC.Types.IO
+ Network.Transport.Tests.Traced: instance Network.Transport.Tests.Traced.Traceable ()
+ Network.Transport.Tests.Traced: instance Network.Transport.Tests.Traced.Traceable (GHC.MVar.MVar a)
+ Network.Transport.Tests.Traced: instance Network.Transport.Tests.Traced.Traceable Data.ByteString.Internal.ByteString
+ Network.Transport.Tests.Traced: instance Network.Transport.Tests.Traced.Traceable GHC.IO.Exception.IOException
+ Network.Transport.Tests.Traced: instance Network.Transport.Tests.Traced.Traceable GHC.Int.Int32
+ Network.Transport.Tests.Traced: instance Network.Transport.Tests.Traced.Traceable GHC.Int.Int64
+ Network.Transport.Tests.Traced: instance Network.Transport.Tests.Traced.Traceable GHC.Types.Bool
+ Network.Transport.Tests.Traced: instance Network.Transport.Tests.Traced.Traceable GHC.Types.Int
+ Network.Transport.Tests.Traced: instance Network.Transport.Tests.Traced.Traceable GHC.Word.Word32
+ Network.Transport.Tests.Traced: instance Network.Transport.Tests.Traced.Traceable GHC.Word.Word64
+ Network.Transport.Tests.Traced: instance Network.Transport.Tests.Traced.Traceable [GHC.Types.Char]
+ Network.Transport.Tests.Traced: instance Network.Transport.Tests.Traced.Traceable a => Network.Transport.Tests.Traced.Traceable (GHC.Base.Maybe a)
+ Network.Transport.Tests.Traced: instance Network.Transport.Tests.Traced.Traceable a => Network.Transport.Tests.Traced.Traceable [a]

Files

network-transport-tests.cabal view
@@ -1,12 +1,12 @@ name:                network-transport-tests-version:             0.2.2.0+version:             0.2.3.0 synopsis:            Unit tests for Network.Transport implementations -- description: homepage:            http://haskell-distributed.github.com license:             BSD3 license-file:        LICENSE author:              Edsko de Vries-maintainer:          edsko@well-typed.com, watson.timothy@gmail.com+maintainer:          Facundo Domínguez <facundo.dominguez@tweag.io> copyright:           Well-Typed LLP category:            Network build-type:          Simple
src/Network/Transport/Tests.hs view
@@ -12,7 +12,14 @@   ) import Control.Concurrent (forkIO, killThread, yield) import Control.Concurrent.MVar (newEmptyMVar, takeMVar, putMVar, readMVar, tryTakeMVar, modifyMVar_, newMVar)-import Control.Exception (evaluate, throw, throwIO, bracket)+import Control.Exception+  ( evaluate+  , throw+  , throwIO+  , bracket+  , catch+  , ErrorCall(..)+  ) import Control.Monad (replicateM, replicateM_, when, guard, forM_, unless) import Control.Monad.Error () import Control.Applicative ((<$>))@@ -392,6 +399,21 @@    takeMVar done +-- | Test that sending an error to self gives an error in the sender+testSelfSend :: Transport -> IO ()+testSelfSend transport = do+    Right endpoint <- newEndPoint transport++    Right conn <- connect endpoint (address endpoint) ReliableOrdered+                          defaultConnectHints++    do send conn [ error "bang!" ]+       error "testSelfSend: send didn't fail"+     `catch` (\(ErrorCall "bang!") -> return ())++    close conn+    closeEndPoint endpoint+ -- | Test that sending on a closed connection gives an error testSendAfterClose :: Transport -> Int -> IO () testSendAfterClose transport numRepeats = do@@ -573,7 +595,12 @@   -- Close the transport; now the second should no longer work   closeTransport transport   Left (TransportError SendFailed _) <- send conn3 ["ping"]-  Left (TransportError ConnectFailed _) <- connect endpoint2 (address endpoint2) ReliableOrdered defaultConnectHints+  Left r <- connect endpoint2 (address endpoint2) ReliableOrdered defaultConnectHints+  case r of+    TransportError ConnectFailed _ -> return ()+    _ -> do putStrLn $ "Actual: " ++ show r+            TransportError ConnectFailed _ <- return r+            return ()    return () @@ -954,6 +981,7 @@     , ("CloseOneDirection",     testCloseOneDirection transport numPings)     , ("CloseReopen",           testCloseReopen transport numPings)     , ("ParallelConnects",      testParallelConnects transport numPings)+    , ("SelfSend",              testSelfSend transport)     , ("SendAfterClose",        testSendAfterClose transport 100)     , ("Crossing",              testCrossing transport 10)     , ("CloseTwice",            testCloseTwice transport 100)