mirror of
https://github.com/envmodules/modules.git
synced 2026-06-14 00:42:43 +08:00
ts: add tests for prereq-any in 50/513
This commit is contained in:
@@ -11,6 +11,9 @@ if {[info exists env(TESTSUITE_LCOMPAT)]} {
|
||||
extrc1 {
|
||||
extensions moda/1.0 modb/2.0
|
||||
}
|
||||
pranyrc1 {
|
||||
prereq-any foo/1.0 bar/1.0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
18
testsuite/modulefiles.3/lcompat/1.3
Normal file
18
testsuite/modulefiles.3/lcompat/1.3
Normal file
@@ -0,0 +1,18 @@
|
||||
#%Module
|
||||
|
||||
module-whatis [module-info name]
|
||||
|
||||
if {[info exists env(TESTSUITE_LCOMPAT)]} {
|
||||
switch -- $env(TESTSUITE_LCOMPAT) {
|
||||
prany1 {
|
||||
prereq-any foo/1.0 bar/1.0
|
||||
}
|
||||
prany2 {
|
||||
prereq-any foo/1.0
|
||||
}
|
||||
prany3 {
|
||||
prereq-any
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
154
testsuite/modules.50-cmds/513-prereq-any.exp
Normal file
154
testsuite/modules.50-cmds/513-prereq-any.exp
Normal file
@@ -0,0 +1,154 @@
|
||||
##############################################################################
|
||||
# Modules Revision 3.0
|
||||
# Providing a flexible user environment
|
||||
#
|
||||
# File: modules.50-cmds/%M%
|
||||
# Revision: %I%
|
||||
# First Edition: 2021/11/27
|
||||
# Last Mod.: %U%, %G%
|
||||
#
|
||||
# Authors: Xavier Delaruelle, xavier.delaruelle@cea.fr
|
||||
#
|
||||
# Description: Testuite testsequence
|
||||
# Command: load, unload, display, help, test, whatis, refresh, avail
|
||||
# Modulefiles: lcompat
|
||||
# Sub-Command:
|
||||
#
|
||||
# Comment: %C{
|
||||
# Test prereq-any modulefile command
|
||||
# }C%
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
skip_if_quick_mode
|
||||
|
||||
set mp $modpath.3
|
||||
set mpre $modpathre.3
|
||||
setenv_path_var MODULEPATH $mp
|
||||
|
||||
set mod lcompat/1.3
|
||||
set modfile $mp/$mod
|
||||
set modfilere $mpre/$mod
|
||||
|
||||
|
||||
setenv_var TESTSUITE_LCOMPAT prany1
|
||||
|
||||
# load
|
||||
set ans [list]
|
||||
lappend ans [list set __MODULES_LMPREREQ $mod&foo/1.0|bar/1.0]
|
||||
lappend ans [list set _LMFILES_ $mp/foo/1.0:$modfile]
|
||||
lappend ans [list set LOADEDMODULES foo/1.0:$mod]
|
||||
lappend ans [list set __MODULES_LMTAG foo/1.0&auto-loaded]
|
||||
set tserr [msg_top_load $mod {} foo/1.0 {}]
|
||||
testouterr_cmd sh "load --auto $mod" $ans $tserr
|
||||
|
||||
set tserr [msg_load $mod [err_prereqor foo/1.0 bar/1.0]]
|
||||
testouterr_cmd sh "load --no-auto $mod" ERR $tserr
|
||||
|
||||
setenv_loaded_module [list foo/1.0] [list $mp/foo/1.0]
|
||||
|
||||
set ans [list]
|
||||
lappend ans [list set __MODULES_LMPREREQ $mod&foo/1.0|bar/1.0]
|
||||
lappend ans [list set _LMFILES_ $mp/foo/1.0:$modfile]
|
||||
lappend ans [list set LOADEDMODULES foo/1.0:$mod]
|
||||
testouterr_cmd sh "load --auto $mod" $ans {}
|
||||
|
||||
setenv_loaded_module [list $mod] [list $modfile]
|
||||
|
||||
# unload
|
||||
set ans [list]
|
||||
lappend ans [list unset _LMFILES_]
|
||||
lappend ans [list unset LOADEDMODULES]
|
||||
testouterr_cmd sh "unload $mod" $ans {}
|
||||
|
||||
setenv_loaded_module [list bar/1.0 $mod] [list $mp/bar/1.0 $modfile]
|
||||
setenv_path_var __MODULES_LMTAG bar/1.0&auto-loaded
|
||||
setenv_path_var __MODULES_LMPREREQ $mod&foo/1.0|bar/1.0
|
||||
|
||||
set ans [list]
|
||||
lappend ans [list unset __MODULES_LMPREREQ]
|
||||
lappend ans [list unset _LMFILES_]
|
||||
lappend ans [list unset LOADEDMODULES]
|
||||
lappend ans [list unset __MODULES_LMTAG]
|
||||
set tserr [msg_top_unload $mod {} bar/1.0 {}]
|
||||
testouterr_cmd sh "unload --auto $mod" $ans $tserr
|
||||
|
||||
# refresh
|
||||
testouterr_cmd sh {refresh} OK {}
|
||||
|
||||
unsetenv_loaded_module
|
||||
unsetenv_path_var __MODULES_LMTAG
|
||||
unsetenv_path_var __MODULES_LMPREREQ
|
||||
|
||||
# whatis
|
||||
set tserr "$modlin $mpre $modlin
|
||||
\\s*$mod: $mod"
|
||||
testouterr_cmd_re sh "whatis $mod" OK $tserr
|
||||
|
||||
# display
|
||||
set tserr "$modlin
|
||||
$mpre/$mod:
|
||||
|
||||
module-whatis\t$mod
|
||||
prereq-any\tfoo/1.0 bar/1.0
|
||||
$modlin"
|
||||
testouterr_cmd_re sh "display $mod" OK $tserr
|
||||
|
||||
# help
|
||||
set tserr "$modlin
|
||||
Module Specific Help for $mpre/$mod:
|
||||
|
||||
$warn_msgs: Unable to find ModulesHelp in $modfilere.
|
||||
$modlin"
|
||||
testouterr_cmd_re sh "help $mod" OK $tserr
|
||||
|
||||
# test
|
||||
set tserr "$modlin
|
||||
Module Specific Test for $mpre/$mod:
|
||||
|
||||
$warn_msgs: Unable to find ModulesTest in $modfilere.
|
||||
$modlin"
|
||||
testouterr_cmd_re sh "test $mod" OK $tserr
|
||||
|
||||
|
||||
setenv_var TESTSUITE_LCOMPAT prany2
|
||||
|
||||
set ans [list]
|
||||
lappend ans [list set __MODULES_LMPREREQ $mod&foo/1.0]
|
||||
lappend ans [list set _LMFILES_ $mp/foo/1.0:$modfile]
|
||||
lappend ans [list set LOADEDMODULES foo/1.0:$mod]
|
||||
lappend ans [list set __MODULES_LMTAG foo/1.0&auto-loaded]
|
||||
set tserr [msg_top_load $mod {} foo/1.0 {}]
|
||||
testouterr_cmd sh "load --auto $mod" $ans $tserr
|
||||
|
||||
|
||||
setenv_var TESTSUITE_LCOMPAT prany3
|
||||
|
||||
set ln [expr {[cmpversion $tclsh_version 8.6] == -1 ? 5 : 14}]
|
||||
set tserr [msg_load $mod [escre [msg_moderr {can't read "holdidlist": no such variable} {prereq-any<EXM>} $modfile $ln]]]
|
||||
testouterr_cmd_re sh "load $mod" ERR $tserr
|
||||
|
||||
|
||||
setenv_var TESTSUITE_LCOMPAT pranyrc1
|
||||
|
||||
set ans [list]
|
||||
lappend ans [list set _LMFILES_ $modfile]
|
||||
lappend ans [list set LOADEDMODULES $mod]
|
||||
lappend ans [list ERR]
|
||||
set ln [expr {[cmpversion $tclsh_version 8.6] == -1 ? 3 : 15}]
|
||||
set tserr [escre [msg_moderr {invalid command name "prereq-any"} {prereq-any foo/1.0 bar/1.0<EXM>} $mp/lcompat/.modulerc $ln { }]]
|
||||
testouterr_cmd_re sh "load $mod" $ans $tserr
|
||||
|
||||
set tserr $mp:\n$mod
|
||||
testouterr_cmd sh "avail -t $mod" OK $tserr
|
||||
|
||||
set tserr "$modlin $mpre $modlin
|
||||
\\s*$mod: $mod"
|
||||
testouterr_cmd_re sh "whatis $mod" OK $tserr
|
||||
|
||||
|
||||
#
|
||||
# Cleanup
|
||||
#
|
||||
|
||||
reset_test_env
|
||||
Reference in New Issue
Block a user