mirror of
https://github.com/YosysHQ/yosys
synced 2025-08-04 10:20:24 +00:00
tests/functional: Auto parallelize
Use the unique cell name (cell type + parameters) for the vcd filename to avoid collisions when converting to fst.
This commit is contained in:
parent
a1d68fe3bc
commit
3c54d8aef7
4 changed files with 11 additions and 10 deletions
|
@ -31,4 +31,4 @@ def pytest_generate_tests(metafunc):
|
|||
seed1 = metafunc.config.getoption("seed")
|
||||
rnd = lambda seed2: random.Random('{}-{}'.format(seed1, seed2))
|
||||
names, cases = generate_test_cases(per_cell, rnd)
|
||||
metafunc.parametrize("cell,parameters", cases, ids=names)
|
||||
metafunc.parametrize("name,cell,parameters", cases, ids=names)
|
||||
|
|
|
@ -374,8 +374,9 @@ def generate_test_cases(per_cell, rnd):
|
|||
for (name, parameters) in cell.generate_tests(rnd):
|
||||
if not name in seen_names:
|
||||
seen_names.add(name)
|
||||
tests.append((cell, parameters))
|
||||
names.append(f'{cell.name}-{name}' if name != '' else cell.name)
|
||||
full_name = f'{cell.name}-{name}' if name != '' else cell.name
|
||||
tests.append((full_name, cell, parameters))
|
||||
names.append(full_name)
|
||||
if per_cell is not None and len(seen_names) >= per_cell:
|
||||
break
|
||||
return (names, tests)
|
|
@ -1,2 +1,2 @@
|
|||
#!/usr/bin/env bash
|
||||
pytest -v "$@"
|
||||
pytest -v -n auto "$@"
|
||||
|
|
|
@ -40,12 +40,12 @@ def yosys_sim(rtlil_file, vcd_reference_file, vcd_out_file, preprocessing = ""):
|
|||
capture_output=True, check=False)
|
||||
raise
|
||||
|
||||
def test_cxx(cell, parameters, tmp_path, num_steps, rnd):
|
||||
def test_cxx(name, cell, parameters, tmp_path, num_steps, rnd):
|
||||
rtlil_file = tmp_path / 'rtlil.il'
|
||||
vcdharness_cc_file = base_path / 'tests/functional/vcd_harness.cc'
|
||||
cc_file = tmp_path / 'my_module_functional_cxx.cc'
|
||||
vcdharness_exe_file = tmp_path / 'a.out'
|
||||
vcd_functional_file = tmp_path / 'functional.vcd'
|
||||
vcd_functional_file = tmp_path / f'{name}.vcd'
|
||||
vcd_yosys_sim_file = tmp_path / 'yosys.vcd'
|
||||
|
||||
cell.write_rtlil_file(rtlil_file, parameters)
|
||||
|
@ -56,12 +56,12 @@ def test_cxx(cell, parameters, tmp_path, num_steps, rnd):
|
|||
yosys_sim(rtlil_file, vcd_functional_file, vcd_yosys_sim_file, getattr(cell, 'sim_preprocessing', ''))
|
||||
|
||||
@pytest.mark.smt
|
||||
def test_smt(cell, parameters, tmp_path, num_steps, rnd):
|
||||
def test_smt(name, cell, parameters, tmp_path, num_steps, rnd):
|
||||
import smt_vcd
|
||||
|
||||
rtlil_file = tmp_path / 'rtlil.il'
|
||||
smt_file = tmp_path / 'smtlib.smt'
|
||||
vcd_functional_file = tmp_path / 'functional.vcd'
|
||||
vcd_functional_file = tmp_path / f'{name}.vcd'
|
||||
vcd_yosys_sim_file = tmp_path / 'yosys.vcd'
|
||||
|
||||
if hasattr(cell, 'smt_max_steps'):
|
||||
|
@ -75,12 +75,12 @@ def test_smt(cell, parameters, tmp_path, num_steps, rnd):
|
|||
|
||||
@pytest.mark.rkt
|
||||
@pytest.mark.parametrize("use_assoc_list_helpers", [True, False])
|
||||
def test_rkt(cell, parameters, tmp_path, num_steps, rnd, use_assoc_list_helpers):
|
||||
def test_rkt(name, cell, parameters, tmp_path, num_steps, rnd, use_assoc_list_helpers):
|
||||
import rkt_vcd
|
||||
|
||||
rtlil_file = tmp_path / 'rtlil.il'
|
||||
rkt_file = tmp_path / 'smtlib.rkt'
|
||||
vcd_functional_file = tmp_path / 'functional.vcd'
|
||||
vcd_functional_file = tmp_path / f'{name}.vcd'
|
||||
vcd_yosys_sim_file = tmp_path / 'yosys.vcd'
|
||||
|
||||
cell.write_rtlil_file(rtlil_file, parameters)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue