1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
|
##############################################################################
# Modules Revision 3.0
# Providing a flexible user environment
#
# File: modules.50-cmds/%M%
# Revision: %I%
# First Edition: 2006/06/01
# Last Mod.: %U%, %G%
#
# Authors: R.K. Owen, <rk@owen.sj.ca.us>
#
# Description: Testuite testsequence
# Command: unload
# Modulefiles: append/1.0
# Sub-Command:
#
# Comment: %C{
# Tests the reverse 'append-path' module subcommand with
# an arbitrary delimiter
# }C%
#
##############################################################################
skip_if_quick_mode
#
# Variables. This test forces a module load command. It will result in the
# environment variables "_LMFILES_", "LOADEDMODULES" and "testsuite" to
# be set up
#
set ts_1 "http://foobar.org"
set ts_2 "http://foobar.net"
set ts_3 "http://foobar.com"
set ts_new "$ts_1 $ts_2"
set module "append/1.0"
set modulefile "$modpath/$module"
#
# Set up the environment for reversal ...
#
set env(testsuite) "$ts_1 $ts_2 $ts_3"
setenv_loaded_module $module $modulefile
#
# For the different shells ...
#
lappend ans [list unset _LMFILES_]
lappend ans [list unset LOADEDMODULES]
lappend ans [list set testsuite $ts_new]
#
# The tests
#
test_cmd_re "ALL" "unload $module" $ans
#
# Try bad argument list: missing variable name
#
set module "append/1.3"
set modulefile "$modpath/$module"
setenv_loaded_module $module $modulefile
set ts_err [msg_moderr "append-path $msg_needenvvarname" {append-path -d : } $modulefile 24]
testouterr_cmd "sh" "unload $module" "ERR" [msg_unload $module $ts_err]
#
# Try bad argument list: missing variable value
#
set module "append/1.4"
set modulefile "$modpath/$module"
setenv_loaded_module $module $modulefile
set ts_err [msg_moderr "append-path $msg_needenvvarval PATH" {append-path -d : PATH} $modulefile 24]
testouterr_cmd "sh" "unload $module" "ERR" [msg_unload $module $ts_err]
#
# Try bad argument list: empty variable name
#
set module "append/1.5"
set modulefile "$modpath/$module"
setenv_loaded_module $module $modulefile
set ts_err [msg_moderr "append-path $msg_validenvvarname" {append-path -d : {} /path/to} $modulefile 24]
testouterr_cmd "sh" "unload $module" "ERR" [msg_unload $module $ts_err]
#
# Append multiple paths passed as one string
#
set module "append/1.6"
set modulefile "$modpath/$module"
set env(testsuite) "$ts_1 $ts_2 $ts_3 http://foobar.io "
set env(__MODULES_SHARE_testsuite) ":1"
setenv_loaded_module $module $modulefile
set ans [list]
lappend ans [list unset _LMFILES_]
lappend ans [list unset LOADEDMODULES]
lappend ans [list unset __MODULES_SHARE_testsuite]
lappend ans [list set testsuite $ts_new]
testouterr_cmd_re "sh" "unload $module" $ans ""
#
# Append multiple paths passed as multiple strings
#
set module "append/1.7"
set modulefile "$modpath/$module"
setenv_loaded_module $module $modulefile
testouterr_cmd_re "sh" "unload $module" $ans ""
#
# Try pass invalid option to append-path
#
set module append/8.0
set modulefile $modpath/$module
setenv_loaded_module $module $modulefile
set ts_err [msg_moderr {invalid option '-delim=,' for append-path} {append-path -delim=, FOO bar} $modulefile 2]
testouterr_cmd sh "unload $module" ERR [msg_unload $module $ts_err]
#
# __MODULES_SHARE_ ref counter variable tests
# test colon char is correctly escaped in __MODULES_SHARE_ var
#
set module append/1.6
set modulefile $modpath/$module
setenv_loaded_module $module $modulefile
setenv_var testsuite "$ts_1 $ts_2 $ts_3 http://foobar.io "
# erroneous __MODULES_SHARE_ ref counter variable is fixed
setenv_var __MODULES_SHARE_testsuite ":1:http\\://foobar.com:1"
set ans [list]
lappend ans [list unset _LMFILES_]
lappend ans [list unset LOADEDMODULES]
lappend ans [list unset __MODULES_SHARE_testsuite]
lappend ans [list set testsuite "$ts_1 $ts_2"]
testouterr_cmd_re sh "unload $module" $ans {}
# erroneous __MODULES_SHARE_ ref counter variable is fixed
setenv_var __MODULES_SHARE_testsuite ":1:http\\://foobar.com:0"
set ans [list]
lappend ans [list unset _LMFILES_]
lappend ans [list unset LOADEDMODULES]
lappend ans [list unset __MODULES_SHARE_testsuite]
lappend ans [list set testsuite "$ts_1 $ts_2"]
testouterr_cmd_re sh "unload $module" $ans {}
# __MODULES_SHARE_ ref counter variable is unset when updated
setenv_var __MODULES_SHARE_testsuite ":1:http\\://foobar.com:2"
set ans [list]
lappend ans [list unset _LMFILES_]
lappend ans [list unset LOADEDMODULES]
lappend ans [list unset __MODULES_SHARE_testsuite]
lappend ans [list set testsuite "$ts_1 $ts_2 $ts_3"]
testouterr_cmd_re sh "unload $module" $ans {}
# __MODULES_SHARE_ ref counter variable is updated
setenv_var __MODULES_SHARE_testsuite ":1:http\\://foobar.com:3"
set ans [list]
lappend ans [list unset _LMFILES_]
lappend ans [list unset LOADEDMODULES]
lappend ans [list set __MODULES_SHARE_testsuite "http\\://foobar.com:2"]
lappend ans [list set testsuite "$ts_1 $ts_2 $ts_3"]
testouterr_cmd_re sh "unload $module" $ans {}
#
# Cleanup
#
reset_test_env
|