Skip to content

Commit

Permalink
update to use CICD infra
Browse files Browse the repository at this point in the history
  • Loading branch information
bdeane-intel committed Mar 13, 2024
1 parent c99ae44 commit e32d5b5
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 27 deletions.
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,3 @@
CMakePresets.json
/toolchains
.hypothesis
__pycache__
10 changes: 10 additions & 0 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,13 @@ add_tests(
write
write_spec)
add_subdirectory(fail)

add_unit_test(
mmio_bus_pbt_test
PYTEST
FILES
mmio_bus_pbt.py
INCLUDE_FILES
mmio_bus_pbt.hpp
LIBRARIES
groov)
27 changes: 27 additions & 0 deletions test/conftest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import cppyy
import pytest

def pytest_addoption(parser):
parser.addoption(
"--include_files",
type=str,
nargs="*",
default=[],
help="Extra include files.",
)
parser.addoption(
"--include_dirs",
type=str,
nargs="*",
default=[],
help="Extra include directories.",
)

@pytest.fixture(scope="module")
def cppyy_test(request):
for d in request.config.getoption("--include_dirs"):
cppyy.add_include_path(d)
for f in request.config.getoption("--include_files"):
cppyy.include(f)
return cppyy.gbl.test

37 changes: 11 additions & 26 deletions test/mmio_bus_pbt.py
Original file line number Diff line number Diff line change
@@ -1,26 +1,15 @@
from hypothesis import given, settings, strategies as st
import cppyy

cppyy.add_include_path("include")
cppyy.add_include_path("test")
cppyy.add_include_path("build/_deps/cpp-baremetal-concurrency-src/include")
cppyy.add_include_path("build/_deps/cpp-std-extensions-src/include")
cppyy.add_include_path("build/_deps/cpp-baremetal-senders-and-receivers-src/include")
cppyy.add_include_path("build/_deps/mp11-src/include")

cppyy.include("mmio_bus_pbt.hpp")

from cppyy.gbl import test
from hypothesis import given, strategies as st

def uints(size):
return st.integers(min_value=0, max_value=2**size-1)

def do_mmio_bus_write(type, initial, mask, id_mask, id_value, write_value):
def do_mmio_bus_write(test, type, initial, mask, id_mask, id_value, write_value):
write_value = mask & write_value
id_mask = ~mask & id_mask
id_value = id_mask & id_value
initial = (~id_mask & initial) | id_value

from cppyy.gbl import test
test.reg64 = initial

test.bus_write[type, mask, id_mask, id_value](test.addr64, write_value)
Expand All @@ -31,23 +20,19 @@ def do_mmio_bus_write(type, initial, mask, id_mask, id_value, write_value):
keep_mask = ~mask & ~id_mask
assert ((keep_mask & test.reg64) == (keep_mask & initial))

@settings(max_examples=1000)
@given(uints(64), uints(64), uints(64), uints(64), uints(64))
def test_mmio_bus_writes_with_id_mask_64(initial, mask, id_mask, id_value, write_value):
do_mmio_bus_write("std::uint64_t", initial, mask, id_mask, id_value, write_value)
def test_mmio_bus_writes_with_id_mask_64(cppyy_test, initial, mask, id_mask, id_value, write_value):
do_mmio_bus_write(cppyy_test, "std::uint64_t", initial, mask, id_mask, id_value, write_value)

@settings(max_examples=1000)
@given(uints(32), uints(32), uints(32), uints(32), uints(32))
def test_mmio_bus_writes_with_id_mask_32(initial, mask, id_mask, id_value, write_value):
do_mmio_bus_write("std::uint32_t", initial, mask, id_mask, id_value, write_value)
def test_mmio_bus_writes_with_id_mask_32(cppyy_test, initial, mask, id_mask, id_value, write_value):
do_mmio_bus_write(cppyy_test, "std::uint32_t", initial, mask, id_mask, id_value, write_value)

@settings(max_examples=1000)
@given(uints(16), uints(16), uints(16), uints(16), uints(16))
def test_mmio_bus_writes_with_id_mask_16(initial, mask, id_mask, id_value, write_value):
do_mmio_bus_write("std::uint16_t", initial, mask, id_mask, id_value, write_value)
def test_mmio_bus_writes_with_id_mask_16(cppyy_test, initial, mask, id_mask, id_value, write_value):
do_mmio_bus_write(cppyy_test, "std::uint16_t", initial, mask, id_mask, id_value, write_value)

@settings(max_examples=1000)
@given(uints(8), uints(8), uints(8), uints(8), uints(8))
def test_mmio_bus_writes_with_id_mask_8(initial, mask, id_mask, id_value, write_value):
do_mmio_bus_write("std::uint8_t", initial, mask, id_mask, id_value, write_value)
def test_mmio_bus_writes_with_id_mask_8(cppyy_test, initial, mask, id_mask, id_value, write_value):
do_mmio_bus_write(cppyy_test, "std::uint8_t", initial, mask, id_mask, id_value, write_value)

0 comments on commit e32d5b5

Please sign in to comment.