blob: 44a626727258155dae175b351174a288a38dc427 [file] [log] [blame] [edit]
# SPDX-License-Identifier: (GPL-2.0 OR Linux-OpenIB)
# Copyright (c) 2019 Mellanox Technologies, Inc. All rights reserved. See COPYING file
"""
Test module for Mlx5 UAR allocation.
"""
import unittest
import errno
from pyverbs.pyverbs_error import PyverbsRDMAError
from pyverbs.providers.mlx5.mlx5dv import Mlx5UAR
from pyverbs.providers.mlx5.mlx5_enums import _MLX5DV_UAR_ALLOC_TYPE_BF, _MLX5DV_UAR_ALLOC_TYPE_NC
from tests.mlx5_base import Mlx5RDMATestCase
from tests.base import BaseResources
class Mlx5UarRes(BaseResources):
def __init__(self, dev_name, ib_port=None, gid_index=None):
super().__init__(dev_name, ib_port, gid_index)
self.uars = []
class Mlx5UarTestCase(Mlx5RDMATestCase):
def setUp(self):
super().setUp()
self.uar_res = Mlx5UarRes(self.dev_name)
def test_alloc_uar(self):
try:
for f in [_MLX5DV_UAR_ALLOC_TYPE_BF, _MLX5DV_UAR_ALLOC_TYPE_NC]:
self.uar_res.uars.append(Mlx5UAR(self.uar_res.ctx, f))
except PyverbsRDMAError as ex:
if ex.error_code == errno.EOPNOTSUPP or ex.error_code == errno.EPROTONOSUPPORT:
raise unittest.SkipTest(f'UAR allocation (with flag={f}) is not supported')
raise ex
finally:
for uar in self.uar_res.uars:
uar.close()