Esempio n. 1
0
 def test_dereg_mr(self):
     """ Test ibv_dereg_mr() """
     lst = d.get_device_list()
     for dev in lst:
         with d.Context(name=dev.name.decode()) as ctx:
             with PD(ctx) as pd:
                 with MR(pd, u.get_mr_length(), u.get_access_flags()) as mr:
                     mr.close()
Esempio n. 2
0
 def test_dereg_mr(self):
     """ Test ibv_dereg_mr() """
     for ctx, attr, attr_ex in self.devices:
         with PD(ctx) as pd:
             flags = u.get_access_flags(ctx)
             for f in flags:
                 with MR(pd, u.get_mr_length(), f) as mr:
                     mr.close()
Esempio n. 3
0
 def test_dereg_mr_twice(self):
     """ Verify that explicit call to MR's close() doesn't fails """
     lst = d.get_device_list()
     for dev in lst:
         with d.Context(name=dev.name.decode()) as ctx:
             with PD(ctx) as pd:
                 with MR(pd, u.get_mr_length(), u.get_access_flags()) as mr:
                     # Pyverbs supports multiple destruction of objects, we are
                     # not expecting an exception here.
                     mr.close()
                     mr.close()
Esempio n. 4
0
 def test_buffer(self):
     """
     Test reading buf property
     """
     lst = d.get_device_list()
     for dev in lst:
         with d.Context(name=dev.name.decode()) as ctx:
             with PD(ctx) as pd:
                 length = u.get_mr_length()
                 with MR(pd, length, u.get_access_flags()) as mr:
                     buf = mr.buf
Esempio n. 5
0
 def test_dereg_mr_twice(self):
     """ Verify that explicit call to MR's close() doesn't fails """
     for ctx, attr, attr_ex in self.devices:
         with PD(ctx) as pd:
             flags = u.get_access_flags(ctx)
             for f in flags:
                 with MR(pd, u.get_mr_length(), f) as mr:
                     # Pyverbs supports multiple destruction of objects,
                     # we are not expecting an exception here.
                     mr.close()
                     mr.close()
Esempio n. 6
0
 def test_buffer(self):
     """
     Test reading buf property
     """
     for ctx, attr, attr_ex in self.devices:
         with PD(ctx) as pd:
             length = u.get_mr_length()
             flags = u.get_access_flags(ctx)
             for f in flags:
                 with MR(pd, length, f) as mr:
                     mr.buf
Esempio n. 7
0
 def test_write(self):
     """
     Test writing to MR's buffer
     """
     lst = d.get_device_list()
     for dev in lst:
         with d.Context(name=dev.name.decode()) as ctx:
             with PD(ctx) as pd:
                 mr_len = u.get_mr_length()
                 with MR(pd, mr_len, u.get_access_flags()) as mr:
                     write_len = min(random.randint(1, MAX_IO_LEN), mr_len)
                     mr.write(u.get_data(write_len), write_len)
Esempio n. 8
0
 def test_write(self):
     """
     Test writing to MR's buffer
     """
     for ctx, attr, attr_ex in self.devices:
         with PD(ctx) as pd:
             for i in range(10):
                 mr_len = u.get_mr_length()
                 flags = u.get_access_flags(ctx)
                 for f in flags:
                     with MR(pd, mr_len, f) as mr:
                         write_len = min(random.randint(1, MAX_IO_LEN),
                                         mr_len)
                         mr.write('a' * write_len, write_len)
Esempio n. 9
0
 def test_read(self):
     """
     Test reading from MR's buffer
     """
     lst = d.get_device_list()
     for dev in lst:
         with d.Context(name=dev.name.decode()) as ctx:
             with PD(ctx) as pd:
                 mr_len = u.get_mr_length()
                 with MR(pd, mr_len, u.get_access_flags()) as mr:
                     write_len = min(random.randint(1, MAX_IO_LEN), mr_len)
                     write_str = u.get_data(write_len)
                     mr.write(write_str, write_len)
                     read_len = random.randint(1, write_len)
                     offset = random.randint(0, write_len - read_len)
                     read_str = mr.read(read_len, offset).decode()
                     assert read_str in write_str
Esempio n. 10
0
 def test_reg_mr_bad_flags(self):
     """ Verify that illegal flags combination fails as expected """
     for ctx, attr, attr_ex in self.devices:
         with PD(ctx) as pd:
             for i in range(5):
                 flags = random.sample([e.IBV_ACCESS_REMOTE_WRITE,
                                        e.IBV_ACCESS_REMOTE_ATOMIC],
                                       random.randint(1, 2))
                 mr_flags = 0
                 for i in flags:
                     mr_flags += i.value
                 try:
                     MR(pd, u.get_mr_length(), mr_flags)
                 except PyverbsRDMAError as err:
                     assert 'Failed to register a MR' in err.args[0]
                 else:
                     raise PyverbsRDMAError('Registered a MR with illegal falgs')
Esempio n. 11
0
 def test_reg_mr_bad_flags(self):
     """ Verify that illegal flags combination fails as expected """
     lst = d.get_device_list()
     for dev in lst:
         with d.Context(name=dev.name.decode()) as ctx:
             with PD(ctx) as pd:
                 flags = random.sample([
                     e.IBV_ACCESS_REMOTE_WRITE, e.IBV_ACCESS_REMOTE_ATOMIC
                 ], random.randint(1, 2))
                 mr_flags = 0
                 for i in flags:
                     mr_flags += i.value
                 try:
                     mr = MR(pd, u.get_mr_length(), mr_flags)
                 except PyverbsRDMAError as err:
                     assert 'Failed to register a MR' in err.args[0]
                 else:
                     raise PyverbsRDMAError(
                         'Registered a MR with illegal falgs')
Esempio n. 12
0
 def test_read(self):
     """
     Test reading from MR's buffer
     """
     for ctx, attr, attr_ex in self.devices:
         with PD(ctx) as pd:
             for i in range(10):
                 mr_len = u.get_mr_length()
                 flags = u.get_access_flags(ctx)
                 for f in flags:
                     with MR(pd, mr_len, f) as mr:
                         write_len = min(random.randint(1, MAX_IO_LEN),
                                         mr_len)
                         write_str = 'a' * write_len
                         mr.write(write_str, write_len)
                         read_len = random.randint(1, write_len)
                         offset = random.randint(0, write_len-read_len)
                         read_str = mr.read(read_len, offset).decode()
                         assert read_str in write_str