def setUp(self): self.autoseed = random.randint(0, 9999999999) self.seed = self.RAND_SEED if not self.seed: self.seed = self.autoseed self.myRandom = random.Random(self.seed) self.peer_controller = None self.peers = [ self.create_peer("P%d" % i, "127.0.0.1", 8500 + i) for i in range(self.NO_OF_PEERS) ] self.peer_controller = PeerController(self.peers, self.WORLD_SIZE, self.TOP_SPEED, self.MAX_SPEED_CHANGE, self.RADIO_RANGE, rand_seed=self.seed) #Start router self.router = Router("127.0.0.1", 8300, self.peers, self.peer_controller, self.USE_TICKS) self.router.start() self.ensure_peers_ready(self.peers) self.router.activate_queue() if self.VISUALIZE: self.visualizer = Visualizer(self.peers, self.peer_controller) self.visualizer.visualize()
def setUp(self): self.autoseed = random.randint(0, 9999999999) self.seed = self.RAND_SEED if not self.seed: self.seed = self.autoseed self.myRandom = random.Random(self.seed) self.peer_controller = None self.peers = [self.create_peer("P%d" % i, "127.0.0.1", 8500 + i) for i in range(self.NO_OF_PEERS)] self.peer_controller = PeerController( self.peers, self.WORLD_SIZE, self.TOP_SPEED, self.MAX_SPEED_CHANGE, self.RADIO_RANGE, rand_seed=self.seed ) # Start router self.router = Router("127.0.0.1", 8300, self.peers, self.peer_controller, self.USE_TICKS) self.router.start() self.ensure_peers_ready(self.peers) self.router.activate_queue() if self.VISUALIZE: self.visualizer = Visualizer(self.peers, self.peer_controller) self.visualizer.visualize()
print("Unknown command:", cmd) if __name__ == '__main__': host = sys.argv[1] port = int(sys.argv[2]) if len(sys.argv) > 3: visualize = (sys.argv[3] == "True") worldwidth = int(sys.argv[4]) worldheight = int(sys.argv[5]) topSpeed = int(sys.argv[6]) maxSpeedChange = int(sys.argv[7]) radioRange = int(sys.argv[8]) else: visualize = False worldwidth, worldheight = 2000, 2000 topSpeed = 140 maxSpeedChange = 50 radioRange = 500 peers = [] peer_controller = PeerController(peers, {'width': worldwidth, 'height': worldheight}, topSpeed, maxSpeedChange, radioRange) router = Router(host, port, peers, peer_controller, False) router.start() router.activate_queue() if visualize: peer_controller.visualize(block=False) router._main_loop()
class P2PTestCase(unittest.TestCase): NO_OF_PEERS = 1 VISUALIZE = False # Simulation params TOP_SPEED = 140 MAX_SPEED_CHANGE = 50 RADIO_RANGE = 500 WORLD_SIZE = {'width': 2000, 'height': 2000} # in centimeters USE_TICKS = False CLOCK_SYNC = False MANUAL_OVERRIDE = True RAND_SEED = None def setUp(self): self.autoseed = random.randint(0, 9999999999) self.seed = self.RAND_SEED if not self.seed: self.seed = self.autoseed self.myRandom = random.Random(self.seed) self.peer_controller = None self.peers = [ self.create_peer("P%d" % i, "127.0.0.1", 8500 + i) for i in range(self.NO_OF_PEERS) ] self.peer_controller = PeerController(self.peers, self.WORLD_SIZE, self.TOP_SPEED, self.MAX_SPEED_CHANGE, self.RADIO_RANGE, rand_seed=self.seed) #Start router self.router = Router("127.0.0.1", 8300, self.peers, self.peer_controller, self.USE_TICKS) self.router.start() self.ensure_peers_ready(self.peers) self.router.activate_queue() if self.VISUALIZE: self.visualizer = Visualizer(self.peers, self.peer_controller) self.visualizer.visualize() def tearDown(self): for peer in self.peers: peer.kill() self.router.shutdown() #print("SEED: " + str(self.seed)) def tick(self, num_msgs=1): self.router.tick(num_msgs) def wait_nw_idle(self): self.router.wait_queue_empty() def assertContains(self, msg, msg_part): try: self.assertTrue(msg_part in msg) except AssertionError: raise AssertionError("Msg: %s does not contain %s" % (msg, msg_part)) def assertNotContains(self, msg, msg_part): try: self.assertFalse(msg_part in msg) except AssertionError: raise AssertionError("Msg: %s does contain %s" % (msg, msg_part)) def create_peer(self, name, host, port): peer = PeerHandler(name, host, port, self.MANUAL_OVERRIDE, self.CLOCK_SYNC) if self.peer_controller: # Not set on first setup peer.setLocation(self.peer_controller.generateNewPeerLocation()) peer.setPeerController(self.peer_controller) if peer.process.returncode is not None: raise Exception("Peer " + peer.name + " quit immediately ") return peer def ensure_peers_ready(self, peers): for peer in peers: peer.expect_ready(20) def has_song_with_votes_in_playlist(self, playlist, song): for playlistitem in playlist: if playlistitem['song_name'] == song: if len(playlistitem['votes']) > 0: return True return False return False def assert_song_in_playlist(self, playlist, song): self.assertTrue(self.has_song_with_votes_in_playlist(playlist, song), "Song " + song + " was expected in playlist")
host = sys.argv[1] port = int(sys.argv[2]) if len(sys.argv) > 3: visualize = (sys.argv[3] == "True") worldwidth = int(sys.argv[4]) worldheight = int(sys.argv[5]) topSpeed = int(sys.argv[6]) maxSpeedChange = int(sys.argv[7]) radioRange = int(sys.argv[8]) else: visualize = False worldwidth, worldheight = 2000, 2000 topSpeed = 140 maxSpeedChange = 50 radioRange = 500 peers = [] peer_controller = PeerController(peers, { 'width': worldwidth, 'height': worldheight }, topSpeed, maxSpeedChange, radioRange) router = Router(host, port, peers, peer_controller, False) router.start() router.activate_queue() if visualize: peer_controller.visualize(block=False) router._main_loop()
class P2PTestCase(unittest.TestCase): NO_OF_PEERS = 1 VISUALIZE = False # Simulation params TOP_SPEED = 140 MAX_SPEED_CHANGE = 50 RADIO_RANGE = 500 WORLD_SIZE = {"width": 2000, "height": 2000} # in centimeters USE_TICKS = False CLOCK_SYNC = False MANUAL_OVERRIDE = True RAND_SEED = None def setUp(self): self.autoseed = random.randint(0, 9999999999) self.seed = self.RAND_SEED if not self.seed: self.seed = self.autoseed self.myRandom = random.Random(self.seed) self.peer_controller = None self.peers = [self.create_peer("P%d" % i, "127.0.0.1", 8500 + i) for i in range(self.NO_OF_PEERS)] self.peer_controller = PeerController( self.peers, self.WORLD_SIZE, self.TOP_SPEED, self.MAX_SPEED_CHANGE, self.RADIO_RANGE, rand_seed=self.seed ) # Start router self.router = Router("127.0.0.1", 8300, self.peers, self.peer_controller, self.USE_TICKS) self.router.start() self.ensure_peers_ready(self.peers) self.router.activate_queue() if self.VISUALIZE: self.visualizer = Visualizer(self.peers, self.peer_controller) self.visualizer.visualize() def tearDown(self): for peer in self.peers: peer.kill() self.router.shutdown() # print("SEED: " + str(self.seed)) def tick(self, num_msgs=1): self.router.tick(num_msgs) def wait_nw_idle(self): self.router.wait_queue_empty() def assertContains(self, msg, msg_part): try: self.assertTrue(msg_part in msg) except AssertionError: raise AssertionError("Msg: %s does not contain %s" % (msg, msg_part)) def assertNotContains(self, msg, msg_part): try: self.assertFalse(msg_part in msg) except AssertionError: raise AssertionError("Msg: %s does contain %s" % (msg, msg_part)) def create_peer(self, name, host, port): peer = PeerHandler(name, host, port, self.MANUAL_OVERRIDE, self.CLOCK_SYNC) if self.peer_controller: # Not set on first setup peer.setLocation(self.peer_controller.generateNewPeerLocation()) peer.setPeerController(self.peer_controller) if peer.process.returncode is not None: raise Exception("Peer " + peer.name + " quit immediately ") return peer def ensure_peers_ready(self, peers): for peer in peers: peer.expect_ready(20) def has_song_with_votes_in_playlist(self, playlist, song): for playlistitem in playlist: if playlistitem["song_name"] == song: if len(playlistitem["votes"]) > 0: return True return False return False def assert_song_in_playlist(self, playlist, song): self.assertTrue( self.has_song_with_votes_in_playlist(playlist, song), "Song " + song + " was expected in playlist" )