def simulation_main(args, simulation, help): """Wraps a simulation function with command-line support.""" usage = """Usage: %%prog [OPTIONS] NETINFO %s""" % help parser = optparse.OptionParser(usage) parser.add_option('-v', '--verbose', dest='vlevel', action="count", default=0, help='Increase verbose level)') parser.add_option('-r', '--report', dest='report', default=None, help='Use a Radio Mobile report file') options, args0 = parser.parse_args(args) set_logging_level(options.vlevel) if options.report: network = wwnetwork.create_network_from_report_file(options.report) elif len(args0) == 1: filename, = args0 network = wwnetwork.create_network_from_yaml_file(filename) else: parser.print_help() return 2 return simulation(network)
def test_create_network_from_report_file(self): path = self._get_report_file() network = wwnetwork.create_network_from_report_file(path) josjo2 = network.nodes["Josjojauarina 2"] self.assertEqual(josjo2.name, "Josjojauarina 2") self.assert_(isinstance(josjo2.ns3_node, ns3.Node)) self.assertEqual(josjo2.location, [21728, 5837]) self.assertEqual(set(josjo2.devices.keys()), set(["Josjo1-Josjo2-wifi2", "Josjo2-wimax1"])) wifi2 = josjo2.devices["Josjo1-Josjo2-wifi2"] self.assert_(isinstance(wifi2.ns3_device, ns3.WifiNetDevice)) self.assert_(isinstance(wifi2.helper, ns3.WifiHelper)) self.assert_(isinstance(wifi2.phy_helper, ns3.WifiPhyHelper)) self.assertEqual(len(wifi2.interfaces), 1) self.assert_(isinstance(wifi2.interfaces[0].address, ns3.Ipv4Address)) wimax1 = josjo2.devices["Josjo2-wimax1"] self.assert_(isinstance(wimax1.ns3_device, ns3.BaseStationNetDevice)) self.assert_(isinstance(wimax1.helper, ns3.WimaxHelper)) self.assertEqual(len(wimax1.interfaces), 1) self.assert_(isinstance(wimax1.interfaces[0].address, ns3.Ipv4Address))