unit-test: make Spec.compiler behavior stricter

Now the adaptor will raise if the Spec has no C, C++,
or Fortran compiler.
This commit is contained in:
Massimiliano Culpo 2024-11-12 17:35:44 +01:00
parent 3a67dfd9e8
commit 7f093d129b
No known key found for this signature in database
GPG Key ID: 3E52BB992233066C
2 changed files with 19 additions and 1 deletions

View File

@ -306,7 +306,6 @@ def test_package_test_no_compilers(mock_packages, monkeypatch, capfd):
pkg.do_test()
error = capfd.readouterr()[1]
assert "Skipping tests for package" in error
assert "test requires missing compiler" in error
def test_package_subscript(default_mock_concretization):

View File

@ -2044,3 +2044,22 @@ def test_satisfies_and_subscript_with_compilers(default_mock_concretization):
# We need to pass through "pkg-a" to get "gmake" with [] notation
assert s["pkg-a"].dependencies(name="gmake")[0] == s["pkg-a"]["gmake"]
@pytest.mark.parametrize(
"spec_str,spec_fmt,expected",
[
# Depends on C
("mpileaks", "{name}-{compiler.name}", "mpileaks-gcc"),
("mpileaks", "{name}-{compiler.name}-{compiler.version}", "mpileaks-gcc-10.2.1"),
# No compiler
("pkg-c", "{name}-{compiler.name}", "pkg-c-none"),
("pkg-c", "{name}-{compiler.name}-{compiler.version}", "pkg-c-none-none"),
],
)
def test_spec_format_with_compiler_adaptors(
spec_str, spec_fmt, expected, default_mock_concretization
):
"""Tests the output of spec format, when involving `Spec.compiler` adaptors"""
s = default_mock_concretization(spec_str)
assert s.format(spec_fmt) == expected