40 lines
985 B
Python
40 lines
985 B
Python
from typing import List
|
|
import os
|
|
|
|
import pytest
|
|
|
|
from .base_testcase import BaseTestCase
|
|
from .synthesizers import get_synthesizer_cls
|
|
|
|
|
|
class SynthTestCase(BaseTestCase):
|
|
def _get_synth_files(self) -> List[str]:
|
|
files = []
|
|
files.extend(self.cpuif.get_synth_files())
|
|
files.append("busdecoder_pkg.sv")
|
|
files.append("busdecoder.sv")
|
|
|
|
return files
|
|
|
|
def setUp(self) -> None:
|
|
name = self.request.config.getoption("--synth-tool")
|
|
synth_cls = get_synthesizer_cls(name)
|
|
if synth_cls is None:
|
|
pytest.skip()
|
|
super().setUp()
|
|
|
|
def run_synth(self) -> None:
|
|
name = self.request.config.getoption("--synth-tool")
|
|
synth_cls = get_synthesizer_cls(name)
|
|
synth = synth_cls(self)
|
|
|
|
# cd into the build directory
|
|
cwd = os.getcwd()
|
|
os.chdir(self.get_run_dir())
|
|
|
|
try:
|
|
synth.run()
|
|
finally:
|
|
# cd back
|
|
os.chdir(cwd)
|