def createSystem(self):
        """
        Create and return a brand new L{MemoryIOSystem}.

        The L{MemoryIOSystem} knows how to open new tunnel devices.

        @return: The newly created I/O system object.
        @rtype: L{MemoryIOSystem}
        """
        system = MemoryIOSystem()
        system.registerSpecialDevice(Tunnel._DEVICE_NAME, Tunnel)
        return system
 def setUp(self):
     """
     Create an in-memory I/O system and set up a L{TuntapPort} against it.
     """
     self.name = b"tun0"
     self.system = MemoryIOSystem()
     self.system.registerSpecialDevice(Tunnel._DEVICE_NAME, Tunnel)
     self.protocol = self.factory.buildProtocol(
         TunnelAddress(self.helper.TUNNEL_TYPE, self.name))
     self.reactor = FSSetClock()
     self.port = TuntapPort(self.name,
                            self.protocol,
                            reactor=self.reactor,
                            system=self.system)