@@ -27,7 +27,7 @@ if {$verbose} {
2727
2828
2929# helper proc to generate pager test and expected debugging output
30- proc pager_test_case {modarg use asked cmd opts {shell sh}} {
30+ proc pager_test_case {modarg use paginate cmd opts {shell sh}} {
3131 global MODULECMD env install_pager install_pageropts siteconfig_filere warn_msgs is_stderr_tty install_termbg
3232
3333 if {$modarg ne ""} {
@@ -71,20 +71,23 @@ proc pager_test_case {modarg use asked cmd opts {shell sh}} {
7171 lappend ans "DEBUG setConf: term_background set to '$install_termbg'"
7272 lappend ans "(DEBUG initConfColors: Ignore invalid default.*\\n)?DEBUG setConf: colors set to '.*'"
7373 lappend ans "DEBUG setConf: color set to '0'"
74- lappend ans "DEBUG setConf: pager set to '$pager_cmd'"
75- if {[file tail $pager_cmd] ni {{} cat}} {
76- lappend ans "DEBUG setState: shelltype set to '$shelltype'"
77- }
78- if {$use} {
79- lappend ans "DEBUG setState: is_stderr_tty set to '$is_stderr_tty'"
74+ lappend ans "DEBUG setConf: paginate set to '$paginate'"
75+ if {$paginate} {
76+ lappend ans "DEBUG setConf: pager set to '$pager_cmd'"
77+ if {[file tail $pager_cmd] ni {{} cat}} {
78+ lappend ans "DEBUG setState: shelltype set to '$shelltype'"
79+ }
80+ if {$use} {
81+ lappend ans "DEBUG setState: is_stderr_tty set to '$is_stderr_tty'"
82+ }
8083 }
81- lappend ans "DEBUG setState: paginate set to '[expr {$is_stderr_tty && $use}]'"
84+ lappend ans "DEBUG setState: paginate set to '[expr {$is_stderr_tty && $use && $paginate }]'"
8285 # check command exist if specified full path
83- if {$is_stderr_tty && $use && [string index $cmd 0] eq "/" && ![file exists $cmd]} {
86+ if {$is_stderr_tty && $use && $paginate && [string index $cmd 0] eq "/" && ![file exists $cmd]} {
8487 lappend ans "DEBUG setState: inhibit_errreport set to '0'"
8588 lappend ans "$warn_msgs: couldn't execute \"$cmd\": no such file or directory"
8689 set reportfd stderr
87- } elseif {$is_stderr_tty && $use} {
90+ } elseif {$is_stderr_tty && $use && $paginate } {
8891 set reportfd file\\d
8992 } else {
9093 set reportfd stderr
@@ -96,7 +99,7 @@ proc pager_test_case {modarg use asked cmd opts {shell sh}} {
9699 lappend ans "DEBUG setConf: logger set to '$::install_loggercmd'"
97100 lappend ans "DEBUG setState: logging set to '0'"
98101 lappend ans "DEBUG setState: logfd set to ''"
99- if {!$is_stderr_tty || !$use || [string index $cmd 0] eq "/" && ![file exists $cmd]} {
102+ if {!$is_stderr_tty || !$use || !$paginate || [string index $cmd 0] eq "/" && ![file exists $cmd]} {
100103 lappend ans "DEBUG setState: error_count set to '0'"
101104 }
102105
@@ -107,10 +110,14 @@ proc pager_test_case {modarg use asked cmd opts {shell sh}} {
107110# The tests
108111#
109112
113+ foreach paginate {0 1} {
114+
115+ setenv_var MODULES_PAGINATE $paginate
116+
110117# vanilla test, no related-env variable set
111- pager_test_case "" $pager_dfl_use "-" $install_pager $install_pageropts
112- pager_test_case "--paginate" $pager_dfl_use "1" $install_pager $install_pageropts
113- pager_test_case "--no-pager" 0 "0" $install_pager $install_pageropts
118+ pager_test_case "" $pager_dfl_use $paginate $install_pager $install_pageropts
119+ pager_test_case "--paginate" $pager_dfl_use 1 $install_pager $install_pageropts
120+ pager_test_case "--no-pager" 0 0 $install_pager $install_pageropts
114121
115122skip_if_quick_mode
116123
@@ -120,18 +127,18 @@ if {$verbose} {
120127 send_user "\tSetup LESS = '$opts'\n"
121128}
122129set env(LESS) $opts
123- pager_test_case "" $pager_dfl_use "-" $install_pager $install_pageropts
124- pager_test_case "-p" $pager_dfl_use "1" $install_pager $install_pageropts
125- pager_test_case "-P" 0 "0" $install_pager $install_pageropts
130+ pager_test_case "" $pager_dfl_use $paginate $install_pager $install_pageropts
131+ pager_test_case "-p" $pager_dfl_use 1 $install_pager $install_pageropts
132+ pager_test_case "-P" 0 0 $install_pager $install_pageropts
126133
127134set opts ""
128135if {$verbose} {
129136 send_user "\tSetup LESS = '$opts'\n"
130137}
131138set env(LESS) $opts
132- pager_test_case "" $pager_dfl_use "-" $install_pager $install_pageropts
133- pager_test_case "--paginate" $pager_dfl_use "1" $install_pager $install_pageropts
134- pager_test_case "--no-pager" 0 "0" $install_pager $install_pageropts
139+ pager_test_case "" $pager_dfl_use $paginate $install_pager $install_pageropts
140+ pager_test_case "--paginate" $pager_dfl_use 1 $install_pager $install_pageropts
141+ pager_test_case "--no-pager" 0 0 $install_pager $install_pageropts
135142
136143if {$verbose} {
137144 send_user "\tUnset LESS\n"
@@ -146,63 +153,63 @@ if {$verbose} {
146153 send_user "\tSetup PAGER = '$cmd'\n"
147154}
148155set env(PAGER) $cmd
149- pager_test_case "" $pager_dfl_use "-" $install_pager $install_pageropts
150- pager_test_case "--paginate" $pager_dfl_use "1" $install_pager $install_pageropts
151- pager_test_case "--no-pager" 0 "0" $install_pager $install_pageropts
156+ pager_test_case "" $pager_dfl_use $paginate $install_pager $install_pageropts
157+ pager_test_case "--paginate" $pager_dfl_use 1 $install_pager $install_pageropts
158+ pager_test_case "--no-pager" 0 0 $install_pager $install_pageropts
152159
153160set cmd ""
154161if {$verbose} {
155162 send_user "\tSetup PAGER = '$cmd'\n"
156163}
157164set env(PAGER) $cmd
158- pager_test_case "" $pager_dfl_use "-" $install_pager $install_pageropts
159- pager_test_case "-p" $pager_dfl_use "1" $install_pager $install_pageropts
160- pager_test_case "-P" 0 "0" $install_pager $install_pageropts
165+ pager_test_case "" $pager_dfl_use $paginate $install_pager $install_pageropts
166+ pager_test_case "-p" $pager_dfl_use 1 $install_pager $install_pageropts
167+ pager_test_case "-P" 0 0 $install_pager $install_pageropts
161168
162169set cmd "cat"
163170if {$verbose} {
164171 send_user "\tSetup PAGER = '$cmd'\n"
165172}
166173set env(PAGER) $cmd
167- pager_test_case "" $pager_dfl_use "-" $install_pager $install_pageropts
168- pager_test_case "--paginate" $pager_dfl_use "1" $install_pager $install_pageropts
169- pager_test_case "--no-pager" 0 "0" $install_pager $install_pageropts
174+ pager_test_case "" $pager_dfl_use $paginate $install_pager $install_pageropts
175+ pager_test_case "--paginate" $pager_dfl_use 1 $install_pager $install_pageropts
176+ pager_test_case "--no-pager" 0 0 $install_pager $install_pageropts
170177
171178set opts "-K"
172179if {$verbose} {
173180 send_user "\tSetup LESS = '$opts'\n"
174181}
175182set env(LESS) $opts
176- pager_test_case "" $pager_dfl_use "-" $install_pager $install_pageropts
177- pager_test_case "--paginate" $pager_dfl_use "1" $install_pager $install_pageropts
178- pager_test_case "--no-pager" 0 "0" $install_pager $install_pageropts
183+ pager_test_case "" $pager_dfl_use $paginate $install_pager $install_pageropts
184+ pager_test_case "--paginate" $pager_dfl_use 1 $install_pager $install_pageropts
185+ pager_test_case "--no-pager" 0 0 $install_pager $install_pageropts
179186
180187set cmd "/usr/bin/more"
181188if {$verbose} {
182189 send_user "\tSetup PAGER = '$cmd'\n"
183190}
184191set env(PAGER) $cmd
185- pager_test_case "" $pager_dfl_use "-" $install_pager $install_pageropts
186- pager_test_case "-p" $pager_dfl_use "1" $install_pager $install_pageropts
187- pager_test_case "-P" 0 "0" $install_pager $install_pageropts
192+ pager_test_case "" $pager_dfl_use $paginate $install_pager $install_pageropts
193+ pager_test_case "-p" $pager_dfl_use 1 $install_pager $install_pageropts
194+ pager_test_case "-P" 0 0 $install_pager $install_pageropts
188195
189196set cmd "/usr/bin/less"
190197if {$verbose} {
191198 send_user "\tSetup PAGER = '$cmd'\n"
192199}
193200set env(PAGER) $cmd
194- pager_test_case "" $pager_dfl_use "-" $install_pager $install_pageropts
195- pager_test_case "--paginate" $pager_dfl_use "1" $install_pager $install_pageropts
196- pager_test_case "--no-pager" 0 "0" $install_pager $install_pageropts
201+ pager_test_case "" $pager_dfl_use $paginate $install_pager $install_pageropts
202+ pager_test_case "--paginate" $pager_dfl_use 1 $install_pager $install_pageropts
203+ pager_test_case "--no-pager" 0 0 $install_pager $install_pageropts
197204
198205set cmd "less -e"
199206if {$verbose} {
200207 send_user "\tSetup PAGER = '$cmd'\n"
201208}
202209set env(PAGER) "$cmd"
203- pager_test_case "" $pager_dfl_use "-" $install_pager $install_pageropts
204- pager_test_case "--paginate" $pager_dfl_use "1" $install_pager $install_pageropts
205- pager_test_case "--no-pager" 0 "0" $install_pager $install_pageropts
210+ pager_test_case "" $pager_dfl_use $paginate $install_pager $install_pageropts
211+ pager_test_case "--paginate" $pager_dfl_use 1 $install_pager $install_pageropts
212+ pager_test_case "--no-pager" 0 0 $install_pager $install_pageropts
206213
207214set cmd "/usr/bin/less"
208215if {$verbose} {
@@ -211,9 +218,9 @@ if {$verbose} {
211218}
212219unset env(LESS)
213220set env(PAGER) $cmd
214- pager_test_case "" $pager_dfl_use "-" $install_pager $install_pageropts
215- pager_test_case "--paginate" $pager_dfl_use "1" $install_pager $install_pageropts
216- pager_test_case "--no-pager" 0 "0" $install_pager $install_pageropts
221+ pager_test_case "" $pager_dfl_use $paginate $install_pager $install_pageropts
222+ pager_test_case "--paginate" $pager_dfl_use 1 $install_pager $install_pageropts
223+ pager_test_case "--no-pager" 0 0 $install_pager $install_pageropts
217224
218225
219226# play with MODULES_PAGER env variable
@@ -222,53 +229,53 @@ if {$verbose} {
222229 send_user "\tSetup MODULES_PAGER = '$cmd'\n"
223230}
224231set env(MODULES_PAGER) $cmd
225- pager_test_case "" 1 "-" $cmd ""
226- pager_test_case "--paginate" 1 "1" $cmd ""
227- pager_test_case "--no-pager" 0 "0" $cmd ""
232+ pager_test_case "" 1 $paginate $cmd ""
233+ pager_test_case "--paginate" 1 1 $cmd ""
234+ pager_test_case "--no-pager" 0 0 $cmd ""
228235
229236set cmd ""
230237if {$verbose} {
231238 send_user "\tSetup MODULES_PAGER = '$cmd'\n"
232239}
233240set env(MODULES_PAGER) $cmd
234- pager_test_case "" 0 "-" $cmd ""
235- pager_test_case "-p" 0 "1" $cmd ""
236- pager_test_case "-P" 0 "0" $cmd ""
241+ pager_test_case "" 0 $paginate $cmd ""
242+ pager_test_case "-p" 0 1 $cmd ""
243+ pager_test_case "-P" 0 0 $cmd ""
237244
238245set cmd "cat"
239246if {$verbose} {
240247 send_user "\tSetup MODULES_PAGER = '$cmd'\n"
241248}
242249set env(MODULES_PAGER) $cmd
243- pager_test_case "" 0 "-" $cmd ""
244- pager_test_case "--paginate" 0 "1" $cmd ""
245- pager_test_case "--no-pager" 0 "0" $cmd ""
250+ pager_test_case "" 0 $paginate $cmd ""
251+ pager_test_case "--paginate" 0 1 $cmd ""
252+ pager_test_case "--no-pager" 0 0 $cmd ""
246253
247254set cmd "less"
248255set opts "-e"
249256if {$verbose} {
250257 send_user "\tSetup MODULES_PAGER = '$cmd $opts'\n"
251258}
252259set env(MODULES_PAGER) "$cmd $opts"
253- pager_test_case "" 1 "-" $cmd $opts
254- pager_test_case "--paginate" 1 "1" $cmd $opts
255- pager_test_case "--no-pager" 0 "0" $cmd $opts
260+ pager_test_case "" 1 $paginate $cmd $opts
261+ pager_test_case "--paginate" 1 1 $cmd $opts
262+ pager_test_case "--no-pager" 0 0 $cmd $opts
256263
257264if {$verbose} {
258265 send_user "\tUnset PAGER\n"
259266}
260267unset env(PAGER)
261- pager_test_case "" 1 "-" $cmd $opts
262- pager_test_case "-p" 1 "1" $cmd $opts
263- pager_test_case "-P" 0 "0" $cmd $opts
268+ pager_test_case "" 1 $paginate $cmd $opts
269+ pager_test_case "-p" 1 1 $cmd $opts
270+ pager_test_case "-P" 0 0 $cmd $opts
264271
265272if {$verbose} {
266273 send_user "\tSetup LESS = '-K'\n"
267274}
268275set env(LESS) "-K"
269- pager_test_case "" 1 "-" $cmd $opts
270- pager_test_case "--paginate" 1 "1" $cmd $opts
271- pager_test_case "--no-pager" 0 "0" $cmd $opts
276+ pager_test_case "" 1 $paginate $cmd $opts
277+ pager_test_case "--paginate" 1 1 $cmd $opts
278+ pager_test_case "--no-pager" 0 0 $cmd $opts
272279
273280
274281# bad command set as pager
@@ -278,9 +285,9 @@ if {$verbose} {
278285 send_user "\tSetup MODULES_PAGER = '$cmd'\n"
279286}
280287set env(MODULES_PAGER) $cmd
281- pager_test_case "" 1 "-" $cmd $opts
282- pager_test_case "-p" 1 "1" $cmd $opts
283- pager_test_case "-P" 0 "0" $cmd $opts
288+ pager_test_case "" 1 $paginate $cmd $opts
289+ pager_test_case "-p" 1 1 $cmd $opts
290+ pager_test_case "-P" 0 0 $cmd $opts
284291
285292
286293# test activation depending on selected shell
@@ -290,9 +297,9 @@ setenv_var MODULES_PAGER "$cmd $opts"
290297
291298foreach shell $supported_shells {
292299 set shell_paginate [expr {$shell in [list {*}$real_shells cmd pwsh]}]
293- pager_test_case "" $shell_paginate "-" $cmd $opts $shell
294- pager_test_case "--paginate" $shell_paginate "1" $cmd $opts $shell
295- pager_test_case "--no-pager" 0 "0" $cmd $opts $shell
300+ pager_test_case "" $shell_paginate $paginate $cmd $opts $shell
301+ pager_test_case "--paginate" $shell_paginate 1 $cmd $opts $shell
302+ pager_test_case "--no-pager" 0 0 $cmd $opts $shell
296303}
297304
298305
@@ -304,15 +311,16 @@ if {$verbose} {
304311unset env(LESS)
305312unset env(MODULES_PAGER)
306313
307-
308314# test stderr output made during modulefile evaluation comes in correct order
309315# regarding other debugging information when pager is effectively enabled
310316if {$is_stderr_tty} {
311317
312318set module "info/command"
313319set modulefile "$modpath/$module"
320+ set ans [list]
314321lappend ans [list set _LMFILES_ $modulefile]
315322lappend ans [list set LOADEDMODULES $module]
323+ set anserr [list]
316324lappend anserr "DEBUG setState: cmdline set to '$MODULECMD sh load $module -D'"
317325if {$::install_multilibsupport eq {y}} {
318326 lappend anserr "DEBUG setState: machine set to '$::tcl_platform(machine)'"
@@ -328,12 +336,19 @@ lappend anserr "DEBUG setState: subcmd set to 'load'"
328336lappend anserr "DEBUG setState: subcmd_args set to '$module'"
329337lappend anserr "DEBUG setState: init_error_report set to '1'"
330338lappend anserr "(DEBUG .*)+"
331- lappend anserr "DEBUG setConf: pager set to '$install_pagercmd'"
332- lappend anserr "DEBUG setState: shelltype set to 'sh'"
333- lappend anserr "DEBUG setState: is_stderr_tty set to '1'"
334- lappend anserr "DEBUG setState: paginate set to '1'"
339+ lappend anserr "DEBUG setConf: paginate set to '$paginate'"
340+ if {$paginate} {
341+ lappend anserr "DEBUG setConf: pager set to '$install_pagercmd'"
342+ lappend anserr "DEBUG setState: shelltype set to 'sh'"
343+ lappend anserr "DEBUG setState: is_stderr_tty set to '1'"
344+ }
345+ lappend anserr "DEBUG setState: paginate set to '$paginate'"
335346lappend anserr "DEBUG setState: report_format set to 'regular'"
336- lappend anserr "DEBUG setState: reportfd set to 'file\\d'"
347+ if {$paginate} {
348+ lappend anserr "DEBUG setState: reportfd set to 'file\\d'"
349+ } else {
350+ lappend anserr "DEBUG setState: reportfd set to 'stderr'"
351+ }
337352lappend anserr "DEBUG setState: timer set to '0'"
338353lappend anserr "(DEBUG .*)+"
339354lappend anserr "load"
@@ -342,6 +357,8 @@ testouterr_cmd_re "sh" "load $module -D" $ans [join $anserr "\n"]
342357
343358}
344359
360+ }
361+
345362#
346363# Clean up variables used in this test case
347364#
0 commit comments