git.iko.soy/distributed-process
on master help sign in
See if blocking on registration still times out on travis...
660d554Tim Watson
distributed-process-tests/src/Control/Distributed/Process/Tests/CH.hs+12−8
unifiedsplit
@@ -1556,22 +1556,24 @@ testRegistryMonitoring :: TestTransport -> Assertion
1556testRegistryMonitoring TestTransport{..} = do
1556testRegistryMonitoring TestTransport{..} = do
1557 node1 <- newLocalNode testTransport initRemoteTable
1557 node1 <- newLocalNode testTransport initRemoteTable
1558 node2 <- newLocalNode testTransport initRemoteTable
1558 node2 <- newLocalNode testTransport initRemoteTable
1559− waitH <- newEmptyMVar
1560
1559
1561 let nid = localNodeId node2
1560 let nid = localNodeId node2
1562 pid <- forkProcess node1 $ do
1561 pid <- forkProcess node1 $ do
1563 self <- getSelfPid
1562 self <- getSelfPid
1564 runUntilRegistered nid self
1563 runUntilRegistered nid self
1565− say $ regName ++ " registered to " ++ show self
1564+ say $ (show self) ++ " registered as " ++ regName
1566− liftIO $ takeMVar waitH
1565+ expect :: Process ()
1566+ say $ (show self) ++ " exiting normally"
1567
1567
1568 runProcess node2 $ do
1568 runProcess node2 $ do
1569 register regName pid
1569 register regName pid
1570+ say $ regName ++ " registered to " ++ show pid
1570 res <- whereis regName
1571 res <- whereis regName
1572+ send pid ()
1573+ say $ " sent finish signal to " ++ show pid
1571 us <- getSelfPid
1574 us <- getSelfPid
1572− liftIO $ do
1573− putMVar waitH ()
1574− assertBool "expected (Just pid)" $ res == (Just pid)
1575+ liftIO $ assertBool "expected (Just pid)" $ res == (Just pid)
1576+
1575
1577
1576 -- This delay isn't essential!
1578 -- This delay isn't essential!
1577 -- The test case passes perfectly fine without it (feel free to comment out
1579 -- The test case passes perfectly fine without it (feel free to comment out
@@ -1610,11 +1612,13 @@ testRegistryMonitoring TestTransport{..} = do
1610
1612
1611 delayUntilMaybeUnregistered nid p = do
1613 delayUntilMaybeUnregistered nid p = do
1612 whereisRemoteAsync nid regName
1614 whereisRemoteAsync nid regName
1613− receiveTimeout 20000000 {- 20 sec delay -} [
1615+ res <- receiveTimeout 20000000 {- 20 sec delay -} [
1614 matchIf (\(WhereIsReply n p) -> n == regName && isNothing p)
1616 matchIf (\(WhereIsReply n p) -> n == regName && isNothing p)
1615 (const $ return ())
1617 (const $ return ())
1616 ]
1618 ]
1619+ case res of
1617− return ()
1620+ Just () -> return ()
1621+ Nothing -> delayUntilMaybeUnregistered nid p
1618
1622
1619 regName = "testRegisterRemote"
1623 regName = "testRegisterRemote"
1620
1624
untilfaildeleted−3
@@ -1,3 +0,0 @@
1−#!/bin/bash
2−
3−while $@; do :; done