diff options
author | Sverker Eriksson <[email protected]> | 2018-01-05 14:37:37 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2018-01-05 14:37:37 +0100 |
commit | f496717590d610bd08f02bec39f8e97886c68729 (patch) | |
tree | f959b36349b5d73dcb138b7c05c01a3710b7d900 | |
parent | 22c2151b2823e8d74567e04c63ed2678f85f83cf (diff) | |
download | otp-f496717590d610bd08f02bec39f8e97886c68729.tar.gz otp-f496717590d610bd08f02bec39f8e97886c68729.tar.bz2 otp-f496717590d610bd08f02bec39f8e97886c68729.zip |
hipe: Avoid out-of-memory crash for bs_SUITE:bs_construct
-rw-r--r-- | lib/hipe/test/bs_SUITE_data/bs_construct.erl | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/hipe/test/bs_SUITE_data/bs_construct.erl b/lib/hipe/test/bs_SUITE_data/bs_construct.erl index b9e7d93570..aa85626857 100644 --- a/lib/hipe/test/bs_SUITE_data/bs_construct.erl +++ b/lib/hipe/test/bs_SUITE_data/bs_construct.erl @@ -279,13 +279,22 @@ bad_floats() -> %% (incorrectly) signed. huge_binaries() -> - AlmostIllegal = id(<<0:(id((1 bsl 32)-8))>>), case erlang:system_info(wordsize) of - 4 -> huge_binaries_32(AlmostIllegal); + 4 -> + Old = erts_debug:set_internal_state(available_internal_state, true), + case erts_debug:set_internal_state(binary, (1 bsl 29)-1) of + false -> + io:format("\nNot enough memory to create 512Mb binary\n",[]); + Bin-> + huge_binaries_32(Bin) + end, + erts_debug:set_internal_state(available_internal_state, Old); + 8 -> ok end, garbage_collect(), id(<<0:(id((1 bsl 31)-1))>>), + garbage_collect(), id(<<0:(id((1 bsl 30)-1))>>), garbage_collect(), ok. |