コード例 #1
0
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"
コード例 #2
0
ファイル: pytest_roast.py プロジェクト: Xilinx/pytest-roast
 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,
     )
コード例 #3
0
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"])
コード例 #4
0
ファイル: test_component.py プロジェクト: Xilinx/roast
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
コード例 #5
0
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
コード例 #6
0
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
コード例 #7
0
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"]
コード例 #8
0
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"
コード例 #9
0
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"),
    )
コード例 #10
0
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"
コード例 #11
0
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
コード例 #12
0
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"]
コード例 #13
0
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"
コード例 #14
0
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"
コード例 #15
0
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"]
コード例 #16
0
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
コード例 #17
0
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
コード例 #18
0
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"
コード例 #19
0
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
コード例 #20
0
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"]
コード例 #21
0
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
コード例 #22
0
 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,
     )
コード例 #23
0
def test_generate_conf_none():
    config = generate_conf()
    assert config["ROOT"] == os.getcwd()