diff options
author | Björn-Egil Dahlberg <[email protected]> | 2014-08-21 16:43:03 +0200 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2014-08-21 16:43:03 +0200 |
commit | ae9c3f7b755d5ebf4e65146d81d04c2d48b4d9c9 (patch) | |
tree | 222b68e94768df505415a004a3e1633cc749c8f6 /erts/emulator/test/fun_SUITE.erl | |
parent | a499a783bd7edbba856e61e490137dea4dab67e3 (diff) | |
parent | ed5a0b9cdf6a7e87cec1a50c6e9adb29698ce8d9 (diff) | |
download | otp-ae9c3f7b755d5ebf4e65146d81d04c2d48b4d9c9.tar.gz otp-ae9c3f7b755d5ebf4e65146d81d04c2d48b4d9c9.tar.bz2 otp-ae9c3f7b755d5ebf4e65146d81d04c2d48b4d9c9.zip |
Merge branch 'maint'
Diffstat (limited to 'erts/emulator/test/fun_SUITE.erl')
-rw-r--r-- | erts/emulator/test/fun_SUITE.erl | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/erts/emulator/test/fun_SUITE.erl b/erts/emulator/test/fun_SUITE.erl index 8ad5f290ed..2968f5bebb 100644 --- a/erts/emulator/test/fun_SUITE.erl +++ b/erts/emulator/test/fun_SUITE.erl @@ -30,7 +30,7 @@ fun_to_port/1,t_hash/1,t_phash/1,t_phash2/1,md5/1, refc/1,refc_ets/1,refc_dist/1, const_propagation/1,t_arity/1,t_is_function2/1, - t_fun_info/1]). + t_fun_info/1,t_fun_info_mfa/1]). -export([nothing/0]). @@ -42,7 +42,8 @@ all() -> [bad_apply, bad_fun_call, badarity, ext_badarity, equality, ordering, fun_to_port, t_hash, t_phash, t_phash2, md5, refc, refc_ets, refc_dist, - const_propagation, t_arity, t_is_function2, t_fun_info]. + const_propagation, t_arity, t_is_function2, t_fun_info, + t_fun_info_mfa]. groups() -> []. @@ -824,6 +825,24 @@ t_fun_info(Config) when is_list(Config) -> ?line bad_info(<<1,2>>), ok. +t_fun_info_mfa(Config) when is_list(Config) -> + Fun1 = fun spawn_call/2, + {module,M1} = erlang:fun_info(Fun1, module), + {name,F1} = erlang:fun_info(Fun1, name), + {arity,A1} = erlang:fun_info(Fun1, arity), + {M1,F1,A1=2} = erlang:fun_info_mfa(Fun1), + %% Module fun. + Fun2 = fun ?MODULE:t_fun_info/1, + {module,M2} = erlang:fun_info(Fun2, module), + {name,F2} = erlang:fun_info(Fun2, name), + {arity,A2} = erlang:fun_info(Fun2, arity), + {M2,F2,A2=1} = erlang:fun_info_mfa(Fun2), + + %% Not fun. + {'EXIT',_} = (catch erlang:fun_info_mfa(id(d))), + ok. + + bad_info(Term) -> try erlang:fun_info(Term, module) of Any -> |