def create_context(self): try: self.ctx = Context(cmd_fd=self.cmd_fd) except u.PyverbsRDMAError as ex: if ex.error_code in [errno.EOPNOTSUPP, errno.EPROTONOSUPPORT]: raise unittest.SkipTest( 'Importing a device is not supported') raise ex
def __init__(self, dev_name, ib_port, gid_index): """ Initializes a BaseResources object. :param dev_name: Device name to be used (default: 'ibp0s8f0') :param ib_port: IB port of the device to use (default: 1) :param gid_index: Which GID index to use (default: 0) """ self.ctx = Context(name=dev_name) self.gid_index = gid_index self.pd = PD(self.ctx) self.ib_port = ib_port
def test_import_dm(self): """ Creates a DM and imports it from a different (duplicated) Context. Then writes some data to the original DM, reads it from the imported DM and verifies that the read data is as expected. """ with d.DM(self.ctx, d.AllocDmAttr(length=self.dm_size)) as dm: cmd_fd_dup = os.dup(self.ctx.cmd_fd) try: imported_ctx = Context(cmd_fd=cmd_fd_dup) imported_dm = DM(imported_ctx, handle=dm.handle) except PyverbsRDMAError as ex: if ex.error_code in [errno.EOPNOTSUPP, errno.EPROTONOSUPPORT]: raise unittest.SkipTest('Some object imports are not supported') raise ex original_data = b'\xab' * self.dm_size dm.copy_to_dm(0, original_data, self.dm_size) read_data = imported_dm.copy_from_dm(0, self.dm_size) self.assertEqual(original_data, read_data) imported_dm.unimport()
def create_context(self): self.ctx = Context(name=self.dev_name)