diff options
author | Peter Andersson <[email protected]> | 2012-05-08 17:47:21 +0200 |
---|---|---|
committer | Peter Andersson <[email protected]> | 2012-05-10 16:25:26 +0200 |
commit | e711632042d1538fce80d565a2add309a88efa1b (patch) | |
tree | a3fb0cf3892fd1f471ff69b2e119ee67c89f6040 /lib/common_test/src/ct_logs.erl | |
parent | af287d7b242b27a05084580f110db2f4a6667e54 (diff) | |
download | otp-e711632042d1538fce80d565a2add309a88efa1b.tar.gz otp-e711632042d1538fce80d565a2add309a88efa1b.tar.bz2 otp-e711632042d1538fce80d565a2add309a88efa1b.zip |
Fix IO printout crash caused by hook function
Diffstat (limited to 'lib/common_test/src/ct_logs.erl')
-rw-r--r-- | lib/common_test/src/ct_logs.erl | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/common_test/src/ct_logs.erl b/lib/common_test/src/ct_logs.erl index 1ccbdc3718..8359dcee98 100644 --- a/lib/common_test/src/ct_logs.erl +++ b/lib/common_test/src/ct_logs.erl @@ -659,13 +659,23 @@ create_io_fun(FromPid, State) -> print_to_log(sync, FromPid, TCGL, List, State) -> IoFun = create_io_fun(FromPid, State), - io:format(TCGL, "~s", [lists:foldl(IoFun, [], List)]), + %% in some situations (exceptions), the printout is made from the + %% test server IO process and there's no valid group leader to send to + IoProc = if FromPid /= TCGL -> TCGL; + true -> State#logger_state.ct_log_fd + end, + io:format(IoProc, "~s", [lists:foldl(IoFun, [], List)]), State; print_to_log(async, FromPid, TCGL, List, State) -> IoFun = create_io_fun(FromPid, State), + %% in some situations (exceptions), the printout is made from the + %% test server IO process and there's no valid group leader to send to + IoProc = if FromPid /= TCGL -> TCGL; + true -> State#logger_state.ct_log_fd + end, Printer = fun() -> - io:format(TCGL, "~s", [lists:foldl(IoFun, [], List)]) + io:format(IoProc, "~s", [lists:foldl(IoFun, [], List)]) end, case State#logger_state.async_print_jobs of [] -> |