build: no rebuild of bins in tox

This commit is contained in:
Christian Vogelgsang 2022-02-20 21:06:21 +01:00
parent 28f4848213
commit a7df69aecd
4 changed files with 18 additions and 6 deletions

View File

@ -70,6 +70,12 @@ def pytest_addoption(parser):
action="store_true",
help="automatically rebuild binaries if source is newer",
)
parser.addoption(
"--no-rebuild",
default=False,
action="store_true",
help="do not force rebuild of old binaries",
)
parser.addoption(
"--profile",
"-P",
@ -154,13 +160,15 @@ def pytest_runtest_setup(item):
@pytest.fixture(scope="module", params=["gcc", "gcc-res", "gcc-dbg", "gcc-res-dbg"])
def buildlibnix(request):
auto_build = request.config.getoption("--auto-build")
return BinBuilder(request.param, auto_build=auto_build)
no_rebuild = request.config.getoption("--no-rebuild")
return BinBuilder(request.param, auto_build=auto_build, no_rebuild=no_rebuild)
@pytest.fixture(scope="module", params=["sc", "sc-res", "sc-dbg", "sc-res-dbg"])
def buildlibsc(request):
auto_build = request.config.getoption("--auto-build")
return BinBuilder(request.param, auto_build=auto_build)
no_rebuild = request.config.getoption("--no-rebuild")
return BinBuilder(request.param, auto_build=auto_build, no_rebuild=no_rebuild)
@pytest.fixture(scope="module", params=["vc", "gcc", "agcc", "sc"])
@ -171,6 +179,7 @@ def vamos(request):
dump_console = request.config.getoption("--dump-console")
gen = request.config.getoption("--gen-data")
auto_build = request.config.getoption("--auto-build")
no_rebuild = request.config.getoption("--no-rebuild")
run_subproc = request.config.getoption("--run-subproc")
flavor = request.param
return VamosTestRunner(
@ -182,6 +191,7 @@ def vamos(request):
vamos_bin=VAMOS_BIN,
vamos_args=VAMOS_ARGS,
auto_build=auto_build,
no_rebuild=no_rebuild,
run_subproc=run_subproc,
)

View File

@ -8,12 +8,13 @@ LIB_SRC_DIR = "src/libs"
class BinBuilder:
def __init__(self, flavor, debug=False, auto_build=False):
def __init__(self, flavor, debug=False, auto_build=False, no_rebuild=False):
if flavor == "none":
flavor = None
self.flavor = flavor
self.debug = debug
self.auto_build = auto_build
self.no_rebuild = no_rebuild
def make_prog(self, prog_name):
return self.make_progs([prog_name])[0]
@ -74,6 +75,6 @@ class BinBuilder:
args = ["make"]
args += rebuild_bins
subprocess.check_call(args, stdout=subprocess.PIPE)
else:
elif not no_rebuild:
raise RuntimeError("Rebuild needed for: " + info)
return all_bins

View File

@ -87,6 +87,7 @@ class VamosTestRunner:
dump_console=False,
generate_data=False,
auto_build=False,
no_rebuild=False,
run_subproc=False,
):
self.flavor = flavor
@ -97,7 +98,7 @@ class VamosTestRunner:
self.dump_console = dump_console
self.generate_data = generate_data
self.run_subproc = run_subproc
self.bin_builder = BinBuilder(flavor, use_debug_bins, auto_build)
self.bin_builder = BinBuilder(flavor, use_debug_bins, auto_build, no_rebuild)
def _get_data_path(self, prog_name, kw_args):
dat_path = ["data/" + prog_name]

View File

@ -17,4 +17,4 @@ commands=
{env:TOXBUILD:pytest} --basetemp={envtmpdir} test {posargs}
[pytest]
addopts = -x -v --full-suite
addopts = -x -v --full-suite --no-rebuild