@@ -142,9 +142,60 @@ file delete $disruptive_dir2
142142
143143
144144} elseif {$verbose > 0} {
145- send_user "\tSkip test as STDERR is not attached to a TTY\n"
145+ send_user "\tSkip most tests as STDERR is not attached to a TTY\n"
146146}
147147
148+
149+ # test output redirection when shell is found or not attached to tty
150+ set tserr "Modules Release \\S+ (\\S+)"
151+ if {$is_stderr_tty} {
152+ set dflout $tserr
153+ set dflerr {}
154+ } else {
155+ set dflout {}
156+ set dflerr $tserr
157+ }
158+
159+ foreach shell $shell_redir_list {
160+ testall_cmd_re $shell {module --version} $dflout $dflerr 0
161+ testall_cmd_re autoinit:$shell {module --version} $dflout $dflerr 0
162+ testall_cmd_re $shell {module --version --redirect} $tserr {} 0
163+ testall_cmd_re autoinit:$shell {module --version --redirect} $tserr {} 0
164+ testall_cmd_re $shell {module --version --no-redirect} {} $tserr 0
165+ testall_cmd_re autoinit:$shell {module --version --no-redirect} {} $tserr 0
166+ # if --no-redirect is part of arg list it wins even if --redirect is set after
167+ testall_cmd_re $shell {module --version --redirect --no-redirect} {} $tserr 0
168+ testall_cmd_re $shell {module --version --no-redirect --redirect} {} $tserr 0
169+
170+ setenv_var MODULES_REDIRECT_OUTPUT 0
171+ testall_cmd_re $shell {module --version} {} $tserr 0
172+ testall_cmd_re $shell {module --version --redirect} $tserr {} 0
173+ testall_cmd_re $shell {module --version --no-redirect} {} $tserr 0
174+ testall_cmd_re $shell {module --version --redirect --no-redirect} {} $tserr 0
175+ testall_cmd_re $shell {module --version --no-redirect --redirect} {} $tserr 0
176+
177+ setenv_var MODULES_REDIRECT_OUTPUT 1
178+ testall_cmd_re $shell {module --version} $tserr {} 0
179+ testall_cmd_re $shell {module --version --redirect} $tserr {} 0
180+ testall_cmd_re $shell {module --version --no-redirect} {} $tserr 0
181+ testall_cmd_re $shell {module --version --redirect --no-redirect} {} $tserr 0
182+ testall_cmd_re $shell {module --version --no-redirect --redirect} {} $tserr 0
183+
184+ # bad value set on MODULES_REDIRECT_OUTPUT env var
185+ # any value different than 0 or 1 is ignored
186+ setenv_var MODULES_REDIRECT_OUTPUT foo
187+ testall_cmd_re $shell {module --version} $dflout $dflerr 0
188+ testall_cmd_re $shell {module --version --redirect} $tserr {} 0
189+ testall_cmd_re $shell {module --version --no-redirect} {} $tserr 0
190+ setenv_var MODULES_REDIRECT_OUTPUT {}
191+ testall_cmd_re $shell {module --version} $dflout $dflerr 0
192+ testall_cmd_re $shell {module --version --redirect} $tserr {} 0
193+ testall_cmd_re $shell {module --version --no-redirect} {} $tserr 0
194+
195+ unsetenv_var MODULES_REDIRECT_OUTPUT
196+ }
197+
198+
148199#
149200# Clean up variables used in this test case
150201#
0 commit comments