diff options
author | Magnus Lång <[email protected]> | 2014-03-26 18:58:46 +0100 |
---|---|---|
committer | Kostis Sagonas <[email protected]> | 2014-04-29 11:40:29 +0200 |
commit | 5a43eb383bdeb604fd8a891ffe34610c3fe6208b (patch) | |
tree | 1a76c9a5bf0d8f32c06acb8266eaa52ce6e860d5 /lib/hipe/test/maps_SUITE_data/maps_update_values.erl | |
parent | e486d8b0c6124f39db6fa600f348c7bd5c0c1a13 (diff) | |
download | otp-5a43eb383bdeb604fd8a891ffe34610c3fe6208b.tar.gz otp-5a43eb383bdeb604fd8a891ffe34610c3fe6208b.tar.bz2 otp-5a43eb383bdeb604fd8a891ffe34610c3fe6208b.zip |
Copy the tests for maps from the compiler application to a new HiPE test suite
Change the maps_guard_fun test to accept the HiPE trace format.
Diffstat (limited to 'lib/hipe/test/maps_SUITE_data/maps_update_values.erl')
-rw-r--r-- | lib/hipe/test/maps_SUITE_data/maps_update_values.erl | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/hipe/test/maps_SUITE_data/maps_update_values.erl b/lib/hipe/test/maps_SUITE_data/maps_update_values.erl new file mode 100644 index 0000000000..bbad5ac19e --- /dev/null +++ b/lib/hipe/test/maps_SUITE_data/maps_update_values.erl @@ -0,0 +1,28 @@ +-module(maps_update_values). +-export([test/0]). + +test() -> + V0 = id(1337), + M0 = #{ a => 1, val => V0}, + V1 = get_val(M0), + M1 = M0#{ val := [V0,V1], "wazzup" => 42 }, + [1337, {some_val, 1337}] = get_val(M1), + + N = 110, + List = [{[I,1,2,3,I],{1,2,3,"wat",I}}|| I <- lists:seq(1,N)], + + {_,_,#{val2 := {1,2,3,"wat",N}, val1 := [N,1,2,3,N]}} = lists:foldl(fun + ({V2,V3},{Old2,Old3,Mi}) -> + ok = check_val(Mi,Old2,Old3), + #{ val1 := Old2, val2 := Old3 } = Mi, + {V2,V3, Mi#{ val1 := id(V2), val2 := V1, val2 => id(V3)}} + end, {none, none, #{val1=>none,val2=>none}},List), + ok. + +get_val(#{ "wazzup" := _, val := V}) -> V; +get_val(#{ val := V }) -> {some_val, V}. + +check_val(#{val1:=V1, val2:=V2},V1,V2) -> ok. + +%% Use this function to avoid compile-time evaluation of an expression. +id(I) -> I. |