diff options
author | Björn-Egil Dahlberg <[email protected]> | 2015-03-31 18:39:18 +0200 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2015-03-31 18:47:59 +0200 |
commit | 7cf7387cfe0fdc43a8cf3b48d89b4adb313bee9f (patch) | |
tree | 965b3114810e5dfcf652d76600664ec5098e5618 /erts | |
parent | 7556ab9ee0949c94e13d1ccfc6c7755637730be4 (diff) | |
download | otp-7cf7387cfe0fdc43a8cf3b48d89b4adb313bee9f.tar.gz otp-7cf7387cfe0fdc43a8cf3b48d89b4adb313bee9f.tar.bz2 otp-7cf7387cfe0fdc43a8cf3b48d89b4adb313bee9f.zip |
erts: Test deep Maps updates
Diffstat (limited to 'erts')
-rw-r--r-- | erts/emulator/test/map_SUITE.erl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/erts/emulator/test/map_SUITE.erl b/erts/emulator/test/map_SUITE.erl index a72c8dafe4..8bc8ef0a36 100644 --- a/erts/emulator/test/map_SUITE.erl +++ b/erts/emulator/test/map_SUITE.erl @@ -27,6 +27,7 @@ t_update_map_expressions/1, t_update_assoc/1, t_update_assoc_large/1, t_update_exact/1, t_update_exact_large/1, + t_update_deep/1, t_guard_bifs/1, t_guard_sequence/1, t_guard_update/1, t_guard_receive/1, t_guard_fun/1, t_list_comprehension/1, @@ -91,6 +92,7 @@ all() -> [ t_update_map_expressions, t_update_assoc, t_update_assoc_large, t_update_exact, t_update_exact_large, + t_update_deep, t_guard_bifs, t_guard_sequence, t_guard_update, t_guard_receive,t_guard_fun, t_list_comprehension, t_map_equal, t_map_compare, @@ -1036,6 +1038,27 @@ t_update_exact_large(Config) when is_list(Config) -> ok. +t_update_deep(Config) when is_list(Config) -> + N = 250000, + M0 = maps:from_list([{integer_to_list(I),a}||I<-lists:seq(1,N)]), + #{ "1" := a, "10" := a, "100" := a, "1000" := a, "10000" := a } = M0, + + M1 = M0#{ "1" := b, "10" := b, "100" := b, "1000" := b, "10000" := b }, + #{ "1" := a, "10" := a, "100" := a, "1000" := a, "10000" := a } = M0, + #{ "1" := b, "10" := b, "100" := b, "1000" := b, "10000" := b } = M1, + + M2 = M0#{ "1" => c, "10" => c, "100" => c, "1000" => c, "10000" => c }, + #{ "1" := a, "10" := a, "100" := a, "1000" := a, "10000" := a } = M0, + #{ "1" := b, "10" := b, "100" := b, "1000" := b, "10000" := b } = M1, + #{ "1" := c, "10" := c, "100" := c, "1000" := c, "10000" := c } = M2, + + M3 = M2#{ "n1" => d, "n10" => d, "n100" => d, "n1000" => d, "n10000" => d }, + #{ "1" := a, "10" := a, "100" := a, "1000" := a, "10000" := a } = M0, + #{ "1" := b, "10" := b, "100" := b, "1000" := b, "10000" := b } = M1, + #{ "1" := c, "10" := c, "100" := c, "1000" := c, "10000" := c } = M2, + #{ "1" := c, "10" := c, "100" := c, "1000" := c, "10000" := c } = M3, + #{ "n1" := d, "n10" := d, "n100" := d, "n1000" := d, "n10000" := d } = M3, + ok. t_guard_bifs(Config) when is_list(Config) -> true = map_guard_head(#{a=>1}), |