Update tests

This commit is contained in:
psakiev 2024-05-29 17:15:26 -06:00
parent ca5b085355
commit 36fb2354e1
2 changed files with 14 additions and 6 deletions

View File

@ -2049,8 +2049,7 @@ def define_ad_hoc_versions_from_specs(
version = s.versions.concrete version = s.versions.concrete
if version is None or ( if version is None or (
not isinstance(version, vn.GitVersion) any((v == version) for v in self.possible_versions[s.name])
and any((v == version) for v in self.possible_versions[s.name])
): ):
continue continue

View File

@ -2920,24 +2920,33 @@ def test_spec_filters(specs, include, exclude, expected):
def test_git_ref_version_can_be_reused( def test_git_ref_version_can_be_reused(
install_mockery_mutable_config, do_not_check_runtimes_on_reuse install_mockery_mutable_config, do_not_check_runtimes_on_reuse
): ):
first_spec = spack.spec.Spec("git-ref-package@git.2.1.5=2.1.5").concretized() first_spec = spack.spec.Spec("git-ref-package@git.2.1.5=2.1.5~opt").concretized()
first_spec.package.do_install(fake=True, explicit=True) first_spec.package.do_install(fake=True, explicit=True)
with spack.config.override("concretizer:reuse", True): with spack.config.override("concretizer:reuse", True):
second_spec = spack.spec.Spec("git-ref-package@git.2.1.5=2.1.5~opt").concretized() # reproducer of the issue is that spack will solve when there is a change to the base spec
second_spec = spack.spec.Spec("git-ref-package@git.2.1.5=2.1.5+opt").concretized()
assert second_spec.dag_hash() != first_spec.dag_hash() assert second_spec.dag_hash() != first_spec.dag_hash()
# we also want to confirm that reuse actually works so leave variant off to let solver reuse
third_spec = spack.spec.Spec("git-ref-package@git.2.1.5=2.1.5")
assert first_spec.satisfies(third_spec)
third_spec.concretize()
assert third_spec.dag_hash() == first_spec.dag_hash()
@pytest.mark.only_clingo("clingo only reuse feature being tested") @pytest.mark.only_clingo("clingo only reuse feature being tested")
@pytest.mark.parametrize(
"standard_version",["2.0.0", "2.1.5", "2.1.6"]
)
def test_reuse_prefers_standard_over_git_versions( def test_reuse_prefers_standard_over_git_versions(
install_mockery_mutable_config, do_not_check_runtimes_on_reuse standard_version, install_mockery_mutable_config, do_not_check_runtimes_on_reuse
): ):
""" """
order matters in this test. typically reuse would pick the last installed match order matters in this test. typically reuse would pick the last installed match
but we want to prefer the standard version over git ref based versions but we want to prefer the standard version over git ref based versions
so install git ref last and ensure it is not picked up by reuse so install git ref last and ensure it is not picked up by reuse
""" """
standard_spec = spack.spec.Spec("git-ref-package@2.1.5").concretized() standard_spec = spack.spec.Spec(f"git-ref-package@{standard_version}").concretized()
standard_spec.package.do_install(fake=True, explicit=True) standard_spec.package.do_install(fake=True, explicit=True)
git_spec = spack.spec.Spec("git-ref-package@git.2.1.5=2.1.5").concretized() git_spec = spack.spec.Spec("git-ref-package@git.2.1.5=2.1.5").concretized()