Skip to content

Commit 8277bdf

Browse files
committed
ts: test provided-alias output on avail/spider subcmd
Signed-off-by: Xavier Delaruelle <[email protected]>
1 parent eb527d1 commit 8277bdf

File tree

5 files changed

+420
-0
lines changed

5 files changed

+420
-0
lines changed

testsuite/modulefiles.4/.modulerc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,5 +90,11 @@ if {[info exists env(TESTSUITE_PROVIDE)]} {
9090
duplicate_with_ext_diff_alias {
9191
module-alias foo bar/1
9292
}
93+
duplicate_with_ext_same_alias2 {
94+
module-alias quux provide/1
95+
}
96+
duplicate_with_ext_diff_alias2 {
97+
module-alias quux bar/1
98+
}
9399
}
94100
}

testsuite/modulefiles.4/bar/1

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,5 +66,8 @@ if {[info exists env(TESTSUITE_PROVIDE)]} {
6666
duplicate_with_ext_family {
6767
family foo
6868
}
69+
duplicate_with_ext_family2 {
70+
family quux
71+
}
6972
}
7073
}

testsuite/modulefiles.4/provide/1

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,16 @@ if {[info exists env(TESTSUITE_PROVIDE)]} {
3636
provide foo
3737
family foo
3838
}
39+
duplicate_with_family3 {
40+
family quux
41+
provide quux
42+
}
3943
duplicate_with_ext_family {
4044
provide foo
4145
}
46+
duplicate_with_ext_family2 {
47+
provide quux
48+
}
4249
duplicate_with_alias {
4350
module-alias foo provide/1
4451
provide foo
@@ -47,9 +54,16 @@ if {[info exists env(TESTSUITE_PROVIDE)]} {
4754
provide foo
4855
module-alias foo provide/1
4956
}
57+
duplicate_with_alias3 {
58+
provide quux
59+
module-alias quux provide/1
60+
}
5061
duplicate_with_ext_same_alias - duplicate_with_ext_diff_alias {
5162
provide foo
5263
}
64+
duplicate_with_ext_same_alias2 - duplicate_with_ext_diff_alias2 {
65+
provide quux
66+
}
5367
duplicate_with_version {
5468
module-version provide/1 foo
5569
provide provide/foo

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

Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -591,6 +591,204 @@ unsetenv_var TESTSUITE_SPIDER_MODPATH2
591591
unsetenv_var TESTSUITE_USE_MODULEPATH
592592

593593

594+
#
595+
# provided-alias test
596+
#
597+
598+
# skip test on MSYS platform or if symlink creation is not supported
599+
if {$is_symlink_supported && $os_name ne {msys}} {
600+
601+
setenv_var MODULES_TERM_WIDTH 200
602+
set mp $modpath.provide
603+
604+
file mkdir $mp
605+
file link -symbolic $mp/foo ../modulefiles.4/foo
606+
file link -symbolic $mp/bar ../modulefiles.4/bar
607+
file link -symbolic $mp/provide ../modulefiles.4/provide
608+
file link -symbolic $mp/.modulerc ../modulefiles.4/.modulerc
609+
610+
setenv_path_var MODULEPATH $mp
611+
612+
setenv_var TESTSUITE_PROVIDE multiple
613+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:alias
614+
setenv_var MODULES_AVAIL_TERSE_OUTPUT sym:tag:alias
615+
616+
testouterr_cmd sh {avail foo} OK {foo/1.0 foo/2.0 foo/9.0 }
617+
testouterr_cmd sh {avail foo/1} OK {foo/1.0 }
618+
testouterr_cmd sh {avail quux} OK {}
619+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 }
620+
testouterr_cmd sh {avail provide} OK {provide/1 provide/2 provide/3 }
621+
622+
setenv_var MODULES_AVAIL_TERSE_OUTPUT sym:tag:alias
623+
624+
testouterr_cmd sh {avail -t foo} OK "foo/1.0\nfoo/2.0\nfoo/9.0"
625+
testouterr_cmd sh {avail -t foo/1} OK "foo/1.0"
626+
testouterr_cmd sh {avail -t quux} OK {}
627+
testouterr_cmd sh {avail -t} OK "bar/1\nbar/2\nfoo/1.0\nfoo/2.0\nfoo/9.0\nprovide/1\nprovide/2\nprovide/3"
628+
testouterr_cmd sh {avail -t provide} OK "provide/1\nprovide/2\nprovide/3"
629+
630+
# Extra Match Search enabled with variant in output, but it does not trigger provided-alias insertion
631+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:alias:variant
632+
633+
testouterr_cmd sh {avail -t foo} OK "foo/1.0\nfoo/2.0\nfoo/9.0"
634+
testouterr_cmd sh {avail -t foo/1} OK "foo/1.0"
635+
testouterr_cmd sh {avail -t quux} OK {}
636+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 }
637+
testouterr_cmd sh {avail -t provide} OK "provide/1\nprovide/2\nprovide/3"
638+
639+
# Extra Match Search enabled with extra specifier set, but it does not trigger provided-alias insertion
640+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:alias
641+
642+
testouterr_cmd sh {avail -t foo not:tag:loaded} OK "foo/1.0\nfoo/2.0\nfoo/9.0"
643+
testouterr_cmd sh {avail -t foo/1 not:tag:loaded} OK "foo/1.0"
644+
testouterr_cmd sh {avail -t quux not:tag:loaded} OK {}
645+
testouterr_cmd sh {avail * not:tag:loaded} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 }
646+
testouterr_cmd sh {avail -t provide not:tag:loaded} OK "provide/1\nprovide/2\nprovide/3"
647+
648+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:alias:provided-alias
649+
650+
testouterr_cmd sh {avail foo} OK {foo/1(@) foo/1.0 foo/2.0 foo/9.0 }
651+
testouterr_cmd sh {avail foo/1} OK {foo/1(@) foo/1.0 }
652+
testouterr_cmd sh {avail quux} OK {quux/1(@) }
653+
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(@) qux/1(@) }
654+
testouterr_cmd sh {avail provide} OK {provide/1 provide/2 provide/3 }
655+
656+
setenv_var MODULES_AVAIL_TERSE_OUTPUT sym:tag:alias:provided-alias
657+
658+
testouterr_cmd sh {avail -t foo} OK "foo/1(@)\nfoo/1.0\nfoo/2.0\nfoo/9.0"
659+
testouterr_cmd sh {avail -t foo/1} OK "foo/1(@)\nfoo/1.0"
660+
testouterr_cmd sh {avail -t quux} OK {quux/1(@)}
661+
testouterr_cmd sh {avail -t} OK "bar/1\nbar/2\nbaz/1(@)\nfoo/1(@)\nfoo/1.0\nfoo/2.0\nfoo/9.0\nprovide/1\nprovide/2\nprovide/3\nquux/1(@)\nqux/1(@)"
662+
testouterr_cmd sh {avail -t provide} OK "provide/1\nprovide/2\nprovide/3"
663+
664+
setenv_var MODULES_AVAIL_TERSE_OUTPUT sym:tag:alias:variant
665+
666+
setenv_var TESTSUITE_PROVIDE duplicate_with_family
667+
668+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:provided-alias
669+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 }
670+
testouterr_cmd sh {avail foo} OK {foo/1.0 foo/2.0 foo/9.0 }
671+
672+
setenv_var TESTSUITE_PROVIDE duplicate_with_ext_family
673+
674+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:provided-alias
675+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 }
676+
testouterr_cmd sh {avail foo} OK {foo/1.0 foo/2.0 foo/9.0 }
677+
678+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:alias
679+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 }
680+
testouterr_cmd sh {avail foo} OK {foo/1.0 foo/2.0 foo/9.0 }
681+
682+
setenv_var MODULES_AVAIL_OUTPUT sym:tag
683+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 }
684+
testouterr_cmd sh {avail foo} OK {foo/1.0 foo/2.0 foo/9.0 }
685+
686+
setenv_var TESTSUITE_PROVIDE duplicate_with_family3
687+
688+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:provided-alias
689+
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(@) }
690+
testouterr_cmd sh {avail quux} OK {quux(@) }
691+
692+
setenv_var TESTSUITE_PROVIDE duplicate_with_ext_family2
693+
694+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:provided-alias
695+
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(@) }
696+
testouterr_cmd sh {avail quux} OK {quux(@) }
697+
698+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:alias
699+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 }
700+
testouterr_cmd sh {avail quux} OK {}
701+
702+
setenv_var MODULES_AVAIL_OUTPUT sym:tag
703+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 }
704+
testouterr_cmd sh {avail quux} OK {}
705+
706+
707+
setenv_var TESTSUITE_PROVIDE duplicate_with_alias
708+
709+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 }
710+
testouterr_cmd sh {avail foo} OK {foo/1.0 foo/2.0 foo/9.0 }
711+
712+
setenv_var TESTSUITE_PROVIDE duplicate_with_ext_same_alias
713+
714+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:provided-alias
715+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 }
716+
testouterr_cmd sh {avail foo} OK {foo/1.0 foo/2.0 foo/9.0 }
717+
718+
setenv_var MODULES_AVAIL_OUTPUT sym:tag
719+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 }
720+
testouterr_cmd sh {avail foo} OK {foo/1.0 foo/2.0 foo/9.0 }
721+
722+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:alias
723+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo(@) foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 }
724+
testouterr_cmd sh {avail foo} OK {foo(@) foo/1.0 foo/2.0 foo/9.0 }
725+
726+
setenv_var TESTSUITE_PROVIDE duplicate_with_ext_diff_alias
727+
728+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:provided-alias
729+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 }
730+
testouterr_cmd sh {avail foo} OK {foo/1.0 foo/2.0 foo/9.0 }
731+
732+
setenv_var TESTSUITE_PROVIDE duplicate_with_alias3
733+
734+
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(@) }
735+
testouterr_cmd sh {avail quux} OK {quux(@) }
736+
737+
setenv_var TESTSUITE_PROVIDE duplicate_with_ext_same_alias2
738+
739+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:provided-alias
740+
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(@) }
741+
testouterr_cmd sh {avail quux} OK {quux(@) }
742+
743+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:alias
744+
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(@) }
745+
testouterr_cmd sh {avail quux} OK {quux(@) }
746+
747+
setenv_var MODULES_AVAIL_OUTPUT sym:tag
748+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 }
749+
testouterr_cmd sh {avail quux} OK {}
750+
751+
setenv_var TESTSUITE_PROVIDE duplicate_with_ext_diff_alias2
752+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:provided-alias
753+
754+
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(@) }
755+
testouterr_cmd sh {avail quux} OK {quux(@) }
756+
757+
758+
setenv_var TESTSUITE_PROVIDE duplicate_with_version
759+
760+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:provided-alias
761+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 provide/foo(@) }
762+
testouterr_cmd sh {avail provide} OK {provide/1 provide/2 provide/3 provide/foo(@) }
763+
764+
setenv_var MODULES_AVAIL_OUTPUT sym:tag
765+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2 provide/3 }
766+
testouterr_cmd sh {avail provide} OK {provide/1 provide/2 provide/3 }
767+
768+
setenv_var TESTSUITE_PROVIDE duplicate_with_ext_diff_version
769+
770+
setenv_var MODULES_AVAIL_OUTPUT sym:tag:provided-alias
771+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2(foo) provide/3 }
772+
testouterr_cmd sh {avail provide} OK {provide/1 provide/2(foo) provide/3 }
773+
774+
setenv_var MODULES_AVAIL_OUTPUT sym:tag
775+
testouterr_cmd sh {avail} OK {bar/1 bar/2 foo/1.0 foo/2.0 foo/9.0 provide/1 provide/2(foo) provide/3 }
776+
testouterr_cmd sh {avail provide} OK {provide/1 provide/2(foo) provide/3 }
777+
778+
779+
file delete $mp/foo
780+
file delete $mp/bar
781+
file delete $mp/provide
782+
file delete $mp/.modulerc
783+
file delete $mp
784+
785+
unsetenv_var MODULES_TERM_WIDTH
786+
787+
} else {
788+
send_user "\tskipping provided-alias tests as specific test setup cannot be built\n"
789+
}
790+
791+
594792
#
595793
# hidden test
596794
#

0 commit comments

Comments
 (0)