Skip to content
Snippets Groups Projects

Toolchain becomes package set part2

Merged Hans Fangohr requested to merge toolchain_becomes_package_set_part2 into main
1 file
+ 2
0
Compare changes
  • Side-by-side
  • Inline
+ 26
24
@@ -188,13 +188,13 @@ def test_record_script_execution_summary(tmp_path):
assert "Spack environments branch: dev-23a " in last_line
def test_install_environment_wrong_toolchain(tmp_path):
"""Test exception is raised for non-existing toolchain."""
# Expect an Exception when wrong toolchains are provided
def test_install_environment_wrong_package_set(tmp_path):
"""Test exception is raised for non-existing package_set."""
# Expect an Exception when wrong package_sets are provided
with pytest.raises(Exception):
mod.install_environment(
mpsd_release="dev-23a",
toolchains=["wrong-toolchain"],
package_sets=["wrong-package_set"],
root_dir=(tmp_path),
)
@@ -206,14 +206,14 @@ def test_install_environment_wrong_mpsd_release(tmp_path):
with pytest.raises(Exception):
mod.install_environment(
mpsd_release="wrong-mpsd-release",
toolchains=["foss2021a-mpi"],
package_sets=["foss2021a-mpi"],
root_dir=(tmp_path),
)
@pytest.mark.skipif(sys.platform == "darwin", reason="install not working on OSX")
def test_install_environment_zlib():
"""Test installation of toolchain."""
"""Test installation of package_set."""
# Prepare a test installation of global generic
# with only zlib to test the installation
# This is a long test,
@@ -227,21 +227,23 @@ def test_install_environment_zlib():
shutil.rmtree(root_dir)
root_dir.mkdir(exist_ok=True, parents=True)
mpsd_release_to_test = "dev-23a"
toolchain_to_test = "global_generic"
package_set_to_test = "global_generic"
cmd_log_file = mod.config_vars["cmd_log_file"]
microarch = mod.get_native_microarchitecture()
release_base_dir = root_dir / mpsd_release_to_test
create_mock_git_repository(target_directory=root_dir, create_directory=False)
mod.prepare_environment(mpsd_release=mpsd_release_to_test, root_dir=(root_dir))
# Patch the spack environments to create a fake global_generic
# create a test toolchain
toolchain_src_dir = release_base_dir / "spack-environments" / "toolchains"
# with mod.os_chdir(toolchain_src_dir):
# create a test package_set
package_set_src_dir = release_base_dir / "spack-environments" / "toolchains"
# with mod.os_chdir(package_set_src_dir):
# subprocess.run(
# "cp -r foss2021a-mpi fuss1999a", shell=True, capture_output=True
# )
# add zlib as a spec to global_generic
with open(toolchain_src_dir / "global_generic" / "global_packages.list", "w") as f:
with open(
package_set_src_dir / "global_generic" / "global_packages.list", "w"
) as f:
f.write("zlib@1.2.13 \n")
# add zlib to whitelist of module creation file by replacing anaconda3%gcc@10.2.1
@@ -271,14 +273,14 @@ def test_install_environment_zlib():
with open(setup_file, "w") as f:
f.write(lines)
# install global_generic toolchain
# install global_generic package_set
mod.set_up_logging(
"WARNING",
mod.get_installer_log_file_path(mpsd_release_to_test, "install", root_dir),
)
mod.install_environment(
mpsd_release=mpsd_release_to_test,
toolchains=[toolchain_to_test],
package_sets=[package_set_to_test],
root_dir=root_dir,
enable_build_cache=False,
)
@@ -310,7 +312,7 @@ def test_install_environment_zlib():
with open(root_dir / cmd_log_file, "r") as f:
lines = f.read()
assert (
f"installing {toolchain_to_test} and logging at {str(build_log)}" in lines
f"installing {package_set_to_test} and logging at {str(build_log)}" in lines
)
# assert that the module files are created correctly
assert os.path.exists(release_base_dir / microarch)
@@ -331,7 +333,7 @@ def test_install_environment_zlib():
)
mod.install_environment(
mpsd_release=mpsd_release_to_test,
toolchains=[toolchain_to_test],
package_sets=[package_set_to_test],
root_dir=root_dir,
enable_build_cache=False,
)
@@ -382,14 +384,14 @@ def test_metadata_logging(tmp_path):
assert len(read_dict) == len(keys)
def test_get_available_toolchains():
def test_get_available_package_sets():
"""
Test that available toolchains are reported correctly.
Test that available package_sets are reported correctly.
Needs internet access to succeed.
"""
toolchains = mod.get_available_toolchains("dev-23a")
assert sorted(toolchains) == sorted(
package_sets = mod.get_available_package_sets("dev-23a")
assert sorted(package_sets) == sorted(
[
"foss2021a-cuda-mpi",
"foss2021a-mpi",
@@ -410,18 +412,18 @@ def test_create_log_file_names():
microarch = "sandybridge"
date = datetime.datetime.now().replace(microsecond=0).isoformat()
action = "install"
toolchain = "foss2021a"
package_set = "foss2021a"
# test build_log_file_name generation
build_log_file_name = create_log_file_names(
microarch=microarch,
mpsd_release=mpsd_release,
date=date,
action=action,
toolchain=toolchain,
package_set=package_set,
)
assert (
build_log_file_name
== f"{mpsd_release}_{microarch}_{date}_BUILD_{toolchain}_{action}.log"
== f"{mpsd_release}_{microarch}_{date}_BUILD_{package_set}_{action}.log"
)
installer_log_file_name = create_log_file_names(
microarch=microarch,
@@ -439,7 +441,7 @@ def test_create_log_file_names():
mpsd_release=mpsd_release,
date=date,
action="status",
toolchain=toolchain,
package_set=package_set,
)
assert build_log_file_name is None
@@ -473,7 +475,7 @@ def test_environment_status(tmp_path):
def test_interface(tmp_path):
"""Test other things (not implemented yet)."""
pass
# ensure that installing without toolchains only passes the available toolchains
# ensure that installing without package_sets only passes the available package_sets
# check that the script branch and hash are correct when running the script
# check that the help message is printed when no arguments are provided
# check that the help message is printed when -h is provided
Loading