diff --git a/tests/test_build.py b/tests/test_build.py index 21e64be641ccbfb4b3a78742ed7b8bd3b8b39292..0322512599f8472bf9243bd3cb13ed546e929c43 100644 --- a/tests/test_build.py +++ b/tests/test_build.py @@ -190,6 +190,54 @@ def test_automated_dependency(wrappers): assert f"{wrapper_b.name} {module_version}" == contents[1] +def test_missing_dependency(wrappers): + wrapper_a = wrappers.get() + wrapper_b = wrappers.get() + + wrapper_a.add_var_to_config_module(f"{wrapper_b.name}_DEP_VERSION", "bar") + + rc, _, errs = wrapper_a.run_make("build") + assert rc == 0 + assert f'Invalid dependency "{wrapper_b.name}_DEP_VERSION"; pruning' in errs + + +def test_architecture_dependent_dependency(wrappers): + wrapper_a = wrappers.get() + wrapper_b = wrappers.get() + wrapper_c = wrappers.get() + + cell_path = wrapper_a.path / "cellMods" + + module_version = "0.0.0+0" + + wrapper_a.add_var_to_config_module( + f"{wrapper_b.name}_DEP_VERSION_linux", module_version + ) + wrapper_a.add_var_to_config_module( + f"{wrapper_c.name}_DEP_VERSION_not_an_arch", module_version + ) + + rc, *_ = wrapper_c.run_make( + "cellinstall", module_version=module_version, cell_path=cell_path + ) + assert rc == 0 + rc, *_ = wrapper_b.run_make( + "cellinstall", module_version=module_version, cell_path=cell_path + ) + assert rc == 0 + rc, *_ = wrapper_a.run_make( + "cellinstall", module_version=module_version, cell_path=cell_path + ) + assert rc == 0 + + rc, outs, _ = run_ioc_get_output( + wrapper_a.name, module_version, wrapper_a.path / "cellMods" + ) + assert rc == 0 + assert f"Loaded {wrapper_b.name} version {module_version}" in outs + assert f"Loaded {wrapper_c.name} version {module_version}" not in outs + + def test_recursive_header_include(wrappers): wrapper_a = wrappers.get() wrapper_b = wrappers.get()