diff options
author | Peter Andersson <[email protected]> | 2017-12-04 16:01:06 +0100 |
---|---|---|
committer | Peter Andersson <[email protected]> | 2017-12-04 16:01:06 +0100 |
commit | 333556f4323f8d8a9e22a613a8591032b84b28d8 (patch) | |
tree | fb2b191cdf6433f637e1ee998000d9f38e96a0f9 /lib/common_test/src/ct.erl | |
parent | 1a5dd04e0958681a72984eba6b3cf026aaec0155 (diff) | |
parent | 378da5aef27e1679aa30b8f4a2a6569accb70ff2 (diff) | |
download | otp-333556f4323f8d8a9e22a613a8591032b84b28d8.tar.gz otp-333556f4323f8d8a9e22a613a8591032b84b28d8.tar.bz2 otp-333556f4323f8d8a9e22a613a8591032b84b28d8.zip |
Merge branch 'peppe/common_test/auto_cleanup/OTP-13832' into maint
* peppe/common_test/auto_cleanup/OTP-13832:
Add tests and doc for the new remaining_test_procs function
Implement function that finds disposable test processes
Tag Common Test system processes using process dictionary
Add app name tag in process dictionary
OTP-13832
Diffstat (limited to 'lib/common_test/src/ct.erl')
-rw-r--r-- | lib/common_test/src/ct.erl | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/common_test/src/ct.erl b/lib/common_test/src/ct.erl index a12c0c9101..4c4dc8bede 100644 --- a/lib/common_test/src/ct.erl +++ b/lib/common_test/src/ct.erl @@ -89,6 +89,8 @@ -export([get_target_name/1]). -export([parse_table/1, listenv/1]). +-export([remaining_test_procs/0]). + %%---------------------------------------------------------------------- %% Exported types %%---------------------------------------------------------------------- @@ -1474,3 +1476,36 @@ continue() -> %%% in order to let the test case proceed.</p> continue(TestCase) -> test_server:continue(TestCase). + + +%%%----------------------------------------------------------------- +%%% @spec remaining_test_procs() -> {TestProcs,SharedGL,OtherGLs} +%%% TestProcs = [{pid(),GL}] +%%% GL = SharedGL = pid() +%%% OtherGLs = [pid()] +%%% +%%% @doc <p>This function will return the identity of test- and group +%%% leader processes that are still running at the time of this call. +%%% TestProcs are processes in the system that have a Common Test IO +%%% process as group leader. SharedGL is the central Common Test +%%% IO process, responsible for printing to log files for configuration +%%% functions and sequentially executing test cases. OtherGLs are +%%% Common Test IO processes that print to log files for test cases +%%% in parallel test case groups.</p> +%%% <p>The process information returned by this function may be +%%% used to locate and terminate remaining processes after tests have +%%% finished executing. The function would typically by called from +%%% Common Test Hook functions.</p> +%%% <p>Note that processes that execute configuration functions or +%%% test cases are never included in TestProcs. It is therefore safe +%%% to use post configuration hook functions (such as post_end_per_suite, +%%% post_end_per_group, post_end_per_testcase) to terminate all processes +%%% in TestProcs that have the current group leader process as its group +%%% leader.</p> +%%% <p>Note also that the shared group leader (SharedGL) must never be +%%% terminated by the user, only by Common Test. Group leader processes +%%% for parallel test case groups (OtherGLs) may however be terminated +%%% in post_end_per_group hook functions.</p> +%%% +remaining_test_procs() -> + ct_util:remaining_test_procs(). |