| # SPDX-License-Identifier: (GPL-2.0 OR Linux-OpenIB) |
| # Copyright (c) 2019 Mellanox Technologies, Inc. All rights reserved. See COPYING file |
| """ |
| Test module for pyverbs' pd module. |
| """ |
| import random |
| |
| from tests.base import PyverbsAPITestCase |
| from pyverbs.pd import PD |
| |
| |
| class PDTest(PyverbsAPITestCase): |
| """ |
| Test various functionalities of the PD class. |
| """ |
| def test_alloc_pd(self): |
| """ |
| Test ibv_alloc_pd() |
| """ |
| with PD(self.ctx): |
| pass |
| |
| def test_dealloc_pd(self): |
| """ |
| Test ibv_dealloc_pd() |
| """ |
| with PD(self.ctx) as pd: |
| pd.close() |
| |
| def test_multiple_pd_creation(self): |
| """ |
| Test multiple creations and destructions of a PD object |
| """ |
| for i in range(random.randint(1, 200)): |
| with PD(self.ctx) as pd: |
| pd.close() |
| |
| def test_destroy_pd_twice(self): |
| """ |
| Test bad flow cases in destruction of a PD object |
| """ |
| with PD(self.ctx) as pd: |
| # Pyverbs supports multiple destruction of objects, we are |
| # not expecting an exception here. |
| pd.close() |
| pd.close() |