diff options
author | Henrik Nord <[email protected]> | 2015-03-12 12:09:11 +0100 |
---|---|---|
committer | Henrik Nord <[email protected]> | 2015-03-12 12:09:14 +0100 |
commit | 79739d9567f72e7fe725509912ec676ea955ab64 (patch) | |
tree | 6cf5bf6c4efbbf2b641f83a5e64e7f26dbe3885c /erts/emulator/test | |
parent | 0796cb716511ae2bf35ee0ee1e0da75f20ad567f (diff) | |
parent | 7f82fdee75c2c3c3c5eaf259e2671737163be32b (diff) | |
download | otp-79739d9567f72e7fe725509912ec676ea955ab64.tar.gz otp-79739d9567f72e7fe725509912ec676ea955ab64.tar.bz2 otp-79739d9567f72e7fe725509912ec676ea955ab64.zip |
Merge branch 'mikpe/avoid-oversize-bignums' into maint
* mikpe/avoid-oversize-bignums:
don't leave a heap hole in erts_bs_get_integer_2
don't create oversize bignums in binary matching
OTP-12556
Diffstat (limited to 'erts/emulator/test')
-rw-r--r-- | erts/emulator/test/big_SUITE.erl | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/erts/emulator/test/big_SUITE.erl b/erts/emulator/test/big_SUITE.erl index 413bd3bcae..3193d56e2a 100644 --- a/erts/emulator/test/big_SUITE.erl +++ b/erts/emulator/test/big_SUITE.erl @@ -23,7 +23,7 @@ init_per_group/2,end_per_group/2]). -export([t_div/1, eq_28/1, eq_32/1, eq_big/1, eq_math/1, big_literals/1, borders/1, negative/1, big_float_1/1, big_float_2/1, - shift_limit_1/1, powmod/1, system_limit/1, otp_6692/1]). + shift_limit_1/1, powmod/1, system_limit/1, toobig/1, otp_6692/1]). %% Internal exports. -export([eval/1]). @@ -40,7 +40,7 @@ suite() -> [{ct_hooks,[ts_install_cth]}]. all() -> [t_div, eq_28, eq_32, eq_big, eq_math, big_literals, borders, negative, {group, big_float}, shift_limit_1, - powmod, system_limit, otp_6692]. + powmod, system_limit, toobig, otp_6692]. groups() -> [{big_float, [], [big_float_1, big_float_2]}]. @@ -370,6 +370,16 @@ maxbig() -> id(I) -> I. +toobig(Config) when is_list(Config) -> + ?line {'EXIT',{{badmatch,_},_}} = (catch toobig()), + ok. + +toobig() -> + A = erlang:term_to_binary(lists:seq(1000000, 2200000)), + ASize = erlang:bit_size(A), + <<ANr:ASize>> = A, % should fail + ANr band ANr. + otp_6692(suite) -> []; otp_6692(doc) -> |