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
|
##############################################################################
# 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: load
# Modulefiles: prepend/1.0
# Sub-Command:
#
# Comment: %C{
# Tests the 'prepend-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_3 $ts_1 $ts_2"
# test colon char is correctly escaped in __MODULES_SHARE_ var
set tsmod_new "http\\://foobar.com:1:http\\://foobar.net:1:http\\://foobar.org:1"
set env(testsuite) "$ts_1 $ts_2"
set module "prepend/1.0"
set modulefile "$modpath/$module"
#
# For the different shells ...
#
lappend ans [list set _LMFILES_ $modulefile]
lappend ans [list set LOADEDMODULES $module]
lappend ans [list set testsuite $ts_new]
#
# The tests
#
test_cmd_re "ALL" "load $module" $ans
#
# Test the --delim=C argument form
#
set ts_new "$ts_3,$ts_1,$ts_2"
set env(testsuite) "$ts_1,$ts_2"
set module "prepend/1.7"
set modulefile "$modpath/$module"
set ans [list]
lappend ans [list set _LMFILES_ $modulefile]
lappend ans [list set LOADEDMODULES $module]
lappend ans [list set testsuite $ts_new]
test_cmd_re "sh" "load $module" $ans
#
# Try bad argument list: missing variable name
#
set module "prepend/1.3"
set modulefile "$modpath/$module"
set ts_err [msg_moderr "prepend-path $msg_needenvvarname" {prepend-path -d : } $modulefile 24]
testouterr_cmd "sh" "load $module" "ERR" [msg_load $module $ts_err]
#
# Try bad argument list: missing variable value
#
set module "prepend/1.4"
set modulefile "$modpath/$module"
set ts_err [msg_moderr "prepend-path $msg_needenvvarval PATH" {prepend-path -d : PATH} $modulefile 24]
testouterr_cmd "sh" "load $module" "ERR" [msg_load $module $ts_err]
#
# Try bad argument list: empty variable name
#
set module "prepend/1.5"
set modulefile "$modpath/$module"
set ts_err [msg_moderr "prepend-path $msg_validenvvarname" {prepend-path -d : {}} $modulefile 24]
testouterr_cmd "sh" "load $module" "ERR" [msg_load $module $ts_err]
#
# Try bad argument list: empty delimiter value
#
set module "prepend/1.6"
set modulefile "$modpath/$module"
set ts_err [msg_moderr "prepend-path $msg_nonemptydelim" {prepend-path --delim= PATH /path/to} $modulefile 24]
testouterr_cmd "sh" "load $module" "ERR" [msg_load $module $ts_err]
#
# Prepend multiple paths passed as one string
#
set module "prepend/1.8"
set modulefile "$modpath/$module"
set ts_new " http://foobar.io $ts_3 $ts_1 $ts_2"
set tsmod_new ":1:http\\://foobar.com:1:http\\://foobar.net:1:http\\://foobar.io:1:http\\://foobar.org:1"
set env(testsuite) "$ts_1 $ts_2"
set ans [list]
lappend ans [list set _LMFILES_ $modulefile]
lappend ans [list set LOADEDMODULES $module]
lappend ans [list set __MODULES_SHARE_testsuite :1]
lappend ans [list set testsuite $ts_new]
testouterr_cmd_re "sh" "load $module" $ans ""
#
# Prepend multiple paths passed as multiple strings
#
set module "prepend/1.9"
set modulefile "$modpath/$module"
set ans [list]
lappend ans [list set _LMFILES_ $modulefile]
lappend ans [list set LOADEDMODULES $module]
lappend ans [list set __MODULES_SHARE_testsuite :1]
lappend ans [list set testsuite $ts_new]
testouterr_cmd_re "sh" "load $module" $ans ""
#
# Try pass invalid option to prepend-path
#
set module prepend/8.0
set modulefile $modpath/$module
set ts_err [msg_moderr {invalid option '-delim=,' for prepend-path} {prepend-path -delim=, FOO bar} $modulefile 2]
testouterr_cmd sh "load $module" ERR [msg_load $module $ts_err]
#
# Cleanup
#
reset_test_env
|