示例#1
0
def test_recurse_deps(build_worktree):
    """ Test Recurse Deps """
    gtest = build_worktree.create_project("gtest")
    libfoo = build_worktree.create_project("libfoo", build_depends=["gtest"])
    bar1 = build_worktree.create_project("bar", build_depends=["libfoo"])
    deps_solver = DepsSolver(build_worktree)
    assert deps_solver.get_dep_projects([bar1], ["build", "runtime"]) == [gtest, libfoo, bar1]
示例#2
0
def test_recurse_deps(build_worktree):
    """ Test Recurse Deps """
    gtest = build_worktree.create_project("gtest")
    libfoo = build_worktree.create_project("libfoo", build_depends=["gtest"])
    bar1 = build_worktree.create_project("bar", build_depends=["libfoo"])
    deps_solver = DepsSolver(build_worktree)
    assert deps_solver.get_dep_projects([bar1], ["build", "runtime"]) == [gtest, libfoo, bar1]
示例#3
0
def test_ignore_missing_deps(build_worktree):
    world = build_worktree.create_project("world")
    hello = build_worktree.create_project("hello",
                                          build_depends=["world", "foo"])

    deps_solver = DepsSolver(build_worktree)
    assert deps_solver.get_dep_projects([hello], ["build"]) == [world, hello]
示例#4
0
def test_empty_dep_is_single(build_worktree):
    build_worktree.create_project("world")
    hello = build_worktree.create_project("hello",
                                          build_depends=["world", "foo"])

    deps_solver = DepsSolver(build_worktree)
    assert deps_solver.get_dep_projects([hello], list()) == [hello]
示例#5
0
def test_simple_deps(build_worktree):
    """ Test Simple Deps """
    world = build_worktree.create_project("world")
    hello = build_worktree.create_project("hello", build_depends=["world"])
    deps_solver = DepsSolver(build_worktree)
    assert deps_solver.get_dep_projects([world], ["build"]) == [world]
    assert deps_solver.get_dep_projects([hello], ["build"]) == [world, hello]
示例#6
0
def test_simple_deps(build_worktree):
    """ Test Simple Deps """
    world = build_worktree.create_project("world")
    hello = build_worktree.create_project("hello", build_depends=["world"])
    deps_solver = DepsSolver(build_worktree)
    assert deps_solver.get_dep_projects([world], ["build"]) == [world]
    assert deps_solver.get_dep_projects([hello], ["build"]) == [world, hello]
示例#7
0
def test_find_packages_in_toolchain(build_worktree, toolchains):
    toolchains.create("foo")
    world_package = toolchains.add_package("foo", "world")
    hello = build_worktree.create_project("hello", build_depends=["world"])
    build_worktree.set_active_config("foo")

    deps_solver = DepsSolver(build_worktree)
    assert deps_solver.get_dep_packages([hello], ["build"]) == [world_package]
示例#8
0
def test_runtime_deps(build_worktree):
    libworld = build_worktree.create_project("libworld")
    hello_plugin = build_worktree.create_project("hello-plugin")
    hello = build_worktree.create_project("hello", build_depends=["libworld"],
                                                   run_depends=["hello-plugin"])
    deps_solver = DepsSolver(build_worktree)
    dep_projects = deps_solver.get_dep_projects([hello], ["build", "runtime"])
    assert dep_projects == [hello_plugin, libworld, hello]
示例#9
0
def test_find_packages_in_toolchain(build_worktree, toolchains):
    toolchains.create("foo")
    world_package = toolchains.add_package("foo", "world")
    hello = build_worktree.create_project("hello", build_depends=["world"])
    build_worktree.set_active_config("foo")

    deps_solver = DepsSolver(build_worktree)
    assert deps_solver.get_dep_packages([hello], ["build"]) == [world_package]
示例#10
0
def test_runtime_deps(build_worktree):
    libworld = build_worktree.create_project("libworld")
    hello_plugin = build_worktree.create_project("hello-plugin")
    hello = build_worktree.create_project("hello",
                                          build_depends=["libworld"],
                                          run_depends=["hello-plugin"])
    deps_solver = DepsSolver(build_worktree)
    dep_projects = deps_solver.get_dep_projects([hello], ["build", "runtime"])
    assert dep_projects == [hello_plugin, libworld, hello]
示例#11
0
def test_simple_reverse_deps(build_worktree):
    world = build_worktree.create_project("world")
    hello = build_worktree.create_project("hello", build_depends=["world"])

    deps_solver = DepsSolver(build_worktree)
    assert deps_solver.get_dep_projects([world], ["build"], reverse=True) == \
        [hello]
    assert deps_solver.get_dep_projects([hello], ["build"], reverse=True) == \
        []
示例#12
0
def test_prefer_sources_over_packages(build_worktree, toolchains):
    toolchains.create("foo")
    world_package = toolchains.add_package("foo", "world")
    world_proj = build_worktree.create_project("world")
    hello_proj  = build_worktree.create_project("hello", build_depends=["world"])
    build_worktree.set_active_config("foo")
    deps_solver = DepsSolver(build_worktree)
    assert deps_solver.get_dep_projects([hello_proj], ["build"]) == [world_proj, hello_proj]
    assert not deps_solver.get_dep_packages([hello_proj], ["build"])
示例#13
0
def test_simple_reverse_deps(build_worktree):
    world = build_worktree.create_project("world")
    hello = build_worktree.create_project("hello", build_depends=["world"])

    deps_solver = DepsSolver(build_worktree)
    assert deps_solver.get_dep_projects([world], ["build"], reverse=True) == \
        [hello]
    assert deps_solver.get_dep_projects([hello], ["build"], reverse=True) == \
        []
示例#14
0
def test_compute_sdk_dirs(build_worktree):
    libworld = build_worktree.create_project("libworld")
    hello_plugin = build_worktree.create_project("hello-plugin")
    hello = build_worktree.create_project("hello", build_depends=["libworld"],
                                                   run_depends=["hello-plugin"])
    deps_solver = DepsSolver(build_worktree)
    assert deps_solver.get_sdk_dirs(hello, ["build"]) == [libworld.sdk_directory]
    assert deps_solver.get_sdk_dirs(hello, ["build", "runtime"]) == \
            [hello_plugin.sdk_directory, libworld.sdk_directory]
示例#15
0
def test_compute_sdk_dirs(build_worktree):
    """ Test Compute SDK Dirs """
    libworld = build_worktree.create_project("libworld")
    hello_plugin = build_worktree.create_project("hello-plugin")
    hello = build_worktree.create_project("hello", build_depends=["libworld"],
                                          run_depends=["hello-plugin"])
    deps_solver = DepsSolver(build_worktree)
    assert deps_solver.get_sdk_dirs(hello, ["build"]) == [libworld.sdk_directory]
    assert deps_solver.get_sdk_dirs(hello, ["build", "runtime"]) == \
        [hello_plugin.sdk_directory, libworld.sdk_directory]
示例#16
0
def test_complex_dep_solving2(build_worktree, toolchains):
    toolchains.create("foo")
    qibuild.config.add_build_config("foo", toolchain="foo")
    behavior_proj = build_worktree.create_project("behavior", build_depends=["libqiproject"])
    toolchains.add_package("foo", "libqiproject", build_depends=["libqipackage"])
    qipackage_proj = build_worktree.create_project("libqipackage")
    deps_solver = DepsSolver(build_worktree)
    build_worktree.set_active_config("foo")
    assert deps_solver.get_dep_projects([behavior_proj], ["build"]) == \
         [qipackage_proj, behavior_proj]
示例#17
0
def test_complex_dep_solving2(build_worktree, toolchains):
    """ Test Complex Dep Solving 2 """
    toolchains.create("foo")
    qibuild.config.add_build_config("foo", toolchain="foo")
    behavior_proj = build_worktree.create_project("behavior", build_depends=["libqiproject"])
    toolchains.add_package("foo", "libqiproject", build_depends=["libqipackage"])
    qipackage_proj = build_worktree.create_project("libqipackage")
    deps_solver = DepsSolver(build_worktree)
    build_worktree.set_active_config("foo")
    assert deps_solver.get_dep_projects([behavior_proj], ["build"]) == \
        [qipackage_proj, behavior_proj]
示例#18
0
def test_prefer_sources_over_packages(build_worktree, toolchains):
    """ Test Prefer Sources Over Packages """
    toolchains.create("foo")
    qibuild.config.add_build_config("foo", toolchain="foo")
    _world_package = toolchains.add_package("foo", "world")
    world_proj = build_worktree.create_project("world")
    hello_proj = build_worktree.create_project("hello", build_depends=["world"])
    build_worktree.set_active_config("foo")
    deps_solver = DepsSolver(build_worktree)
    assert deps_solver.get_dep_projects([hello_proj], ["build"]) == [world_proj, hello_proj]
    assert not deps_solver.get_dep_packages([hello_proj], ["build"])
示例#19
0
def test_complex_dep_solving1(build_worktree, toolchains):
    toolchains.create("foo")
    qibuild.config.add_build_config("foo", toolchain="foo")
    libqi_package = toolchains.add_package("foo", "libqi")
    hal_package = toolchains.add_package("foo", "hal", run_depends=["libqi"])
    naoqi_package = toolchains.add_package("foo", "naoqi", run_depends=["hal"])
    build_worktree.create_project("libqi")
    naoqi_proj = build_worktree.create_project("naoqi", run_depends=["hal"])
    deps_solver = DepsSolver(build_worktree)
    build_worktree.set_active_config("foo")
    assert deps_solver.get_dep_packages([naoqi_proj], ["runtime"]) == \
        [hal_package]
示例#20
0
def test_complex_dep_solving1(build_worktree, toolchains):
    toolchains.create("foo")
    qibuild.config.add_build_config("foo", toolchain="foo")
    libqi_package = toolchains.add_package("foo", "libqi")
    hal_package = toolchains.add_package("foo", "hal", run_depends=["libqi"])
    naoqi_package = toolchains.add_package("foo", "naoqi", run_depends=["hal"])
    build_worktree.create_project("libqi")
    naoqi_proj = build_worktree.create_project("naoqi", run_depends=["hal"])
    deps_solver = DepsSolver(build_worktree)
    build_worktree.set_active_config("foo")
    assert deps_solver.get_dep_packages([naoqi_proj], ["runtime"]) == \
        [hal_package]
示例#21
0
def test_complex_reverse_deps(build_worktree):
    """ Test Complex Reverse Deps """
    libworld = build_worktree.create_project("libworld")
    libhello = build_worktree.create_project("libhello", build_depends=["libworld"])
    hello_plugin = build_worktree.create_project("hello-plugin")
    hello = build_worktree.create_project("hello",
                                          build_depends=["libworld", "libhello"], run_depends=["hello-plugin"])
    top_world = build_worktree.create_project("top_world", run_depends=["hello"])
    deps_solver = DepsSolver(build_worktree)
    assert deps_solver.get_dep_projects([top_world], ["build"], reverse=True) == []
    assert deps_solver.get_dep_projects([hello], ["build"], reverse=True) == []
    assert deps_solver.get_dep_projects([hello], ["build", "runtime"], reverse=True) == [top_world]
    assert deps_solver.get_dep_projects([hello_plugin], ["runtime"], reverse=True) == [hello]
    assert deps_solver.get_dep_projects([libworld], ["build", "runtime"], reverse=True) == [hello, libhello]
示例#22
0
def test_complex_reverse_deps(build_worktree):
    """ Test Complex Reverse Deps """
    libworld = build_worktree.create_project("libworld")
    libhello = build_worktree.create_project("libhello", build_depends=["libworld"])
    hello_plugin = build_worktree.create_project("hello-plugin")
    hello = build_worktree.create_project("hello",
                                          build_depends=["libworld", "libhello"], run_depends=["hello-plugin"])
    top_world = build_worktree.create_project("top_world", run_depends=["hello"])
    deps_solver = DepsSolver(build_worktree)
    assert deps_solver.get_dep_projects([top_world], ["build"], reverse=True) == []
    assert deps_solver.get_dep_projects([hello], ["build"], reverse=True) == []
    assert deps_solver.get_dep_projects([hello], ["build", "runtime"], reverse=True) == [top_world]
    assert deps_solver.get_dep_projects([hello_plugin], ["runtime"], reverse=True) == [hello]
    assert deps_solver.get_dep_projects([libworld], ["build", "runtime"], reverse=True) == [hello, libhello]
示例#23
0
def test_empty_dep_is_single(build_worktree):
    build_worktree.create_project("world")
    hello = build_worktree.create_project("hello", build_depends=["world", "foo"])

    deps_solver = DepsSolver(build_worktree)
    assert deps_solver.get_dep_projects([hello], list()) == [hello]
示例#24
0
def test_ignore_missing_deps(build_worktree):
    world = build_worktree.create_project("world")
    hello = build_worktree.create_project("hello", build_depends=["world", "foo"])

    deps_solver = DepsSolver(build_worktree)
    assert deps_solver.get_dep_projects([hello], ["build"]) == [world, hello]