diff options
author | Lukas Larsson <[email protected]> | 2016-12-20 14:44:18 +0100 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2016-12-20 14:44:18 +0100 |
commit | 9ffc782bd41a89b8f3f73bd698253812d30a8293 (patch) | |
tree | 0c64e1ed706888ac4b1b8b46b8d86ce34bf87777 /erts/emulator | |
parent | a4350201d204d61ee67b7330200c8d7d6d4b38d5 (diff) | |
parent | ca7e946af9c2fdc86c1c74259ee7b6881c5aec1e (diff) | |
download | otp-9ffc782bd41a89b8f3f73bd698253812d30a8293.tar.gz otp-9ffc782bd41a89b8f3f73bd698253812d30a8293.tar.bz2 otp-9ffc782bd41a89b8f3f73bd698253812d30a8293.zip |
Merge branch 'mikpe/erts/system_info-atom_table/PR-1286/OTP-13976'
* mikpe/erts/system_info-atom_table/PR-1286/OTP-13976:
erts: add erlang:system_info(atom_count)
Diffstat (limited to 'erts/emulator')
-rw-r--r-- | erts/emulator/beam/erl_bif_info.c | 3 | ||||
-rw-r--r-- | erts/emulator/test/system_info_SUITE.erl | 15 |
2 files changed, 16 insertions, 2 deletions
diff --git a/erts/emulator/beam/erl_bif_info.c b/erts/emulator/beam/erl_bif_info.c index 0e0842e139..9a3b78ae8d 100644 --- a/erts/emulator/beam/erl_bif_info.c +++ b/erts/emulator/beam/erl_bif_info.c @@ -2863,6 +2863,9 @@ BIF_RETTYPE system_info_1(BIF_ALIST_1) else if (ERTS_IS_ATOM_STR("atom_limit",BIF_ARG_1)) { BIF_RET(make_small(erts_get_atom_limit())); } + else if (ERTS_IS_ATOM_STR("atom_count",BIF_ARG_1)) { + BIF_RET(make_small(atom_table_size())); + } else if (ERTS_IS_ATOM_STR("tolerant_timeofday",BIF_ARG_1)) { if (erts_has_time_correction() && erts_time_offset_state() == ERTS_TIME_OFFSET_FINAL) { diff --git a/erts/emulator/test/system_info_SUITE.erl b/erts/emulator/test/system_info_SUITE.erl index 3d9e74472b..6a772bf7c9 100644 --- a/erts/emulator/test/system_info_SUITE.erl +++ b/erts/emulator/test/system_info_SUITE.erl @@ -36,7 +36,8 @@ -export([all/0, suite/0]). -export([process_count/1, system_version/1, misc_smoke_tests/1, - heap_size/1, wordsize/1, memory/1, ets_limit/1, atom_limit/1]). + heap_size/1, wordsize/1, memory/1, ets_limit/1, atom_limit/1, + atom_count/1]). suite() -> [{ct_hooks,[ts_install_cth]}, @@ -44,7 +45,7 @@ suite() -> all() -> [process_count, system_version, misc_smoke_tests, - heap_size, wordsize, memory, ets_limit, atom_limit]. + heap_size, wordsize, memory, ets_limit, atom_limit, atom_count]. %%% %%% The test cases ------------------------------------------------------------- @@ -550,3 +551,13 @@ get_atom_limit(Config, AtomsMax) -> end, stop_node(Node), Res. + +%% Verify that system_info(atom_count) works. +atom_count(Config) when is_list(Config) -> + Limit = erlang:system_info(atom_limit), + Count1 = erlang:system_info(atom_count), + list_to_atom(integer_to_list(erlang:unique_integer())), + Count2 = erlang:system_info(atom_count), + true = Limit >= Count2, + true = Count2 > Count1, + ok. |