Skip to content

Commit b40bac6

Browse files
committed
ts: add tests for paginate config opt in 00/100
Update pager_test_case internal procedure to transform the unused asked argument into paginate. Run all tests with MODULES_PAGINATE enabled or disabled. Signed-off-by: Xavier Delaruelle <xavier.delaruelle@cea.fr>
1 parent 8b2f428 commit b40bac6

File tree

1 file changed

+91
-74
lines changed

1 file changed

+91
-74
lines changed

testsuite/modules.00-init/100-pager.exp

Lines changed: 91 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -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

115122
skip_if_quick_mode
116123

@@ -120,18 +127,18 @@ if {$verbose} {
120127
send_user "\tSetup LESS = '$opts'\n"
121128
}
122129
set 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

127134
set opts ""
128135
if {$verbose} {
129136
send_user "\tSetup LESS = '$opts'\n"
130137
}
131138
set 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

136143
if {$verbose} {
137144
send_user "\tUnset LESS\n"
@@ -146,63 +153,63 @@ if {$verbose} {
146153
send_user "\tSetup PAGER = '$cmd'\n"
147154
}
148155
set 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

153160
set cmd ""
154161
if {$verbose} {
155162
send_user "\tSetup PAGER = '$cmd'\n"
156163
}
157164
set 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

162169
set cmd "cat"
163170
if {$verbose} {
164171
send_user "\tSetup PAGER = '$cmd'\n"
165172
}
166173
set 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

171178
set opts "-K"
172179
if {$verbose} {
173180
send_user "\tSetup LESS = '$opts'\n"
174181
}
175182
set 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

180187
set cmd "/usr/bin/more"
181188
if {$verbose} {
182189
send_user "\tSetup PAGER = '$cmd'\n"
183190
}
184191
set 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

189196
set cmd "/usr/bin/less"
190197
if {$verbose} {
191198
send_user "\tSetup PAGER = '$cmd'\n"
192199
}
193200
set 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

198205
set cmd "less -e"
199206
if {$verbose} {
200207
send_user "\tSetup PAGER = '$cmd'\n"
201208
}
202209
set 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

207214
set cmd "/usr/bin/less"
208215
if {$verbose} {
@@ -211,9 +218,9 @@ if {$verbose} {
211218
}
212219
unset env(LESS)
213220
set 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
}
224231
set 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

229236
set cmd ""
230237
if {$verbose} {
231238
send_user "\tSetup MODULES_PAGER = '$cmd'\n"
232239
}
233240
set 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

238245
set cmd "cat"
239246
if {$verbose} {
240247
send_user "\tSetup MODULES_PAGER = '$cmd'\n"
241248
}
242249
set 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

247254
set cmd "less"
248255
set opts "-e"
249256
if {$verbose} {
250257
send_user "\tSetup MODULES_PAGER = '$cmd $opts'\n"
251258
}
252259
set 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

257264
if {$verbose} {
258265
send_user "\tUnset PAGER\n"
259266
}
260267
unset 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

265272
if {$verbose} {
266273
send_user "\tSetup LESS = '-K'\n"
267274
}
268275
set 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
}
280287
set 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

291298
foreach 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} {
304311
unset env(LESS)
305312
unset 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
310316
if {$is_stderr_tty} {
311317

312318
set module "info/command"
313319
set modulefile "$modpath/$module"
320+
set ans [list]
314321
lappend ans [list set _LMFILES_ $modulefile]
315322
lappend ans [list set LOADEDMODULES $module]
323+
set anserr [list]
316324
lappend anserr "DEBUG setState: cmdline set to '$MODULECMD sh load $module -D'"
317325
if {$::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'"
328336
lappend anserr "DEBUG setState: subcmd_args set to '$module'"
329337
lappend anserr "DEBUG setState: init_error_report set to '1'"
330338
lappend 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'"
335346
lappend 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+
}
337352
lappend anserr "DEBUG setState: timer set to '0'"
338353
lappend anserr "(DEBUG .*)+"
339354
lappend 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

Comments
 (0)