-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Tests and test support tools for distributed-process. -- -- Tests and test support tools for distributed-process. @package distributed-process-tests @version 0.5.0 -- | This module provides basic building blocks for testing Cloud Haskell -- programs. module Control.Distributed.Process.Tests.Internal.Utils -- | A mutable cell containing a test result. type TestResult a = MVar a -- | A simple Ping signal data Ping Ping :: Ping ping :: ProcessId -> Process () shouldBe :: a -> Matcher a -> Process () shouldMatch :: a -> Matcher a -> Process () shouldContain :: (Show a, Eq a) => [a] -> a -> Process () shouldNotContain :: (Show a, Eq a) => [a] -> a -> Process () expectThat :: a -> Matcher a -> Process () synchronisedAssertion :: Eq a => String -> LocalNode -> a -> (TestResult a -> Process ()) -> MVar () -> Assertion -- | Control signals used to manage test processes data TestProcessControl -- | Starts a test process on the local node. startTestProcess :: Process () -> Process ProcessId -- | Runs a test process around the supplied proc, which is -- executed whenever the outer process loop receives a Go signal. runTestProcess :: Process () -> Process () -- | Tell a test process to continue executing testProcessGo :: ProcessId -> Process () -- | Tell a test process to stop (i.e., terminate) testProcessStop :: ProcessId -> Process () -- | Tell a test process to send a report (message) back to the -- calling process testProcessReport :: ProcessId -> Process () -- | Run the supplied testProc using an MVar to collect -- and assert against its result. Uses the supplied note if the -- assertion fails. delayedAssertion :: Eq a => String -> LocalNode -> a -> (TestResult a -> Process ()) -> Assertion -- | Takes the value of mv (using takeMVar) and asserts -- that it matches a assertComplete :: Eq a => String -> MVar a -> a -> IO () data Logger -- | Create a new Logger. Logger uses a TQueue to receive and -- process messages on a worker thread. newLogger :: IO Logger -- | Send a message to the Logger putLogMsg :: Logger -> String -> Process () -- | Stop the worker thread for the given Logger stopLogger :: Logger -> IO () tryRunProcess :: LocalNode -> Process () -> IO () tryForkProcess :: LocalNode -> Process () -> IO ProcessId -- | Does exactly what it says on the tin, doing so in the Process -- monad. noop :: Process () stash :: TestResult a -> a -> Process () instance GHC.Show.Show Control.Distributed.Process.Tests.Internal.Utils.Ping instance GHC.Classes.Eq Control.Distributed.Process.Tests.Internal.Utils.Ping instance GHC.Generics.Generic Control.Distributed.Process.Tests.Internal.Utils.Ping instance GHC.Generics.Generic Control.Distributed.Process.Tests.Internal.Utils.TestProcessControl instance Data.Binary.Class.Binary Control.Distributed.Process.Tests.Internal.Utils.TestProcessControl instance Data.Binary.Class.Binary Control.Distributed.Process.Tests.Internal.Utils.Ping module Network.Transport.Test -- | Extra operations required of transports for the purposes of testing. data TestTransport TestTransport :: Transport -> (EndPointAddress -> EndPointAddress -> IO ()) -> TestTransport -- | The transport to use for testing. [testTransport] :: TestTransport -> Transport -- | IO action to perform to simulate losing a connection. [testBreakConnection] :: TestTransport -> EndPointAddress -> EndPointAddress -> IO () module Control.Distributed.Process.Tests.Tracing tests :: TestTransport -> IO [Test] module Control.Distributed.Process.Tests.Stats tests :: TestTransport -> IO [Test] -- | XXX test doesn't work, because failure exceptions don't get -- propagated. The test always claims to succeed, even if it failed. module Control.Distributed.Process.Tests.Receive tests :: TestTransport -> IO [Test] module Control.Distributed.Process.Tests.Mx tests :: TestTransport -> IO [Test] instance GHC.Classes.Eq Control.Distributed.Process.Tests.Mx.Publish instance GHC.Generics.Generic Control.Distributed.Process.Tests.Mx.Publish instance Data.Binary.Class.Binary Control.Distributed.Process.Tests.Mx.Publish module Control.Distributed.Process.Tests.Closure tests :: TestTransport -> IO [Test] module Control.Distributed.Process.Tests.CH tests :: TestTransport -> IO [Test] instance GHC.Show.Show Control.Distributed.Process.Tests.CH.Ping instance Data.Binary.Class.Binary Control.Distributed.Process.Tests.CH.Ping instance GHC.Show.Show Control.Distributed.Process.Tests.CH.Pong instance Data.Binary.Class.Binary Control.Distributed.Process.Tests.CH.Pong instance Data.Binary.Class.Binary Control.Distributed.Process.Tests.CH.DivByZero instance Data.Binary.Class.Binary Control.Distributed.Process.Tests.CH.Divide instance Data.Binary.Class.Binary Control.Distributed.Process.Tests.CH.Add