| # SPDX-License-Identifier: (GPL-2.0 OR Linux-OpenIB) |
| # Copyright 2021 Amazon.com, Inc. or its affiliates. All rights reserved. |
| |
| import errno |
| import pyverbs.enums as e |
| from pyverbs.fork import fork_init, is_fork_initialized |
| from pyverbs.pyverbs_error import PyverbsRDMAError |
| |
| from tests.base import PyverbsAPITestCase |
| |
| |
| class ForkAPITest(PyverbsAPITestCase): |
| """ |
| Test the API of the fork functions. |
| """ |
| |
| def test_is_fork_initialized(self): |
| try: |
| fork_init() |
| expected_ret = [e.IBV_FORK_ENABLED, e.IBV_FORK_UNNEEDED] |
| except PyverbsRDMAError as ex: |
| # Depends on the order of the tests EINVAL could be returned if |
| # fork_init() is called after an MR has already been registered. |
| self.assertEqual(ex.error_code, errno.EINVAL) |
| expected_ret = [e.IBV_FORK_DISABLED, e.IBV_FORK_UNNEEDED] |
| |
| ret = is_fork_initialized() |
| if self.config['verbosity']: |
| print(f'is_fork_initialized() = {ret}') |
| self.assertIn(ret, expected_ret) |