def test_generate_conf_machine(request, mocker): rootdir = request.config.rootdir.strpath fspath = request.node.fspath test_name = request.node.name config = generate_conf(rootdir, fspath, test_name) assert config["dtb_arch"] == "aarch64" machine_file = os.path.join(rootdir, "tests", "machines/zynq.py") mocker.patch("roast.confParser.get_machine_file", return_value=machine_file) config = generate_conf(rootdir, fspath, test_name, machine="zynq") assert config["dtb_arch"] == "arm"
def _cfg( test_name: str = None, base_params: Optional[List[str]] = None, params: Optional[List[str]] = None, overrides: Optional[List[str]] = None, machine: str = "", interpolate_type=InterpolateEnumType.STANDARD, ) -> ConfigurationSet: rootdir = request.config.rootdir.strpath fspath = request.node.fspath if test_name is None: test_name = get_test_name(request.node.name) if overrides is None: overrides = pytest.override + [f"randomize={pytest.randomize}"] else: overrides = overrides + pytest.override + [ f"randomize={pytest.randomize}" ] if machine == "": machine = pytest.machine return generate_conf( rootdir, fspath, test_name, base_params=base_params, params=params, overrides=overrides, machine=machine, interpolate_type=interpolate_type, )
def test_bif_shuffle(b): config = generate_conf() bif = reconstruct_bif(config["bif"]) bpro = b(seed=1234589) bif_shuffled = bpro.shuffle_sections(bif, config.get("block_constraints", {})) assert bif_shuffled == reconstruct_bif(config["bif_shuffled"])
def test_component_interface(request): ts_name = "dummy_ts" sys_name = "dummy_sys" register_plugin(ts_name, "testsuite", "test_component:DummyTestSuite") register_plugin(sys_name, "system", "test_component:DummySystem") rootdir = request.config.rootdir.strpath fspath = request.node.fspath test_name = request.node.name config = generate_conf(rootdir, fspath, test_name) config["roast.testsuite"] = ts_name config["roast.system"] = [sys_name] scn = scenario(config) scn.configure_component() ts = scn.ts sys = scn.sys(sys_name) assert ts.configured == True assert sys.configured == True results = scn.build_component() assert results[ts_name] == True assert results[sys_name] == True results = scn.deploy_component() assert results[ts_name] == True results = scn.run_component() assert results[ts_name] == True
def test_bif_shuffle_no_randomization(b): config = generate_conf() bif = reconstruct_bif(config["bif"]) bpro = b(randomize=False) bif_shuffled = bpro.shuffle_sections(bif, config.get("block_constraints", {})) assert bif == bif_shuffled
def test_generate_conf_full(request, mocker): rootdir = request.config.rootdir.strpath fspath = request.node.fspath test_name = "main" params = ["test1"] overrides = ["version=2021.1", "mysubtree"] machine_file = os.path.join(rootdir, "tests", "machines/zynq.py") mocker.patch("roast.confParser.get_machine_file", return_value=machine_file) config = generate_conf( rootdir, fspath, test_name, params=params, overrides=overrides, machine="zynq", ) assert config["mytest"] == "test1" # params main/test1/conf.py assert config["dtb_arch"] == "arm" # machine assert config["build"] == "2021.1_daily_latest" # from overrides assert config["mylist"] == ["c", "d"] # main/conf.py assert config["b.a"] == "hello2" # subtree assert config["b.b"] == "hello again2" # subtree ws_dir = os.path.join(rootdir, "build", "zynq", "tests", test_name, *params) assert config["wsDir"] == ws_dir
def test_basebuild_params(request, build_dir): rootdir = request.config.rootdir.strpath fspath = request.node.fspath test_name = "main" params = ["test1"] # override configuration wsDir = os.path.join(build_dir, "tests", test_name, *params) logDir = os.path.join(wsDir, "log") workDir = os.path.join(wsDir, "work") imagesDir = os.path.join(wsDir, "images") overrides = [ f"buildDir={build_dir}", f"wsDir={wsDir}", f"logDir={logDir}", f"workDir={workDir}", f"imagesDir={imagesDir}", ] config = generate_conf(rootdir, fspath, test_name, params=params, overrides=overrides) builder = Basebuild(config) builder.configure() assert os.path.exists(builder.config["wsDir"]) assert os.path.exists(builder.config["logDir"]) assert os.path.exists(builder.config["workDir"]) assert os.path.exists(builder.config["imagesDir"]) assert os.path.exists(os.path.join(builder.config["workDir"], "conf.py")) assert os.path.exists( os.path.join(builder.config["workDir"], "test_dummy.py")) assert os.getcwd() == config["workDir"]
def test_bif_no_seed(request, build_dir): rootdir = request.config.rootdir.strpath fspath = request.node.fspath wsDir = build_dir logDir = os.path.join(wsDir, "log") workDir = os.path.join(wsDir, "work") imagesDir = os.path.join(wsDir, "images") overrides = [ f"buildDir={build_dir}", f"wsDir={wsDir}", f"logDir={logDir}", f"workDir={workDir}", f"imagesDir={imagesDir}", "randomize=True", ] config = generate_conf( rootdir=rootdir, test_path=fspath, test_name="performance", params=["003"], overrides=overrides, ) mkdir(workDir) mkdir(imagesDir) del config["seed"] try: generate_bif(config=config, format_type="new") except: assert False, f"generate_bif() raised exception"
def test_performance_bif_randomization(request, test, build_dir): rootdir = request.config.rootdir.strpath fspath = request.node.fspath wsDir = build_dir logDir = os.path.join(wsDir, "log") workDir = os.path.join(wsDir, "work") imagesDir = os.path.join(wsDir, "images") logger = Logger(logDir) overrides = [ f"buildDir={build_dir}", f"wsDir={wsDir}", f"logDir={logDir}", f"workDir={workDir}", f"imagesDir={imagesDir}", "randomize=True", ] config = generate_conf( rootdir=rootdir, test_path=fspath, test_name="performance", params=[test], overrides=overrides, ) mkdir(workDir) mkdir(imagesDir) generate_bif(config=config, format_type="new") logger.close() test_dir = os.path.join(os.path.dirname(__file__), "performance", test) assert filecmp.cmp( os.path.join(config["imagesDir"], "boot.bif"), os.path.join(test_dir, "boot.bif"), )
def test_generate_conf_params(request): rootdir = request.config.rootdir.strpath fspath = request.node.fspath test_name = "main" params = ["test1"] config = generate_conf(rootdir, fspath, test_name, params=params) assert config["ROOT"] == rootdir assert config["mytest"] == "test1"
def test_basebuild_build_exception(request): rootdir = request.config.rootdir.strpath fspath = request.node.fspath test_name = request.node.name config = generate_conf(rootdir, fspath, test_name) builder = Basebuild(config) with pytest.raises(NotImplementedError): builder.build() os.chdir(rootdir) # reset working directory changed by Basebuild
def test_generate_conf_file_override(request): rootdir = request.config.rootdir.strpath fspath = request.node.fspath test_name = request.node.name overrides = ["tests/main/conf.py"] config = generate_conf(rootdir, fspath, test_name, overrides=overrides) assert config["ROOT"] == rootdir assert config["build"] == "2019.2_daily_latest" assert config["mylist"] == ["c", "d"]
def test_generate_conf_mixed_override(request, test): """This will test for mixed overrides and also ensure that overrides are not overwritten between test runs (#129)""" rootdir = request.config.rootdir.strpath fspath = request.node.fspath test_name = request.node.name config = generate_conf(rootdir, fspath, test_name, overrides=overrides) assert config["ROOT"] == rootdir assert config["build"] == "2019.2_daily_latest" assert config["mylist"] == ["c", "d"] assert config["a.b"] == "2020.2"
def test_generate_conf_params(request): rootdir = request.config.rootdir.strpath fspath = request.node.fspath test_name = "main" params = ["test1"] config = generate_conf(rootdir, fspath, test_name, params=params) assert config["ROOT"] == rootdir ws_dir = os.path.join(rootdir, "build", "tests", test_name, *params) assert config["wsDir"] == ws_dir assert config["mytest"] == "test1"
def test_generate_conf_plain(request): rootdir = request.config.rootdir.strpath fspath = request.node.fspath test_name = request.node.name config = generate_conf(rootdir, fspath, test_name) assert config["ROOT"] == rootdir assert config["build"] == "2020.2_daily_latest" config["version"] = "2019.2" assert config["build"] == "2019.2_daily_latest" assert config["mylist"] == ["a", "b"]
def test_generate_conf_machine(request, mocker): rootdir = request.config.rootdir.strpath fspath = request.node.fspath test_name = request.node.name config = generate_conf(rootdir, fspath, test_name) assert config["dtb_arch"] == "aarch64" machine_file = os.path.join(rootdir, "tests", "machines/zynq.py") mocker.patch("roast.confParser.get_machine_file", return_value=machine_file) config = generate_conf(rootdir, fspath, test_name, machine="zynq") assert config["dtb_arch"] == "arm" overrides = ["version=2019.2"] config = generate_conf(rootdir, fspath, test_name, overrides=overrides, machine="zynq") ws_dir = os.path.join(rootdir, "build", "zynq", "tests", test_name) assert config["wsDir"] == ws_dir
def test_basebuild_base_params(request, build_dir): rootdir = request.config.rootdir.strpath fspath = request.node.fspath test_name = "main" base_params = ["base"] config = generate_conf(rootdir, fspath, test_name, base_params=base_params) config["buildDir"] = build_dir builder = Basebuild(config) builder.configure() assert builder.wsDir == os.path.join(config["buildDir"], *config["base_params"], *config["test_path_list"]) os.chdir(rootdir) # reset working directory changed by Basebuild
def test_generate_conf_list_override(request): rootdir = request.config.rootdir.strpath fspath = request.node.fspath test_name = request.node.name overrides = [ "version=2019.2", "mylist=c,d", "a.b=2020.2", "missingvar=hello" ] config = generate_conf(rootdir, fspath, test_name, overrides=overrides) assert config["ROOT"] == rootdir assert config["build"] == "2019.2_daily_latest" assert config["mylist"] == ["c", "d"] assert config["a.b"] == "2020.2" assert config["missingvar"] == "hello"
def test_basebuild_params(request, build_dir): rootdir = request.config.rootdir.strpath fspath = request.node.fspath test_name = "main" params = ["test1"] config = generate_conf(rootdir, fspath, test_name, params=params) config["buildDir"] = build_dir builder = Basebuild(config) builder.configure() assert os.path.exists(builder.workDir) assert os.path.exists(builder.imagesDir) assert os.path.exists(os.path.join(builder.workDir, "conf.py")) assert os.path.exists(os.path.join(builder.workDir, "test_dummy.py")) os.chdir(rootdir) # reset working directory changed by Basebuild
def test_generate_conf_plain(request): rootdir = request.config.rootdir.strpath fspath = request.node.fspath test_name = request.node.name config = generate_conf(rootdir, fspath, test_name) assert config["ROOT"] == rootdir assert config["buildDir"] == os.path.join(rootdir, "build") ws_dir = os.path.join(rootdir, "build", "tests", test_name) assert config["wsDir"] == ws_dir assert config["logDir"] == os.path.join(ws_dir, "log") assert config["workDir"] == os.path.join(ws_dir, "work") assert config["imagesDir"] == os.path.join(ws_dir, "images") assert config["build"] == "2020.2_daily_latest" config["version"] = "2019.2" assert config["build"] == "2019.2_daily_latest" assert config["mylist"] == ["a", "b"]
def test_generate_conf_overrides_var(request, mocker): rootdir = request.config.rootdir.strpath fspath = request.node.fspath test_name = "main" params = ["test2"] overrides = ["version=2021.1"] config = generate_conf( rootdir, fspath, test_name, params=params, overrides=overrides, ) assert config["mytest"] == "test2" # params main/test1/conf.py assert config["build"] == "2021.1_daily_latest" # from overrides assert config["mylist"] == ["c", "d"] # main/conf.py assert config["b.a"] == "hello3" # subtree override from main/test2/conf.py assert config[ "b.b"] == "hello again3" # subtree override from main/test2/conf.py
def _cfg( test_name: str = None, base_params: Optional[List[str]] = None, params: Optional[List[str]] = None, overrides: Optional[List[str]] = None, machine: str = "", interpolate_type=InterpolateEnumType.STANDARD, ) -> ConfigurationSet: rootdir = request.config.rootdir.strpath fspath = request.node.fspath if test_name is None: test_name = get_test_name(request.node.name) if overrides is None: overrides = request.config.cache.get("override", None) return generate_conf( rootdir, fspath, test_name, base_params=base_params, params=params, overrides=overrides, machine=machine, interpolate_type=interpolate_type, )
def test_generate_conf_none(): config = generate_conf() assert config["ROOT"] == os.getcwd()