Skip to content

Commit f62b53b

Browse files
committed
ts: more provided-alias output tests on avail subcmd
Signed-off-by: Xavier Delaruelle <[email protected]>
1 parent c32baba commit f62b53b

File tree

3 files changed

+165
-0
lines changed

3 files changed

+165
-0
lines changed

testsuite/modulefiles.4/provide/.modulerc

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,32 @@ if {[info exists env(TESTSUITE_PROVIDE)]} {
77
duplicate_with_ext_diff_version {
88
module-version provide/2 foo
99
}
10+
multiple_and_forbidden {
11+
module-forbid provide/1
12+
}
13+
multiple_and_alias_forbidden {
14+
module-forbid quux/1
15+
}
16+
multiple_and_family_forbidden {
17+
module-forbid quux
18+
}
19+
multiple_and_expired {
20+
module-forbid --after 2025-07-15 provide/1
21+
}
22+
multiple_and_alias_expired {
23+
module-forbid --after 2025-07-15 quux/1
24+
}
25+
multiple_and_family_expired {
26+
module-forbid --after 2025-07-15 quux
27+
}
28+
multiple_and_hidden {
29+
module-hide provide/1
30+
}
31+
multiple_and_alias_hidden {
32+
module-hide quux/1
33+
}
34+
multiple_and_family_hidden {
35+
module-hide quux
36+
}
1037
}
1138
}

testsuite/modulefiles.4/provide/1

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,5 +79,16 @@ if {[info exists env(TESTSUITE_PROVIDE)]} {
7979
extensions foo/1 bar/1
8080
extensions baz/1 qux/1 quux/1
8181
}
82+
multiple_and_forbidden - multiple_and_alias_forbidden -\
83+
multiple_and_expired - multiple_and_alias_expired -\
84+
multiple_and_hidden - multiple_and_alias_hidden {
85+
provide foo/1 bar/1 baz/1 qux/1 quux/1
86+
setenv FOO bar
87+
}
88+
multiple_and_family_forbidden - multiple_and_family_expired -\
89+
multiple_and_family_hidden {
90+
setenv FOO bar
91+
family quux
92+
}
8293
}
8394
}

testsuite/modules.70-maint/360-avail_output.exp

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -599,6 +599,7 @@ unsetenv_var TESTSUITE_USE_MODULEPATH
599599
if {$is_symlink_supported && $os_name ne {msys}} {
600600

601601
setenv_var MODULES_TERM_WIDTH 200
602+
setenv_var MODULES_ADVANCED_VERSION_SPEC 1
602603
set mp $modpath.provide
603604

604605
file mkdir $mp
@@ -776,13 +777,139 @@ testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1
776777
testouterr_cmd sh {avail provide} OK {provide/1 provide/2(foo) provide/3 }
777778

778779

780+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:provided-alias
781+
782+
setenv_var TESTSUITE_PROVIDE multiple_and_forbidden
783+
784+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 <F> provide/2 provide/3 }
785+
testouterr_cmd sh {avail provide} OK {provide/1 <F> provide/2 provide/3 }
786+
testouterr_cmd sh {avail provide/1} OK {provide/1 <F> }
787+
testouterr_cmd sh {avail unk} OK {}
788+
testouterr_cmd sh {avail quux/1} OK {}
789+
790+
testouterr_cmd sh {avail envvar:FOO} OK {}
791+
testouterr_cmd sh {avail provide envvar:FOO} OK {}
792+
testouterr_cmd sh {avail unk envvar:FOO} OK {}
793+
testouterr_cmd sh {avail quux/1 envvar:FOO} OK {}
794+
795+
796+
setenv_var TESTSUITE_PROVIDE multiple_and_alias_forbidden
797+
798+
testouterr_cmd sh {avail} OK {bar/1 bar/2 baz/1(@) foo/1(@) foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 quux/1(@) <F> qux/1(@) }
799+
testouterr_cmd sh {avail provide} OK {provide/1 provide/2 provide/3 }
800+
testouterr_cmd sh {avail provide/1} OK {provide/1 }
801+
testouterr_cmd sh {avail unk} OK {}
802+
testouterr_cmd sh {avail quux/1} OK {quux/1(@) <F> }
803+
804+
testouterr_cmd sh {avail envvar:FOO} OK {provide/1 }
805+
testouterr_cmd sh {avail provide envvar:FOO} OK {provide/1 }
806+
testouterr_cmd sh {avail unk envvar:FOO} OK {}
807+
testouterr_cmd sh {avail quux/1 envvar:FOO} OK {}
808+
809+
810+
setenv_var TESTSUITE_PROVIDE multiple_and_family_forbidden
811+
812+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 quux(@) <F> }
813+
testouterr_cmd sh {avail provide/1} OK {provide/1 }
814+
testouterr_cmd sh {avail unk} OK {}
815+
testouterr_cmd sh {avail quux} OK {quux(@) <F> }
816+
817+
testouterr_cmd sh {avail envvar:FOO} OK {provide/1 }
818+
testouterr_cmd sh {avail provide envvar:FOO} OK {provide/1 }
819+
testouterr_cmd sh {avail unk envvar:FOO} OK {}
820+
testouterr_cmd sh {avail quux envvar:FOO} OK {}
821+
822+
823+
setenv_var TESTSUITE_PROVIDE multiple_and_expired
824+
825+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 <F> provide/2 provide/3 }
826+
testouterr_cmd sh {avail provide} OK {provide/1 <F> provide/2 provide/3 }
827+
testouterr_cmd sh {avail provide/1} OK {provide/1 <F> }
828+
testouterr_cmd sh {avail unk} OK {}
829+
testouterr_cmd sh {avail quux/1} OK {}
830+
831+
testouterr_cmd sh {avail envvar:FOO} OK {}
832+
testouterr_cmd sh {avail provide envvar:FOO} OK {}
833+
testouterr_cmd sh {avail unk envvar:FOO} OK {}
834+
testouterr_cmd sh {avail quux envvar:FOO} OK {}
835+
836+
837+
setenv_var TESTSUITE_PROVIDE multiple_and_alias_expired
838+
839+
testouterr_cmd sh {avail} OK {bar/1 bar/2 baz/1(@) foo/1(@) foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 quux/1(@) <F> qux/1(@) }
840+
testouterr_cmd sh {avail provide} OK {provide/1 provide/2 provide/3 }
841+
testouterr_cmd sh {avail provide/1} OK {provide/1 }
842+
testouterr_cmd sh {avail unk} OK {}
843+
testouterr_cmd sh {avail quux/1} OK {quux/1(@) <F> }
844+
845+
testouterr_cmd sh {avail envvar:FOO} OK {provide/1 }
846+
testouterr_cmd sh {avail provide envvar:FOO} OK {provide/1 }
847+
testouterr_cmd sh {avail unk envvar:FOO} OK {}
848+
testouterr_cmd sh {avail quux/1 envvar:FOO} OK {}
849+
850+
851+
setenv_var TESTSUITE_PROVIDE multiple_and_family_expired
852+
853+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 quux(@) <F> }
854+
testouterr_cmd sh {avail provide/1} OK {provide/1 }
855+
testouterr_cmd sh {avail unk} OK {}
856+
testouterr_cmd sh {avail quux} OK {quux(@) <F> }
857+
858+
testouterr_cmd sh {avail envvar:FOO} OK {provide/1 }
859+
testouterr_cmd sh {avail provide envvar:FOO} OK {provide/1 }
860+
testouterr_cmd sh {avail unk envvar:FOO} OK {}
861+
testouterr_cmd sh {avail quux envvar:FOO} OK {}
862+
863+
864+
setenv_var TESTSUITE_PROVIDE multiple_and_hidden
865+
866+
testouterr_cmd sh {avail} OK {bar/1 bar/2 baz/1(@) foo/1(@) foo/1.0 foo/2.0 foo/9.0 provide/2 provide/3 quux/1(@) qux/1(@) }
867+
testouterr_cmd sh {avail provide} OK {provide/2 provide/3 }
868+
testouterr_cmd sh {avail provide/1} OK {provide/1 <H> }
869+
testouterr_cmd sh {avail unk} OK {}
870+
testouterr_cmd sh {avail quux/1} OK {quux/1(@) }
871+
872+
testouterr_cmd sh {avail envvar:FOO} OK {}
873+
testouterr_cmd sh {avail provide envvar:FOO} OK {}
874+
testouterr_cmd sh {avail unk envvar:FOO} OK {}
875+
testouterr_cmd sh {avail quux envvar:FOO} OK {}
876+
877+
878+
setenv_var TESTSUITE_PROVIDE multiple_and_alias_hidden
879+
880+
testouterr_cmd sh {avail} OK {bar/1 bar/2 baz/1(@) foo/1(@) foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 qux/1(@) }
881+
testouterr_cmd sh {avail provide} OK {provide/1 provide/2 provide/3 }
882+
testouterr_cmd sh {avail provide/1} OK {provide/1 }
883+
testouterr_cmd sh {avail unk} OK {}
884+
testouterr_cmd sh {avail quux/1} OK {quux/1(@) <H> }
885+
886+
testouterr_cmd sh {avail envvar:FOO} OK {provide/1 }
887+
testouterr_cmd sh {avail provide envvar:FOO} OK {provide/1 }
888+
testouterr_cmd sh {avail unk envvar:FOO} OK {}
889+
testouterr_cmd sh {avail quux/1 envvar:FOO} OK {}
890+
891+
892+
setenv_var TESTSUITE_PROVIDE multiple_and_family_hidden
893+
894+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 }
895+
testouterr_cmd sh {avail provide/1} OK {provide/1 }
896+
testouterr_cmd sh {avail unk} OK {}
897+
testouterr_cmd sh {avail quux} OK {quux(@) <H> }
898+
899+
testouterr_cmd sh {avail envvar:FOO} OK {provide/1 }
900+
testouterr_cmd sh {avail provide envvar:FOO} OK {provide/1 }
901+
testouterr_cmd sh {avail unk envvar:FOO} OK {}
902+
testouterr_cmd sh {avail quux envvar:FOO} OK {}
903+
904+
779905
file delete $mp/foo
780906
file delete $mp/bar
781907
file delete $mp/provide
782908
file delete $mp/.modulerc
783909
file delete $mp
784910

785911
unsetenv_var MODULES_TERM_WIDTH
912+
setenv_var MODULES_ADVANCED_VERSION_SPEC 0
786913

787914
} else {
788915
send_user "\tskipping provided-alias tests as specific test setup cannot be built\n"

0 commit comments

Comments
 (0)