blob: cd39d58dd7641d5a4d04510f0f1fa64066f8835b [file] [log] [blame]
import subprocess
import pathlib
import pytest
from utils import *
EXAMPLES_DIR = pathlib.Path(os.environ['SVUNIT_INSTALL']) / 'examples'
@all_files_in_dir((EXAMPLES_DIR / 'modules/apb_slave').as_posix())
@all_available_simulators()
def test_example_modules_apb_slave(datafiles, simulator):
expect_passing_example(datafiles, simulator)
@all_files_in_dir((EXAMPLES_DIR / 'uvm/uvm_report_mock').as_posix())
@all_available_simulators()
def test_example_uvm_report_mock(datafiles, simulator):
if simulator == 'verilator':
pytest.skip("Verilator doesn't support UVM")
expect_passing_example(datafiles, simulator, ['-uvm', '-define', 'RUN_SVUNIT_WITH_UVM_REPORT_MOCK'])
@all_files_in_dir((EXAMPLES_DIR / 'uvm/simple_model').as_posix())
@all_available_simulators()
def test_example_uvm_simple_model(datafiles, simulator):
if simulator == 'dsim':
pytest.skip("Issue when running with 'dsim' that needs to be debugged")
if simulator == 'verilator':
pytest.skip("Verilator doesn't support UVM")
expect_passing_example(datafiles, simulator, ['-uvm'])
# TODO Remove this is the same test as 'simple_model'. Not sure why this exists.
@all_files_in_dir((EXAMPLES_DIR / 'uvm/simple_model').as_posix())
@all_available_simulators()
def test_example_uvm_simple_model_2(datafiles, simulator):
if simulator == 'dsim':
pytest.skip("Issue when running with 'dsim' that needs to be debugged")
if simulator == 'verilator':
pytest.skip("Verilator doesn't support UVM")
expect_passing_example(datafiles, simulator, ['-uvm'])
@all_files_in_dir((EXAMPLES_DIR / 'uvm/uvm_express').as_posix())
@all_available_simulators()
def test_example_uvm_uvm_express(datafiles, simulator):
if simulator == 'irun':
expect_passing_example(datafiles, simulator, ['-U', '--filelist', 'cov.f', '-define', 'CLK_PERIOD=10ns'])
if simulator == 'qverilog':
expect_passing_example(datafiles, simulator, ['-U', '-define', 'CLK_PERIOD=10ns'])