25
25
%% process_info/1,2
26
26
%% register/2 (partially)
28
-include("test_server.hrl").
28
-include_lib("test_server/include/test_server.hrl").
30
30
-define(heap_binary_size, 64).
32
-export([all/1, spawn_with_binaries/1,
33
t_exit_1/1, t_exit_2/1, t_exit_2_other/1, t_exit_2_other_normal/1,
32
-export([all/0, suite/0,groups/0,init_per_suite/1, end_per_suite/1,
33
init_per_group/2,end_per_group/2, spawn_with_binaries/1,
34
t_exit_1/1, t_exit_2_other/1, t_exit_2_other_normal/1,
34
35
self_exit/1, normal_suicide_exit/1, abnormal_suicide_exit/1,
35
36
t_exit_2_catch/1, trap_exit_badarg/1, trap_exit_badarg_in_bif/1,
36
37
exit_and_timeout/1, exit_twice/1,
41
42
bump_reductions/1, low_prio/1, binary_owner/1, yield/1, yield2/1,
42
43
process_status_exiting/1,
43
44
otp_4725/1, bad_register/1, garbage_collect/1, otp_6237/1,
44
process_info_messages/1, process_flag_badarg/1,
45
process_info_messages/1, process_flag_badarg/1, process_flag_heap_size/1,
46
spawn_opt_heap_size/1,
45
47
processes_large_tab/1, processes_default_tab/1, processes_small_tab/1,
46
48
processes_this_tab/1, processes_apply_trap/1,
47
49
processes_last_call_trap/1, processes_gc_trap/1,
48
processes_term_proc_list/1, processes_bif/1,
49
otp_7738/1, otp_7738_waiting/1, otp_7738_suspended/1,
50
processes_term_proc_list/1,
51
otp_7738_waiting/1, otp_7738_suspended/1,
50
52
otp_7738_resume/1]).
51
53
-export([prio_server/2, prio_client/2]).
53
-export([init_per_testcase/2, fin_per_testcase/2, end_per_suite/1]).
55
-export([init_per_testcase/2, end_per_testcase/2]).
55
57
-export([hangaround/2, processes_bif_test/0, do_processes/1,
56
58
processes_term_proc_list_test/1]).
59
[spawn_with_binaries, t_exit_1, t_exit_2,
60
suite() -> [{ct_hooks,[ts_install_cth]}].
63
[spawn_with_binaries, t_exit_1, {group, t_exit_2},
60
64
trap_exit_badarg, trap_exit_badarg_in_bif,
61
t_process_info, process_info_other_msg, process_info_other_dist_msg,
63
process_info_lock_reschedule, process_info_lock_reschedule2,
64
process_status_exiting,
65
bump_reductions, low_prio, yield, yield2, otp_4725, bad_register,
66
garbage_collect, process_info_messages, process_flag_badarg, otp_6237,
65
t_process_info, process_info_other_msg,
66
process_info_other_dist_msg, process_info_2_list,
67
process_info_lock_reschedule,
68
process_info_lock_reschedule2, process_status_exiting,
69
bump_reductions, low_prio, yield, yield2, otp_4725,
70
bad_register, garbage_collect, process_info_messages,
71
process_flag_badarg, process_flag_heap_size,
72
spawn_opt_heap_size, otp_6237, {group, processes_bif},
77
[t_exit_2_other, t_exit_2_other_normal, self_exit,
78
normal_suicide_exit, abnormal_suicide_exit,
79
t_exit_2_catch, exit_and_timeout, exit_twice]},
81
[processes_large_tab, processes_default_tab,
82
processes_small_tab, processes_this_tab,
83
processes_last_call_trap, processes_apply_trap,
84
processes_gc_trap, processes_term_proc_list]},
86
[otp_7738_waiting, otp_7738_suspended,
89
init_per_suite(Config) ->
92
end_per_suite(Config) ->
93
catch erts_debug:set_internal_state(available_internal_state, false),
96
init_per_group(_GroupName, Config) ->
99
end_per_group(_GroupName, Config) ->
70
103
init_per_testcase(Func, Config) when is_atom(Func), is_list(Config) ->
71
104
Dog=?t:timetrap(?t:minutes(10)),
72
105
[{watchdog, Dog},{testcase, Func}|Config].
74
fin_per_testcase(Func, Config) when is_atom(Func), is_list(Config) ->
107
end_per_testcase(Func, Config) when is_atom(Func), is_list(Config) ->
75
108
Dog=?config(watchdog, Config),
76
109
?t:timetrap_cancel(Dog).
78
end_per_suite(Config) ->
79
catch erts_debug:set_internal_state(available_internal_state, false),
83
112
spawn_link(erlang, apply, [Fun, []]).
1774
1796
?line exit(Suspendee, bang),
1799
process_flag_heap_size(doc) ->
1801
process_flag_heap_size(suite) ->
1803
process_flag_heap_size(Config) when is_list(Config) ->
1804
HSize = 2584, % must be gc fib number
1805
VHSize = 317811, % must be gc fib number
1806
?line OldHmin = erlang:process_flag(min_heap_size, HSize),
1807
?line {min_heap_size, HSize} = erlang:process_info(self(), min_heap_size),
1808
?line OldVHmin = erlang:process_flag(min_bin_vheap_size, VHSize),
1809
?line {min_bin_vheap_size, VHSize} = erlang:process_info(self(), min_bin_vheap_size),
1810
?line HSize = erlang:process_flag(min_heap_size, OldHmin),
1811
?line VHSize = erlang:process_flag(min_bin_vheap_size, OldVHmin),
1814
spawn_opt_heap_size(doc) ->
1816
spawn_opt_heap_size(suite) ->
1818
spawn_opt_heap_size(Config) when is_list(Config) ->
1819
HSize = 987, % must be gc fib number
1820
VHSize = 46368, % must be gc fib number
1821
?line Pid = spawn_opt(fun () -> receive stop -> ok end end,
1822
[{min_heap_size, HSize},{ min_bin_vheap_size, VHSize}]),
1823
?line {min_heap_size, HSize} = process_info(Pid, min_heap_size),
1824
?line {min_bin_vheap_size, VHSize} = process_info(Pid, min_bin_vheap_size),
1778
1828
processes_term_proc_list(doc) ->