Îõ³h,57      !"#$%&'()*+,-./0123456 0.4.12!(c) Tim Watson, Jeff Epstein 2013BSD3 (see the file LICENSE) Tim Watson experimental#non-portable (requires concurrency)None%&7<ÂÄÊÒØÝdistributed-process-testsControl signals used to manage test processesdistributed-process-tests A simple Ping signaldistributed-process-tests(A mutable cell containing a test result.distributed-process-tests6Does exactly what it says on the tin, doing so in the Process monad.distributed-process-testsRun the supplied testProc using an MVar> to collect and assert against its result. Uses the supplied note if the assertion fails.distributed-process-testsTakes the value of mv (using takeMVar) and asserts that it matches adistributed-process-tests$Create a new Logger. Logger uses a 74 to receive and process messages on a worker thread.distributed-process-testsSend a message to the Loggerdistributed-process-tests+Stop the worker thread for the given Loggerdistributed-process-tests(Starts a test process on the local node.distributed-process-testsRuns a  test process around the supplied procÀ, which is executed whenever the outer process loop receives a 8 signal.distributed-process-testsTell a  test process to continue executingdistributed-process-testsTell a  test process to stop (i.e., 9)distributed-process-testsTell a  test process8 to send a report (message) back to the calling process       None %&7<ÂÄÊÒØÝr#distributed-process-testsÄExtra operations required of transports for the purposes of testing.%distributed-process-tests5IO action to perform to simulate losing a connection.&distributed-process-tests!The transport to use for testing.#$%&#%&$None %&7<ÂÄÊÒØÝ Á:distributed-process-tests†Sets the value of an environment variable while executing the given IO computation and restores the preceeding value upon completion.;distributed-process-tests©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.<distributed-process-testsÒTests that one and only one trace message is produced when a message is received.=distributed-process-testsÎTests that one and only one trace message is produced when a message is sent.>distributed-process-testsÊTests that one and only one trace message is produced when a process dies.?distributed-process-testsÈTests that one and only one trace message appears when a process spawns.@distributed-process-testsÐTests that one and only one trace message appears when a process is registered.Adistributed-process-testsÒTests that one and only one trace message appears when a process is unregistered.''None %&7<ÂÄÊÒØÝ ó((None%&7<ÂÄÊÒØÝ '))None %&7<ÂÄÊÏÒØÝ [**None%&7<ÂÄÊÍÒØÝ,Bdistributed-process-tests2First argument indicates empty closure environmentCdistributed-process-testsèTests that spawn executes the supplied closure even if the caller dies immediately after calling spawn.õThis 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 ().Ddistributed-process-testsEõ used to ave a race condition which would be triggered if the spawning process terminates immediately after spawning..None %&7<ÂÄÊÒØÝ.Fdistributed-process-testsÁLike fork, but throw exceptions in the child thread to the parentGdistributed-process-testsThe ping server from the paperHdistributed-process-tests9Quick and dirty synchronous version of whereisRemoteAsyncIdistributed-process-tests Monitor or link to a remote nodeJdistributed-process-testsBasic ping testKdistributed-process-tests(Monitor a process on an unreachable nodeLdistributed-process-tests+Monitor a process which terminates normallyMdistributed-process-tests-Monitor a process which terminates abnormallyNdistributed-process-tests,Monitor a local process that is already deadOdistributed-process-tests-Monitor a remote process that is already deadPdistributed-process-tests+Monitor a process that becomes disconnectedQdistributed-process-tests(Test the math server (i.e., receiveWait)Rdistributed-process-testsÒSend 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)Sdistributed-process-testsTest (non-zero) timeoutTdistributed-process-testsTest zero timeoutUdistributed-process-testsTest typed channelsVdistributed-process-testsTest merging receive portsWdistributed-process-testsÖTests that unreliable messages arrive sorted even when there are connection failures.Xdistributed-process-testsTest Y. This repeats the Q$ but with a proxy server in betweenZdistributed-process-testsTest Y. This repeats the Q7 but with a proxy server in between, however we block [ requests ....\distributed-process-testsTest ]. We provide an echo7 server, but it ignores requests unless the text body /= "bar"Ø - this case should time out rather than removing the message from the process mailbox.^distributed-process-testsÊTest Functor, Applicative, Alternative and Monad instances for ReceiveChanIdistributed-process-tests_ for monitor, ` for linkdistributed-process-testsProcess to monitor/link todistributed-process-tests2MVar to signal on once the monitor has been set up//á      !"#$%&'()*+,,,-,.////012//34567$+89:;<=>?@ABCDEFGHI