|
Packit |
534379 |
# Copyright(c) 2018, Intel Corporation
|
|
Packit |
534379 |
#
|
|
Packit |
534379 |
# Redistribution and use in source and binary forms, with or without
|
|
Packit |
534379 |
# modification, are permitted provided that the following conditions are met:
|
|
Packit |
534379 |
#
|
|
Packit |
534379 |
# * Redistributions of source code must retain the above copyright notice,
|
|
Packit |
534379 |
# this list of conditions and the following disclaimer.
|
|
Packit |
534379 |
# * Redistributions in binary form must reproduce the above copyright notice,
|
|
Packit |
534379 |
# this list of conditions and the following disclaimer in the documentation
|
|
Packit |
534379 |
# and/or other materials provided with the distribution.
|
|
Packit |
534379 |
# * Neither the name of Intel Corporation nor the names of its contributors
|
|
Packit |
534379 |
# may be used to endorse or promote products derived from this software
|
|
Packit |
534379 |
# without specific prior written permission.
|
|
Packit |
534379 |
#
|
|
Packit |
534379 |
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
Packit |
534379 |
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
Packit |
534379 |
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
Packit |
534379 |
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
Packit |
534379 |
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
Packit |
534379 |
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
Packit |
534379 |
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
Packit |
534379 |
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
Packit |
534379 |
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
Packit |
534379 |
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
Packit |
534379 |
# POSSIBILITY OF SUCH DAMAGE.
|
|
Packit |
534379 |
import sys
|
|
Packit |
534379 |
import uuid
|
|
Packit |
534379 |
|
|
Packit |
534379 |
# pylint: disable=E0602, E0603
|
|
Packit |
534379 |
|
|
Packit |
534379 |
class TestSysObject(unittest.TestCase):
|
|
Packit |
534379 |
@classmethod
|
|
Packit |
534379 |
def setUpClass(cls):
|
|
Packit |
534379 |
cls.system = mockopae.test_system()
|
|
Packit |
534379 |
cls.platform = mockopae.test_platform.get("skx-p")
|
|
Packit |
534379 |
cls.system.initialize()
|
|
Packit |
534379 |
cls.system.prepare_sysfs(cls.platform)
|
|
Packit |
534379 |
opae.fpga.initialize(None)
|
|
Packit |
534379 |
props = opae.fpga.properties(type=opae.fpga.ACCELERATOR)
|
|
Packit |
534379 |
cls.afu_toks = opae.fpga.enumerate([props])
|
|
Packit |
534379 |
assert cls.afu_toks
|
|
Packit |
534379 |
cls.afu_handle = opae.fpga.open(cls.afu_toks[0])
|
|
Packit |
534379 |
assert cls.afu_handle
|
|
Packit |
534379 |
props = opae.fpga.properties(type=opae.fpga.DEVICE)
|
|
Packit |
534379 |
cls.fme_toks = opae.fpga.enumerate([props])
|
|
Packit |
534379 |
assert cls.fme_toks
|
|
Packit |
534379 |
cls.fme_handle = opae.fpga.open(cls.fme_toks[0], opae.fpga.OPEN_SHARED)
|
|
Packit |
534379 |
assert cls.fme_handle
|
|
Packit |
534379 |
|
|
Packit |
534379 |
@classmethod
|
|
Packit |
534379 |
def tearDownClass(cls):
|
|
Packit |
534379 |
cls.system.finalize()
|
|
Packit |
534379 |
|
|
Packit |
534379 |
def test_token_object(self):
|
|
Packit |
534379 |
afuid = self.afu_toks[0].afu_id.bytes()[:-1]
|
|
Packit |
534379 |
afu_guid = self.platform.devices[0].afu_guid
|
|
Packit |
534379 |
u1 = uuid.UUID(afuid)
|
|
Packit |
534379 |
u2 = uuid.UUID(afu_guid)
|
|
Packit |
534379 |
assert u1 == u2
|
|
Packit |
534379 |
afuid2 = self.afu_toks[0]["afu_id"].bytes()[:-1]
|
|
Packit |
534379 |
assert afuid == afuid2
|
|
Packit |
534379 |
self.assertEquals(self.afu_toks[0].wrong, None)
|
|
Packit |
534379 |
with self.assertRaises(RuntimeError):
|
|
Packit |
534379 |
print(self.afu_toks[0]['../fpga'].read64())
|
|
Packit |
534379 |
|
|
Packit |
534379 |
def test_handle_object(self):
|
|
Packit |
534379 |
afuid = self.afu_handle.afu_id.bytes()[:-1]
|
|
Packit |
534379 |
afu_guid = self.platform.devices[0].afu_guid
|
|
Packit |
534379 |
u1 = uuid.UUID(afuid)
|
|
Packit |
534379 |
u2 = uuid.UUID(afu_guid)
|
|
Packit |
534379 |
assert u1 == u2
|
|
Packit |
534379 |
|
|
Packit |
534379 |
def test_object_object(self):
|
|
Packit |
534379 |
pr = self.fme_handle.pr
|
|
Packit |
534379 |
interface_id = pr.interface_id
|
|
Packit |
534379 |
u1 = uuid.UUID(interface_id.bytes()[:-1])
|
|
Packit |
534379 |
u2 = uuid.UUID(self.platform.devices[0].fme_guid)
|
|
Packit |
534379 |
assert u1 == u2
|
|
Packit |
534379 |
|
|
Packit |
534379 |
def test_object_read64(self):
|
|
Packit |
534379 |
errors = self.afu_handle.errors
|
|
Packit |
534379 |
rev = errors.revision
|
|
Packit |
534379 |
n1 = rev.read64()
|
|
Packit |
534379 |
self.assertEquals(n1, 1)
|
|
Packit |
534379 |
with self.assertRaises(RuntimeError):
|
|
Packit |
534379 |
print(errors.read64())
|
|
Packit |
534379 |
|
|
Packit |
534379 |
|