diff options
| author | Björn Gustavsson <[email protected]> | 2014-02-06 10:08:15 +0100 | 
|---|---|---|
| committer | Björn Gustavsson <[email protected]> | 2014-02-06 10:08:15 +0100 | 
| commit | 503b0769e647f06b15b8d5e5fd09f3b2ab10ebfa (patch) | |
| tree | 639a5d81f85ffc83f5023f4b0d4ae04c2882e178 /lib/compiler/test | |
| parent | 3efa33db1e59b400babf672b07763c4a2467798a (diff) | |
| parent | 5f4b495e68de1d1762cad0a96d01b5195d3b458e (diff) | |
| download | otp-503b0769e647f06b15b8d5e5fd09f3b2ab10ebfa.tar.gz otp-503b0769e647f06b15b8d5e5fd09f3b2ab10ebfa.tar.bz2 otp-503b0769e647f06b15b8d5e5fd09f3b2ab10ebfa.zip  | |
Merge branch 'bjorn/compiler/applying-binary-crash/OTP-11672'
* bjorn/compiler/applying-binary-crash/OTP-11672:
  beam_bsm: Eliminate emulator crash when a binary is called
  beam_validator: Validate the "fun" argument for a call_fun/1 instruction
Diffstat (limited to 'lib/compiler/test')
| -rw-r--r-- | lib/compiler/test/bs_match_SUITE.erl | 15 | 
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/compiler/test/bs_match_SUITE.erl b/lib/compiler/test/bs_match_SUITE.erl index 9f15845d33..149b9bbb8f 100644 --- a/lib/compiler/test/bs_match_SUITE.erl +++ b/lib/compiler/test/bs_match_SUITE.erl @@ -34,7 +34,7 @@  	 otp_7188/1,otp_7233/1,otp_7240/1,otp_7498/1,  	 match_string/1,zero_width/1,bad_size/1,haystack/1,  	 cover_beam_bool/1,matched_out_size/1,follow_fail_branch/1, -	 no_partition/1]). +	 no_partition/1,calling_a_binary/1]).  -export([coverage_id/1,coverage_external_ignore/2]). @@ -59,7 +59,7 @@ groups() ->         matching_and_andalso,otp_7188,otp_7233,otp_7240,         otp_7498,match_string,zero_width,bad_size,haystack,         cover_beam_bool,matched_out_size,follow_fail_branch, -       no_partition]}]. +       no_partition,calling_a_binary]}].  init_per_suite(Config) -> @@ -1178,6 +1178,17 @@ no_partition_2([], a5) ->  no_partition_2(42.0, a6) ->      six. +calling_a_binary(Config) when is_list(Config) -> +    [] = call_binary(<<>>, []), +    {'EXIT',{badarg,_}} = (catch call_binary(<<1>>, [])), +    {'EXIT',{badarg,_}} = (catch call_binary(<<1,2,3>>, [])), +    ok. + +call_binary(<<>>, Acc) -> +    Acc; +call_binary(<<H,T/bits>>, Acc) -> +    T(<<Acc/binary,H>>). +  check(F, R) ->      R = F().  | 
