Skip to content

Commit

Permalink
Issue #745: posix.setenv does not work with a value of false. It mush…
Browse files Browse the repository at this point in the history
… be nil
  • Loading branch information
Robert McLay committed Jan 27, 2025
1 parent 1f906d9 commit c33e3d4
Show file tree
Hide file tree
Showing 6 changed files with 72 additions and 4 deletions.
1 change: 1 addition & 0 deletions README.new
Original file line number Diff line number Diff line change
Expand Up @@ -203,3 +203,4 @@ W.I.P:
* Fixed LMOD_FILE_IGNORE_PATTERNS so that it can be an env. var and converted to a Lua array table.
* Documented LMOD_FILE_IGNORE_PATTERNS
* Issue #740: Rewrite ModuleA l_find_vA so that it checks partial version strings.
* Issue #745: posix.setenv("var", false, true) must change to posix.setenv("var", nil, true).
14 changes: 13 additions & 1 deletion rt/pushenv/err.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
step 1
lua ProjectDIR/src/lmod.in.lua shell --regression_testing --version
===========================
Modules based on Lua: Version 8.7.40 2024-06-11 15:18 -06:00
Modules based on Lua: Version 8.7.55 2024-12-13 12:24 -07:00
by Robert McLay [email protected]
===========================
step 2
Expand Down Expand Up @@ -114,3 +114,15 @@ lua ProjectDIR/src/lmod.in.lua shell --regression_testing unload second
step 27
echo FOO=%% BAZ=% %
===========================
===========================
step 28
lua ProjectDIR/src/lmod.in.lua shell --regression_testing purge
===========================
===========================
step 29
lua ProjectDIR/src/lmod.in.lua shell --regression_testing load tryThis
===========================
===========================
step 30
lua ProjectDIR/src/lmod.in.lua shell --regression_testing refresh
===========================
1 change: 1 addition & 0 deletions rt/pushenv/mf/Core3/tryThis/1.0.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pushenv("TESTVAR",false)
46 changes: 46 additions & 0 deletions rt/pushenv/out.txt
Original file line number Diff line number Diff line change
Expand Up @@ -447,3 +447,49 @@ step 27
echo FOO=%% BAZ=% %
===========================
FOO=%% BAZ=% %
===========================
step 28
lua ProjectDIR/src/lmod.in.lua shell --regression_testing purge
===========================
unset A;
unset B;
unset BAR;
unset BAZ;
unset C;
unset FOO;
unset LOADEDMODULES;
MODULEPATH=ProjectDIR/rt/pushenv/mf/Core2;
export MODULEPATH;
unset _LMFILES_;
_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"ProjectDIR/rt/pushenv/mf/Core2",},systemBaseMPATH="ProjectDIR/rt/pushenv/mf/Core2",}';
export _ModuleTable_;
unset __LMOD_STACK_A;
unset __LMOD_STACK_B;
unset __LMOD_STACK_BAZ;
unset __LMOD_STACK_C;
unset __LMOD_STACK_FOO;
===========================
step 29
lua ProjectDIR/src/lmod.in.lua shell --regression_testing load tryThis
===========================
LOADEDMODULES=tryThis/1.0;
export LOADEDMODULES;
__LMOD_REF_COUNT_MODULEPATH=ProjectDIR/rt/pushenv/mf/Core3:1;
export __LMOD_REF_COUNT_MODULEPATH;
MODULEPATH=ProjectDIR/rt/pushenv/mf/Core3;
export MODULEPATH;
unset TESTVAR;
_LMFILES_=ProjectDIR/rt/pushenv/mf/Core3/tryThis/1.0.lua;
export _LMFILES_;
_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={tryThis={fn="ProjectDIR/rt/pushenv/mf/Core3/tryThis/1.0.lua",fullName="tryThis/1.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="tryThis",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/pushenv/mf/Core3",},systemBaseMPATH="ProjectDIR/rt/pushenv/mf/Core3",}';
export _ModuleTable_;
__LMOD_STACK_TESTVAR=false:tryThis;
export __LMOD_STACK_TESTVAR;
===========================
step 30
lua ProjectDIR/src/lmod.in.lua shell --regression_testing refresh
===========================
MODULEPATH=ProjectDIR/rt/pushenv/mf/Core3;
export MODULEPATH;
_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={tryThis={fn="ProjectDIR/rt/pushenv/mf/Core3/tryThis/1.0.lua",fullName="tryThis/1.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="tryThis",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/pushenv/mf/Core3",},systemBaseMPATH="ProjectDIR/rt/pushenv/mf/Core3",}';
export _ModuleTable_;
11 changes: 8 additions & 3 deletions rt/pushenv/pushenv.tdesc
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,15 @@ testdescript = {
runLmod unload second #26
runBase echo FOO="%$FOO%" BAZ="%$BAZ%" #27
#--------------------------------------------------------------
# Issue: #745: pushenv("FOO",false) then module refresh
runLmod purge #28
unsetMT
MODULEPATH=$MODULEPATH_ROOT/Core3; export MODULEPATH
export TESTVAR="tryThis"
runLmod load tryThis #29
runLmod refresh #30
HOME_ORIG=$HOME
Expand Down
3 changes: 3 additions & 0 deletions src/MainControl.lua
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,9 @@ function M.setenv_env(self, name, value, respect)
name = (name or ""):trim()
dbg.start{"MainControl:setenv_env(\"",name,"\", \"",value,"\", \"",
respect,"\")"}
if (value == false) then
value = nil
end
posix.setenv(name, value, true)
dbg.fini("MainControl:setenv_env")
end
Expand Down

0 comments on commit c33e3d4

Please sign in to comment.