From c8e01752a1268ec888cd55d822aaf94d96467f31 Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Wed, 12 Jan 2022 14:29:22 +0100 Subject: Use depends_on over load in lmod module files generated by Spack (#28352) --- lib/spack/spack/test/modules/lmod.py | 18 +++--------------- share/spack/templates/modules/modulefile.lua | 7 +------ 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/lib/spack/spack/test/modules/lmod.py b/lib/spack/spack/test/modules/lmod.py index 954c068545..a9df8491f7 100644 --- a/lib/spack/spack/test/modules/lmod.py +++ b/lib/spack/spack/test/modules/lmod.py @@ -96,13 +96,7 @@ class TestLmod(object): module_configuration('autoload_direct') content = modulefile_content(mpileaks_spec_string) - assert len([x for x in content if 'if not isloaded(' in x]) == 2 - assert len([x for x in content if 'load(' in x]) == 2 - - # The configuration file doesn't set the verbose keyword - # that defaults to False - messages = [x for x in content if 'LmodMessage("Autoloading' in x] - assert len(messages) == 0 + assert len([x for x in content if 'depends_on(' in x]) == 2 def test_autoload_all(self, modulefile_content, module_configuration): """Tests the automatic loading of all dependencies.""" @@ -110,12 +104,7 @@ class TestLmod(object): module_configuration('autoload_all') content = modulefile_content(mpileaks_spec_string) - assert len([x for x in content if 'if not isloaded(' in x]) == 5 - assert len([x for x in content if 'load(' in x]) == 5 - - # The configuration file sets the verbose keyword to True - messages = [x for x in content if 'LmodMessage("Autoloading' in x] - assert len(messages) == 5 + assert len([x for x in content if 'depends_on(' in x]) == 5 def test_alter_environment(self, modulefile_content, module_configuration): """Tests modifications to run-time environment.""" @@ -158,8 +147,7 @@ class TestLmod(object): module_configuration('blacklist') content = modulefile_content(mpileaks_spec_string) - assert len([x for x in content if 'if not isloaded(' in x]) == 1 - assert len([x for x in content if 'load(' in x]) == 1 + assert len([x for x in content if 'depends_on(' in x]) == 1 def test_no_hash(self, factory, module_configuration): """Makes sure that virtual providers (in the hierarchy) always diff --git a/share/spack/templates/modules/modulefile.lua b/share/spack/templates/modules/modulefile.lua index 2149c8bfaf..e4b589d7dc 100644 --- a/share/spack/templates/modules/modulefile.lua +++ b/share/spack/templates/modules/modulefile.lua @@ -62,12 +62,7 @@ setenv("LMOD_{{ name|upper() }}_VERSION", "{{ version_part }}") {% block autoloads %} {% for module in autoload %} -if not isloaded("{{ module }}") then -{% if verbose %} - LmodMessage("Autoloading {{ module }}") -{% endif %} - load("{{ module }}") -end +depends_on("{{ module }}") {% endfor %} {% endblock %} -- cgit v1.2.3-70-g09d2