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)