diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/spack/spack/modules/lmod.py | 6 | ||||
-rw-r--r-- | lib/spack/spack/test/modules/lmod.py | 16 |
2 files changed, 21 insertions, 1 deletions
diff --git a/lib/spack/spack/modules/lmod.py b/lib/spack/spack/modules/lmod.py index a381e08ca9..e45b97773b 100644 --- a/lib/spack/spack/modules/lmod.py +++ b/lib/spack/spack/modules/lmod.py @@ -198,7 +198,11 @@ class LmodFileLayout(BaseFileLayout): @property def arch_dirname(self): """Returns the root folder for THIS architecture""" - arch_folder = str(self.spec.architecture) + arch_folder = '-'.join([ + str(self.spec.platform), + str(self.spec.os), + str(self.spec.target.family) + ]) return os.path.join( self.dirname(), # root for lmod module files arch_folder, # architecture relative path diff --git a/lib/spack/spack/test/modules/lmod.py b/lib/spack/spack/test/modules/lmod.py index 7ee173d660..e480d22601 100644 --- a/lib/spack/spack/test/modules/lmod.py +++ b/lib/spack/spack/test/modules/lmod.py @@ -262,3 +262,19 @@ class TestLmod(object): # Assert we have core compilers now writer, _ = factory(mpileaks_spec_string) assert writer.conf.core_compilers + + @pytest.mark.parametrize('spec_str', [ + 'mpileaks target=haswell', + 'mpileaks target=core2', + 'mpileaks target=x86_64', + ]) + @pytest.mark.regression('13005') + def test_only_generic_microarchitectures_in_root( + self, spec_str, factory, module_configuration + ): + module_configuration('complex_hierarchy') + writer, spec = factory(spec_str) + + assert str(spec.target.family) in writer.layout.arch_dirname + if spec.target.family != spec.target: + assert str(spec.target) not in writer.layout.arch_dirname |