def sendP2PMsg(self, src, dst, allNodeObservers): '''Send a P2P message from src to dst and verify it got there. Also check that no other nodes got it. ''' goodCounter = 0 for _ in range(numMessages): messageNum = random.randint(1,9999999) # Send the message status = yield TestUtils.sendP2P(src, dst, messageNum ) self.assertTrue(status,"sendP2PMsg failed! [%s] [%s] to [%s]" % (status, src, dst)) #yield TestUtils.wait(1) # Wait for the messages to send # Check receipt (both that one did and others did not) status = TestUtils.didNodeReceive(allNodeObservers,dst, messageNum) self.assertTrue(status,"Expected node did not receive the message!") status = TestUtils.didNotReceive(allNodeObservers, 'ALL', messageNum, len(allNodeObservers) - 1) self.assertTrue(status,"Extra nodes received message!") goodCounter += 1 self.assertTrue(goodCounter == numMessages, "sendP2P message did not finish all messages [%d][%d]" % (goodCounter, numMessages)) defer.returnValue(True)
def sendFailingP2PMsg(self, src, dst): '''Send a P2P message from src to dst that should fail to get there because they are in different enclaves. Also check that no other nodes got it. ''' for _ in range(numMessages): messageNum = random.randint(1,9999999) # Send the message status = yield TestUtils.sendP2P(src, dst, messageNum ) self.assertFalse(status,"sendP2PMsg succeeded but should have failed! [%s] to [%s]" % (src, dst)) defer.returnValue(True)