File: 5.0

package info (click to toggle)
modules 5.6.1-2
  • 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,493; ansic: 474; python: 265; csh: 202; perl: 47; ruby: 44; lisp: 13
file content (150 lines) | stat: -rw-r--r-- 4,697 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
144
145
146
147
148
149
150
#%Module1.0

##############################################################################
#   Modules Revision 3.0
#   Providing a flexible user environment
#
#   File:		spread/%M%
#   Revision:		%I%
#   First Edition:	2017/06/21
#   Last Mod.:		%U%, %G%
#
#   Authors:		Xavier Delaruelle, xavier.delaruelle@cea.fr
#
#   Description:	Testuite modulefile
#   Command:
#   Sub-Command:
#
#   Invocation:		load @M@, unload @M@, switch @M@ @M@,
#                   help @M@, display @M@, test @M@, whatis @M@
#   Result:	%R{
#		}R%
#   Comment:	%C{
#           Test how variable and procedure definitions spread from
#           one modulefile interpretation to another one when these
#           interpretations are cascaded.
#		}C%
#
##############################################################################


# test if specific or overridden pre-existing variables have spread here
if {[info exists spread]} {
    puts stderr "variable spread exists"
}
if {$tcl_version eq "test"} {
    puts stderr "variable tcl_version equals test"
}
if {[array exists spread_array]} {
    puts stderr "array variable spread_array exists"
}
if {$tcl_platform(osVersion) eq "test"} {
    puts stderr "variable tcl_platform(osVersion) equals test"
}
if {[llength $auto_path] <= 1} {
    puts stderr "variable auto_path has lost elements"
}
if {[lsearch -exact $auto_path $env(TESTSUITEDIR)] > -1} {
    puts stderr "variable auto_path contains $env(TESTSUITEDIR)"
}

# test if specific or overridden interpreter alias command have spread here
set existing_proc [lindex [info procs] 0]
# test if first proc defined has been altered
if {[info procs $existing_proc] ne $existing_proc} {
    puts stderr "procedure $existing_proc does not exist"
# env variable spread across interpretation and even between interpreters
} elseif {[info exists env(spreadcasc)] && [$existing_proc] ne "spreadcasc"} {
    puts stderr "procedure $existing_proc has not been altered"
}
if {[info procs spread_proc] eq "spread_proc"} {
    puts stderr "procedure spread_proc exists"
}
if {[info procs ModulesHelp] eq "ModulesHelp"} {
    puts stderr "procedure ModulesHelp exists"
}
if {[info procs ModulesTest] eq "ModulesTest"} {
    puts stderr "procedure ModulesTest exists"
}
if {[info procs ModulesDisplay] eq "ModulesDisplay"} {
    puts stderr "procedure ModulesDisplay exists"
}
if {[info procs module-version] eq "module-version"} {
    puts stderr "procedure module-version exists"
}


# define specific variables or override value in pre-existing variables
set spread "yes"
set tcl_version "test"
array set spread_array [list "yes" 1]
set tcl_platform(osVersion) "test"
lappend auto_path $env(TESTSUITEDIR)
set env(spreadcasc) "yes"

# define specific procs or override interpreter alias command
# override first proc defined
proc $existing_proc {args} {
    return "spreadcasc"
}
proc spread_proc {text} {
    puts stderr "spread_proc: $text"
}
proc ModulesHelp {} {
    puts stderr "spread"
}
proc ModulesTest {} {
    puts stderr "spread"
    return 1
}
proc ModulesDisplay {} {
    puts stderr "spread"
}
proc module-version {args} {
    puts stderr "spread"
}

setenv testspread "yes" 

module load spread/6.0

# test if specific or overridden pre-existing variables are still there
# after cascaded interpretation
if {![info exists spread]} {
    puts stderr "variable spread has been reset"
}
if {$tcl_version ne "test"} {
    puts stderr "variable tcl_version has been reset"
}
if {![array exists spread_array]} {
    puts stderr "array variable spread_array has been reset"
}
if {$tcl_platform(osVersion) ne "test"} {
    puts stderr "variable tcl_platform(osVersion) has been reset"
}

# test if specific or overridden interpreter alias command are still there
# after cascaded interpretation
# test if first proc defined has been altered
if {[info procs $existing_proc] ne $existing_proc} {
    puts stderr "procedure $existing_proc does not exist"
# env variable spread across interpretation and even between interpreters
} elseif {[info exists env(spreadcasc)] && [$existing_proc] ne "spreadcasc"} {
    puts stderr "procedure $existing_proc has been reset"
}
if {[info procs spread_proc] ne "spread_proc"} {
    puts stderr "procedure spread_proc has been reset"
}
if {[info procs ModulesHelp] ne "ModulesHelp"} {
    puts stderr "procedure ModulesHelp has been reset"
}
if {[info procs ModulesTest] ne "ModulesTest"} {
    puts stderr "procedure ModulesTest has been reset"
}
if {[info procs ModulesDisplay] ne "ModulesDisplay"} {
    puts stderr "procedure ModulesDisplay has been reset"
}
if {[info procs module-version] ne "module-version"} {
    puts stderr "procedure module-version has been reset"
}