def test_ports(self): """ Simple validator for port methods. """ from magma.pkt_tester.topology_builder import ( TopologyBuilder, UseAfterFreeException, ) self._topology_builder = TopologyBuilder() bridge = self._topology_builder.create_bridge(self.TEST_BRIDGE_NAME) ip_address = self.TEST_IP_PREFIX + "2" iface_name = self.TEST_INT_PREFIX + "0" port = self._topology_builder.bind(iface_name, bridge) self._topology_builder.create_interface( iface_name, ip_address, self.TEST_NETMASK, ) self.assertEqual(port.bridge_name, self.TEST_BRIDGE_NAME) self.assertEqual(port.iface_name, iface_name) self.assertFalse(self._topology_builder.invalid_devices()) # Verify that the port number read back is > 0. self.assertTrue(port.port_no >= 0) port.destroy(free_resource=False) self.assertRaises(UseAfterFreeException, port.destroy) self.assertRaises(UseAfterFreeException, port.sanity_check) # Cleanup self._topology_builder.destroy()
def test_iface(self): """ Simple validator for iface methods """ from magma.pkt_tester.topology_builder import ( TopologyBuilder, UseAfterFreeException, ) self._topology_builder = TopologyBuilder() ip_address = self.TEST_IP_PREFIX + "2" iface_name = self.TEST_INT_PREFIX + "0" bridge = self._topology_builder.create_bridge(self.TEST_BRIDGE_NAME) self._topology_builder.bind(iface_name, bridge) iface = self._topology_builder.create_interface( iface_name, ip_address, self.TEST_NETMASK, ) self.assertEqual(iface.name, iface_name) self.assertEqual(iface.ip_address, ip_address) self.assertEqual(iface.netmask, self.TEST_NETMASK) iface.destroy() self.assertRaises(UseAfterFreeException, iface.up) self.assertRaises(UseAfterFreeException, iface.sanity_check)
def test_bridge(self): """ Simple validator for bridge methods """ from magma.pkt_tester.topology_builder import ( TopologyBuilder, UseAfterFreeException, ) self._topology_builder = TopologyBuilder() bridge = self._topology_builder.create_bridge(self.TEST_BRIDGE_NAME) self.assertEqual(bridge.name, self.TEST_BRIDGE_NAME) bridge.destroy() iface_name = self.TEST_INT_PREFIX + "0" self.assertRaises( UseAfterFreeException, bridge.add_virtual_port, iface_name, "internal", ) self.assertRaises( UseAfterFreeException, bridge.add_physical_port, "eth0", ) self.assertRaises(UseAfterFreeException, bridge.sanity_check)
def _generate_topology(self): # import here, after we've checked the environment from ovstest import util from magma.pkt_tester.topology_builder import TopologyBuilder self._topo_builder = TopologyBuilder() # set up a simple topology bridge = self._topo_builder.create_bridge(self.TEST_BRIDGE) self._port_no = {} for iface_name, ip_address in self.TEST_IPS.items(): port = self._topo_builder.bind(iface_name, bridge) self._topo_builder.create_interface(iface_name, ip_address, self.TEST_NETMASK) self._port_no[iface_name] = port.port_no self.assertFalse(self._topo_builder.invalid_devices())
def test_create_ovs_topology(self): """ Creates a test topology with a test bridge and two interfaces with ip addresses assigned. """ from magma.pkt_tester.topology_builder import TopologyBuilder self._topology_builder = TopologyBuilder() bridge = self._topology_builder.create_bridge(self.TEST_BRIDGE_NAME) for i in range(0, 2): ip_address = self.TEST_IP_PREFIX + str(i + 2) iface_name = self.TEST_INT_PREFIX + str(i) self._topology_builder.bind(iface_name, bridge) self._topology_builder.create_interface(iface_name, ip_address, self.TEST_NETMASK) self.assertFalse(self._topology_builder.invalid_devices())