Skip to content

Commit eb527d1

Browse files
committed
ts: test provide/provided-alias extra specifiers
Signed-off-by: Xavier Delaruelle <[email protected]>
1 parent 56ff12d commit eb527d1

File tree

3 files changed

+117
-4
lines changed

3 files changed

+117
-4
lines changed

testsuite/modules.00-init/005-init_ts.exp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -752,10 +752,10 @@ proc err_extraspecifier {xtspec} {
752752
return "$::error_msgs: Invalid extra specifier '$xtspec'\n Valid extra\
753753
specifiers are: always-load append-path chdir complete conflict\
754754
depends-on depends-on-any envvar family incompat load load-any\
755-
prepend-path prereq prereq-all prereq-any pushenv remove-path\
756-
require set-alias set-function setenv switch switch-on switch-off\
757-
tag try-load uncomplete unload unset-alias unset-function unsetenv\
758-
use variant"
755+
prepend-path prereq prereq-all prereq-any provide provided-alias\
756+
pushenv remove-path require set-alias set-function setenv switch\
757+
switch-on switch-off tag try-load uncomplete unload unset-alias\
758+
unset-function unsetenv use variant"
759759
}
760760

761761
proc err_xtspec_notallowed {} {

testsuite/modules.51-scan/042-extra_spec-conflict.exp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,14 @@ setenv_var TESTSUITE_EXTRA family1
4646

4747
set tserr extra/1.0
4848
testouterr_cmd sh {avail -t extra family:xtfoo} OK $tserr
49+
testouterr_cmd sh {avail -t extra provided-alias:xtfoo} OK $tserr
4950
testouterr_cmd sh {avail -t extra family:xtbar} OK {}
51+
testouterr_cmd sh {avail -t extra provided-alias:xtbar} OK {}
5052

5153
setenv_var TESTSUITE_EXTRA family2
5254

5355
testouterr_cmd sh {avail -t extra family:xtfoo} OK {}
56+
testouterr_cmd sh {avail -t extra provided-alias:xtfoo} OK {}
5457
testouterr_cmd sh {avail -t extra family:*} OK {}
5558

5659
setenv_var TESTSUITE_EXTRA family3
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
##############################################################################
2+
# Modules Revision 3.0
3+
# Providing a flexible user environment
4+
#
5+
# File: modules.51-scan/%M%
6+
# Revision: %I%
7+
# First Edition: 2025/07/12
8+
# Last Mod.: %U%, %G%
9+
#
10+
# Authors: Xavier Delaruelle, [email protected]
11+
#
12+
# Description: Testuite testsequence
13+
# Command: avail
14+
# Modulefiles: extra
15+
# Sub-Command:
16+
#
17+
# Comment: %C{
18+
# Test "provide" related extra specifier
19+
# }C%
20+
#
21+
##############################################################################
22+
23+
skip_if_quick_mode
24+
25+
set mp $modpath.4
26+
set mpre $modpathre.4
27+
setenv_path_var MODULEPATH $mp
28+
29+
# ensure advanced version specifiers are enabled
30+
setenv_var MODULES_ADVANCED_VERSION_SPEC 1
31+
32+
# ensure avail tests are made using in depth mode
33+
setenv_var MODULES_AVAIL_INDEPTH 1
34+
35+
# ensure avail tests have implicit default enabled
36+
setenv_var MODULES_IMPLICIT_DEFAULT 1
37+
38+
setenv_var MODULES_AVAIL_TERSE_OUTPUT alias:dirwsym:sym:tag
39+
40+
41+
#
42+
# provide
43+
#
44+
45+
setenv_var TESTSUITE_PROVIDE multiple
46+
47+
set tserr provide/1
48+
testouterr_cmd sh {avail -t provide provide:foo/1} OK $tserr
49+
testouterr_cmd sh {avail -t provide provide:foo} OK {}
50+
testouterr_cmd sh {avail -t provide provide:foo*} OK {}
51+
testouterr_cmd sh {avail -t provide provide:qux/1} OK $tserr
52+
testouterr_cmd sh {avail -t provide provided-alias:qux/1} OK $tserr
53+
testouterr_cmd sh {avail -t provide provided-alias:unk/1} OK {}
54+
55+
testouterr_cmd sh {avail -o +provided-alias -t provide provide:foo/1} OK $tserr
56+
testouterr_cmd sh {avail -o +provided-alias -t provide provide:foo} OK {}
57+
58+
setenv_var TESTSUITE_PROVIDE err_arg
59+
60+
testouterr_cmd sh {avail -t provide provide:foo/1} OK {}
61+
testouterr_cmd sh {avail -t provide provided-alias:foo/1} OK {}
62+
testouterr_cmd sh {avail -t provide provide:unk} OK {}
63+
64+
setenv_var TESTSUITE_PROVIDE duplicate_with_ext
65+
66+
set tserr bar/1\nprovide/1
67+
testouterr_cmd sh {avail -t provide:foo/1} OK $tserr
68+
testouterr_cmd sh {avail -t provided-alias:foo/1} OK $tserr
69+
testouterr_cmd sh {avail -t provide:bar/1} OK {}
70+
71+
testouterr_cmd sh {avail -o +provided-alias -t provide:foo/1} OK $tserr
72+
73+
setenv_var TESTSUITE_PROVIDE duplicate_with_ext_module
74+
75+
set tserr provide/1
76+
testouterr_cmd sh {avail -t provide:bar/1} OK $tserr
77+
78+
setenv_var TESTSUITE_PROVIDE duplicate_with_family
79+
80+
testouterr_cmd sh {avail -t provide:foo} OK $tserr
81+
testouterr_cmd sh {avail -t provided-alias:foo} OK $tserr
82+
testouterr_cmd sh {avail -t family:foo} OK $tserr
83+
84+
setenv_var TESTSUITE_PROVIDE duplicate_with_ext_family
85+
86+
set tserr bar/1\nprovide/1
87+
testouterr_cmd sh {avail -t provided-alias:foo} OK $tserr
88+
testouterr_cmd sh {avail -t provide:foo} OK provide/1
89+
testouterr_cmd sh {avail -t family:foo} OK bar/1
90+
91+
testouterr_cmd sh {avail -o +provided-alias -t provided-alias:foo} OK $tserr
92+
testouterr_cmd sh {avail -o +provided-alias -t family:foo} OK bar/1
93+
94+
setenv_var TESTSUITE_PROVIDE duplicate_with_alias
95+
96+
set tserr provide/1
97+
testouterr_cmd sh {avail -t provide:foo} OK $tserr
98+
testouterr_cmd sh {avail -t provided-alias:foo} OK $tserr
99+
100+
setenv_var TESTSUITE_PROVIDE duplicate_with_ext_same_alias
101+
102+
testouterr_cmd sh {avail -t provide:foo} OK $tserr
103+
testouterr_cmd sh {avail -t provided-alias:foo} OK $tserr
104+
105+
106+
#
107+
# Cleanup
108+
#
109+
110+
reset_test_env

0 commit comments

Comments
 (0)