diff options
author | Björn-Egil Dahlberg <[email protected]> | 2014-05-09 17:59:12 +0200 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2014-05-09 17:59:12 +0200 |
commit | 1c817ecd054780551bcbe8b5a0e30bea2b3da04e (patch) | |
tree | e1a57c1592b3662cc785f4770e210140593a9986 /lib/hipe/test/maps_SUITE_data/maps_map_size.erl | |
parent | 659213c7facb71410fe990d5099abf3019c58b3e (diff) | |
parent | f6d5234c391a0ba834337c3e92ee5fb377834a32 (diff) | |
download | otp-1c817ecd054780551bcbe8b5a0e30bea2b3da04e.tar.gz otp-1c817ecd054780551bcbe8b5a0e30bea2b3da04e.tar.bz2 otp-1c817ecd054780551bcbe8b5a0e30bea2b3da04e.zip |
Merge branch 'ks/hipe-map-support/OTP-11900' into maint
* ks/hipe-map-support/OTP-11900:
Add five new test files for maps in the HiPE test suite
Copy the tests for maps from the compiler application to a new HiPE test suite
Translate the put_map_assoc and put_map_exact BEAM instructions to ICode
Translate the has_map_fields and get_map_elements BEAM instructions to ICode
Diffstat (limited to 'lib/hipe/test/maps_SUITE_data/maps_map_size.erl')
-rw-r--r-- | lib/hipe/test/maps_SUITE_data/maps_map_size.erl | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/hipe/test/maps_SUITE_data/maps_map_size.erl b/lib/hipe/test/maps_SUITE_data/maps_map_size.erl new file mode 100644 index 0000000000..25c8e5d4c7 --- /dev/null +++ b/lib/hipe/test/maps_SUITE_data/maps_map_size.erl @@ -0,0 +1,29 @@ +-module(maps_map_size). +-export([test/0]). + +test() -> + 0 = map_size(id(#{})), + 1 = map_size(id(#{a=>1})), + 1 = map_size(id(#{a=>"wat"})), + 2 = map_size(id(#{a=>1, b=>2})), + 3 = map_size(id(#{a=>1, b=>2, b=>"3","33"=><<"n">>})), + + true = map_is_size(#{a=>1}, 1), + true = map_is_size(#{a=>1, a=>2}, 1), + M = #{ "a" => 1, "b" => 2}, + true = map_is_size(M, 2), + false = map_is_size(M, 3), + true = map_is_size(M#{ "a" => 2}, 2), + false = map_is_size(M#{ "c" => 2}, 2), + + %% Error cases. + {'EXIT',{badarg,_}} = (catch map_size([])), + {'EXIT',{badarg,_}} = (catch map_size(<<1,2,3>>)), + {'EXIT',{badarg,_}} = (catch map_size(1)), + ok. + +map_is_size(M,N) when map_size(M) =:= N -> true; +map_is_size(_,_) -> false. + +%% Use this function to avoid compile-time evaluation of an expression. +id(I) -> I. |