[0O4      !"#$%&'()*+,-./0123!(c) Tim Watson, Jeff Epstein 2013BSD3 (see the file LICENSE) Tim Watson experimental#non-portable (requires concurrency)None!"059;AIOTControl signals used to manage test processes A simple Ping signal(A mutable cell containing a test result.6Does exactly what it says on the tin, doing so in the Process monad.Run the supplied testProc using an MVar> to collect and assert against its result. Uses the supplied note if the assertion fails.Takes the value of mv (using takeMVar) and asserts that it matches a$Create a new Logger. Logger uses a 44 to receive and process messages on a worker thread.Send a message to the Logger+Stop the worker thread for the given Logger(Starts a test process on the local node.Runs a  test process around the supplied proc@, which is executed whenever the outer process loop receives a 5 signal.Tell a  test process to continue executingTell a  test process to stop (i.e., 6)Tell a  test process8 to send a report (message) back to the calling process"789:5;   789:5; None !"059;AIOT DExtra operations required of transports for the purposes of testing."!The transport to use for testing.#5IO action to perform to simulate losing a connection. !"# !"# !"# !"#None !"059;AIOT<ALike fork, but throw exceptions in the child thread to the parent=The ping server from the paper>9Quick and dirty synchronous version of whereisRemoteAsync? Monitor or link to a remote node@Basic ping testA(Monitor a process on an unreachable nodeB+Monitor a process which terminates normallyC-Monitor a process which terminates abnormallyD,Monitor a local process that is already deadE-Monitor a remote process that is already deadF+Monitor a process that becomes disconnectedG(Test the math server (i.e., receiveWait)HSend first message (i.e. connect) to an already terminated process (without monitoring); then send another message to a second process on the same remote node (we're checking that the remote node did not die)ITest (non-zero) timeoutJTest zero timeoutKTest typed channelsLTest merging receive portsMVTests that unreliable messages arrive sorted even when there are connection failures.NTest O. This repeats the G$ but with a proxy server in betweenPTest O. This repeats the G7 but with a proxy server in between, however we block Q requests ....RTest S. We provide an echo7 server, but it ignores requests unless the text body /= "bar"X - this case should time out rather than removing the message from the process mailbox.TJTest Functor, Applicative, Alternative and Monad instances for ReceiveChanFUVQWXYZ[\]^<=>_?` for monitor, a for linkProcess to monitor/link to2MVar to signal on once the monitor has been set upb@ABCDEFGHIJKLcdefghijklmMNPnRopTqrstuvwxyz{|}~$%&'$$AUVQWXYZ[\]^<=>_?b@ABCDEFGHIJKLcdefghijklmMNPnRopTqrstuvwxyz{|}~$%&'None!"059;ADIOT2First argument indicates empty closure environmenthTests that spawn executes the supplied closure even if the caller dies immediately after calling spawn.uThis situation is of interest because the implementation of spawn has the remote peer monitor the caller. See DP-99.The condition is tested by using a transport which refuses to send to the remote peer the message that it is waiting to stop monitoring the caller, namely ().u used to ave a race condition which would be triggered if the spawning process terminates immediately after spawningG,,,G,None !"059;AIOT -.-- -.None!"059;AIOT1111None !"059;AIOT2222None !"059;AIOTSets the value of an environment variable while executing the given IO computation and restores the preceeding value upon completion.Tests that one and only one interesting trace message is produced when a given action is performed. A message is considered interesting when the given function return True.RTests that one and only one trace message is produced when a message is received.NTests that one and only one trace message is produced when a message is sent.JTests that one and only one trace message is produced when a process dies.HTests that one and only one trace message appears when a process spawns.PTests that one and only one trace message appears when a process is registered.RTests that one and only one trace message appears when a process is unregistered.3333       !"#$%&'(()*+,-.#&/0++123+++456789: ;<=>? @ABCDEFGHIJKLMNOP89QRST89UVWWSXXYY  Z[\][\^_`abcdefghijklmnopqrstuvwxyz{|}~86distributed-process-tests-0.4.7-6DqpFTdYtXsEgevfqlh9XH0Control.Distributed.Process.Tests.Internal.UtilsNetwork.Transport.Test$Control.Distributed.Process.Tests.CH)Control.Distributed.Process.Tests.Closure$Control.Distributed.Process.Tests.Mx)Control.Distributed.Process.Tests.Receive'Control.Distributed.Process.Tests.Stats)Control.Distributed.Process.Tests.TracingLoggerTestProcessControlPing TestResultpingnoopsynchronisedAssertionstash expectThatshouldBe shouldContainshouldNotContain shouldMatchdelayedAssertionassertComplete newLogger putLogMsg stopLoggerstartTestProcessrunTestProcess testProcessGotestProcessStoptestProcessReport tryRunProcesstryForkProcess$fBinaryTestProcessControl $fBinaryPing $fGenericPing$fEqPing $fShowPing$fGenericTestProcessControl TestTransport testTransporttestBreakConnectiontests$fBinaryDivByZero$fBinaryDivide $fBinaryAdd $fBinaryPong $fShowPong$fBinaryPublish$fGenericPublish $fEqPublish"stm-2.4.4.1-4z2NRWnB0NIIUvSJsHW0kFControl.Concurrent.STM.TQueueTQueueGo0distributed-process-0.6.5-D3qbaZGHNJBL5IvCOE0Mft/Control.Distributed.Process.Internal.Primitives terminate_tidmsgsStopReportforkTry whereisRemote monitorOrLinktestPingtestMonitorUnreachabletestMonitorNormalTerminationtestMonitorAbnormalTerminationtestMonitorLocalDeadProcesstestMonitorRemoteDeadProcesstestMonitorDisconnecttestMathtestSendToTerminated testTimeout testTimeout0testTypedChannelstestMergeChannels testUSend testMatchAnymatchAnytestMatchAnyHandleDividetestMatchAnyIf matchAnyIftestReceiveChanFeatures DivByZeroAddPongmathghc-prim GHC.TypesTrueFalsemonitorTestProcess testTerminatetestMonitorNodetestMonitorLiveNodetestMonitorChannel testRegistrytestRegistryRemoteProcesstestRemoteRegistrytestRemoteRegistryRemoteProcesstestSpawnLocaltestSpawnAsyncStrictness testReconnecttestMatchAnyNoHandletestMatchMessageWithUnwraptestReceiveChanTimeout testKillLocaltestKillRemotetestCatchesExittestHandleMessageIf testCatchestestMaskRestoreScopetestDietestPrettyExit testExitLocaltestExitRemotetestUnsafeSendtestUnsafeUSendtestUnsafeNSendtestUnsafeNSendRemotetestUnsafeSendChan testCallLocalsyncBreakConnectiontypedPingServer testSpawnRacetestSpawnTerminate*Control.Distributed.Process.Internal.Spawnspawndfib quintuplesdictInt factorialaddIntputIntsendPidwait expectUnitisPrimesignalfactorial__staticfactorial__sdictfactorial__tdictaddInt__static addInt__sdictputInt__static putInt__sdictsendPid__staticsendPid__sdictsendPid__tdictsdictInt__static wait__static wait__sdict wait__tdictexpectUnit__statictypedPingServer__statictypedPingServer__sdictisPrime__staticisPrime__sdictisPrime__tdictquintuple__staticsignal__static signal__sdict signal__tdict __remoteTable randomElement dfib__static dfib__sdict dfib__tdict__remoteTableDeclstaticQuintuplefactorialClosure addIntClosure putIntClosuresendPidClosuresendFac factorialOf factorial' waitClosuresimulateNetworkFailure testUnclosuretestBindtestSendPureClosuretestSendIOClosuretestSendProcClosure testSpawntestCall testCallBindtestSeqtestSpawnSupervisedtestSpawnInvalidtestClosureExpecttestSpawnChannel testTDicttestFibtestSpawnReconnectPublishtestAgentBroadcasttestAgentDualInputtestAgentPrioritisationtestAgentMailboxHandlingtestAgentEventHandlingtestAgentPublicationtestAgentTableCleartestAgentTablePurgetestAgentTableDeleterecTest1recTest2recTest3recTest4master testReceivetestLocalDeadProcessInfotestLocalLiveProcessInfotestRemoteLiveProcessInfowithEnvtestSystemLoggerMsgtestSystemLoggerMxReceivetestSystemLoggerMxSenttestSystemLoggerMxProcessDiedtestSystemLoggerMxSpawnedtestSystemLoggerMxRegisteredtestSystemLoggerMxUnRegisteredtestSpawnTracingtestTraceRecvExplicitPidtestTraceRecvNamedPidtestTraceSendingtestTraceRegistrationtestTraceUnRegistrationtestTraceLayeringtestRemoteTraceRelay