diff --git a/lib/spack/spack/modules/common.py b/lib/spack/spack/modules/common.py index c09a22511659f65437a420ec93e879c8c286c146..8dee443eb33a3b363420ef9a9f4c43551b344329 100644 --- a/lib/spack/spack/modules/common.py +++ b/lib/spack/spack/modules/common.py @@ -428,6 +428,7 @@ def suffixes(self): for constraint, suffix in self.conf.get('suffixes', {}).items(): if constraint in self.spec: suffixes.append(suffix) + suffixes = sorted(set(suffixes)) if self.hash: suffixes.append(self.hash) return suffixes diff --git a/lib/spack/spack/test/data/modules/tcl/suffix.yaml b/lib/spack/spack/test/data/modules/tcl/suffix.yaml index 015ac63b0f95f8c29a415be206bb82917ccfd06e..57703e1733992cedb23c5aaa8c689fc4146caba7 100644 --- a/lib/spack/spack/test/data/modules/tcl/suffix.yaml +++ b/lib/spack/spack/test/data/modules/tcl/suffix.yaml @@ -5,3 +5,4 @@ tcl: suffixes: '+debug': foo '~debug': bar + '^mpich': foo diff --git a/lib/spack/spack/test/modules/tcl.py b/lib/spack/spack/test/modules/tcl.py index 70eee24461268bc0b3c3937f8945d1a4f558ef49..40cb7be5ef77c141b4bb358dbac94b973e73f5d9 100644 --- a/lib/spack/spack/test/modules/tcl.py +++ b/lib/spack/spack/test/modules/tcl.py @@ -215,9 +215,10 @@ def test_suffixes(self, module_configuration, factory): writer, spec = factory('mpileaks+debug arch=x86-linux') assert 'foo' in writer.layout.use_name + assert 'foo-foo' not in writer.layout.use_name writer, spec = factory('mpileaks~debug arch=x86-linux') - assert 'bar' in writer.layout.use_name + assert 'bar-foo' in writer.layout.use_name def test_setup_environment(self, modulefile_content, module_configuration): """Tests the internal set-up of run-time environment."""