File: 121-prereq-module.exp

package info (click to toggle)
modules 5.6.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 23,036 kB
  • sloc: exp: 79,659; sh: 6,142; tcl: 5,900; makefile: 1,492; ansic: 474; python: 265; csh: 202; perl: 47; ruby: 44; lisp: 13
file content (143 lines) | stat: -rw-r--r-- 5,280 bytes parent folder | download | duplicates (3)
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
##############################################################################
#   Modules Revision 3.0
#   Providing a flexible user environment
#
#   File:		modules.50-cmds/%M%
#   Revision:		%I%
#   First Edition:	1995/12/06
#   Last Mod.:		%U%, %G%
#
#   Authors:		Jens Hamisch, Jens.Hamisch@Strawberry.COM
#
#   Description:	Testuite testsequence
#   Command:		load, switch
#   Modulefiles:	prereq/module, trace/all_on, trace/all_off
#   Sub-Command:
#
#   Comment:	%C{
#			Tests the 'prereq' command using a category
#			module name. This tests the reactions of modulecmd
#			if the prerequired module is not load and if one
#			of the modules of the required category is load.
#		}C%
#
##############################################################################

# ensure auto symbolic versions are not set for these tests
setenv_var MODULES_ADVANCED_VERSION_SPEC 0

#
#  Variables. This test forces a module load command. It will result in the
#    environment variables "_LMFILES_", "LOADEDMODULES" and "testsuite" to
#    be set up
#

set module "prereq/module"
set modulefile "$modpath/$module"

set module_tron "trace/all_on"
set modulefile_tron "$modpath/$module_tron"

set module_troff "trace/all_off"
set modulefile_troff "$modpath/$module_troff"

set module_set "setenv/1.0"
set modulefile_set "$modpath/$module_set"

#
#  Error messages
#

set err_pre [msg_load $module [err_prereq trace]]
set err_trace "$warn_msgs: 'module-trace' command not implemented"
set err_trace_lo [msg_load "$module_tron <aL>" $err_trace]
set err_trace_lo_noal [msg_load $module_tron $err_trace]

#
#  The tests
#

# prereq is loaded automatically when autohandling is enabled
set ans [list]
lappend ans [list set __MODULES_LMPREREQ "$module&trace"]
lappend ans [list set testsuite yes]
lappend ans [list set _LMFILES_ "$modulefile_tron:$modulefile"]
lappend ans [list set LOADEDMODULES "$module_tron:$module"]
lappend ans [list set __MODULES_LMTAG $module_tron&auto-loaded]
if {$install_implicitdefault eq {y}} {
    set tserr $err_trace_lo\n\n[msg_top_load $module {} $module_tron {}]
} else {
    set tserr [msg_load $module $err_nodefault'trace' [err_reqlo trace]]
}
testouterr_cmd_re "ALL" "load --auto $module" [if_implicitdefault $ans ERR] $tserr

testouterr_cmd "ALL" "load --no-auto $module" "ERR" $err_pre

skip_if_quick_mode

set ans [list]
lappend ans [list set __MODULES_LMPREREQ "$module&trace"]
lappend ans [list set testsuite yes]
lappend ans [list set _LMFILES_ "$modulefile_troff:$modulefile"]
lappend ans [list set LOADEDMODULES "$module_troff:$module"]
testouterr_cmd_re "ALL" "load $module_troff $module" $ans ""

set ans [list]
lappend ans [list set __MODULES_LMPREREQ "$module&trace"]
lappend ans [list set testsuite yes]
lappend ans [list set _LMFILES_ "$modulefile_tron:$modulefile"]
lappend ans [list set LOADEDMODULES "$module_tron:$module"]
testouterr_cmd_re "ALL" "load $module_tron $module" $ans $err_trace_lo_noal

#
# Tests playing with OR prereq list
#

set module "prereq/orlist"
set modulefile "$modpath/$module"
set err_pre [msg_load $module [err_prereqor trace setenv loc_dv1]]

# prereq is loaded automatically when autohandling is enabled (first in or list)
set ans [list]
lappend ans [list set __MODULES_LMPREREQ "$module&trace|setenv|loc_dv1"]
lappend ans [list set testsuite yes]
lappend ans [list set _LMFILES_ "$modulefile_tron:$modulefile"]
lappend ans [list set LOADEDMODULES "$module_tron:$module"]
lappend ans [list set __MODULES_LMTAG $module_tron&auto-loaded]
if {$install_implicitdefault eq {y}} {
    set tserr $err_trace_lo\n\n[msg_top_load $module {} $module_tron {}]
} else {
    set tserr [msg_load $module $err_nodefault'trace' $err_nodefault'setenv' $err_nodefault'loc_dv1' [err_reqlo trace setenv loc_dv1]]
}
testouterr_cmd_re "ALL" "load --auto $module" [if_implicitdefault $ans ERR] $tserr

testouterr_cmd "ALL" "load --no-auto $module" "ERR" $err_pre

set ans [list]
lappend ans [list set __MODULES_LMPREREQ "$module&trace|setenv|loc_dv1"]
lappend ans [list set testsuite yes]
lappend ans [list set _LMFILES_ "$modulefile_tron:$modulefile"]
lappend ans [list set LOADEDMODULES "$module_tron:$module"]
testouterr_cmd_re "ALL" "load $module_tron $module" $ans $err_trace_lo_noal

# set situation where a module has been loaded with its prerequirement
setenv_loaded_module [list $module_set $module_troff $module] [list $modulefile_set $modulefile_troff $modulefile]
setenv_var __MODULES_LMPREREQ "$module&trace|setenv|loc_dv1"
set ans [list]
lappend ans [list set _LMFILES_ "$modulefile_troff:$modulefile:$modulefile_tron"]
lappend ans [list set LOADEDMODULES "$module_troff:$module:$module_tron"]
lappend ans [list unset testsuite]
testouterr_cmd_re "sh" "switch --no-auto $module_set $module_tron" $ans [msg_load $module_tron $err_trace]

set ans [list]
lappend ans [list set __MODULES_LMPREREQ "$module&trace|setenv|loc_dv1"]
lappend ans [list set _LMFILES_ "$modulefile_troff:$modulefile_tron:$modulefile"]
lappend ans [list set LOADEDMODULES "$module_troff:$module_tron:$module"]
lappend ans [list set testsuite yes]
testouterr_cmd_re "sh" "switch --auto $module_set $module_tron" $ans [msg_load $module_tron $err_trace]\n\n[msg_top_switch $module_set $module_tron {} {} {} {} $module]

#
#  Cleanup
#

reset_test_env