aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2018-11-20 13:50:06 +0100
committerSverker Eriksson <[email protected]>2018-11-20 13:50:06 +0100
commit19c5d33d9d43b92f34af7a8aded415e1286b3091 (patch)
tree3047c857bcca69a676b6ed0787cc6204fe7364e7 /lib/stdlib
parent0fc332c2ba37772c3d4510c1b0235994de73b5b2 (diff)
parent9df5b05068228e4291d72a87946e303874579960 (diff)
downloadotp-19c5d33d9d43b92f34af7a8aded415e1286b3091.tar.gz
otp-19c5d33d9d43b92f34af7a8aded415e1286b3091.tar.bz2
otp-19c5d33d9d43b92f34af7a8aded415e1286b3091.zip
Merge branch 'sverker/ets-ordered-set-fixups'
Diffstat (limited to 'lib/stdlib')
-rw-r--r--lib/stdlib/test/Makefile8
-rw-r--r--lib/stdlib/test/ets_SUITE.erl23
2 files changed, 13 insertions, 18 deletions
diff --git a/lib/stdlib/test/Makefile b/lib/stdlib/test/Makefile
index bbe3cefa42..712b1b92fb 100644
--- a/lib/stdlib/test/Makefile
+++ b/lib/stdlib/test/Makefile
@@ -99,11 +99,9 @@ MODULES= \
maps_SUITE \
zzz_SUITE
-ERL_FILES= $(MODULES:%=%.erl)
+ERTS_MODULES= erts_test_utils
-TARGET_FILES= $(MODULES:%=$(EBIN)/%.$(EMULATOR))
-
-INSTALL_PROGS= $(TARGET_FILES)
+ERL_FILES= $(MODULES:%=%.erl) $(ERTS_MODULES:%=$(ERL_TOP)/erts/emulator/test/%.erl)
# ----------------------------------------------------
# Release directory specification
@@ -128,7 +126,7 @@ COVERFILE=stdlib.cover
# ----------------------------------------------------
make_emakefile:
- $(ERL_TOP)/make/make_emakefile $(ERL_COMPILE_FLAGS) -o$(EBIN) $(MODULES) \
+ $(ERL_TOP)/make/make_emakefile $(ERL_COMPILE_FLAGS) -o$(EBIN) $(MODULES) $(ERTS_MODULES) \
> $(EMAKEFILE)
tests debug opt: make_emakefile
diff --git a/lib/stdlib/test/ets_SUITE.erl b/lib/stdlib/test/ets_SUITE.erl
index cc369979f7..22c77aa172 100644
--- a/lib/stdlib/test/ets_SUITE.erl
+++ b/lib/stdlib/test/ets_SUITE.erl
@@ -6052,7 +6052,7 @@ smp_ordered_iteration(Config) when is_list(Config) ->
smp_ordered_iteration_do(Opts) ->
KeyRange = 1000,
- OffHeap = fun() -> dummy end, % To exercise key copy/destroy code.
+ OffHeap = erts_test_utils:mk_ext_pid({a@b,1}, 4711, 1),
KeyFun = fun(K, Type) ->
{K div 10, K rem 10, Type, OffHeap}
end,
@@ -6068,7 +6068,10 @@ smp_ordered_iteration_do(Opts) ->
NVolatile = KeyRange div 2,
prefill_table(T, KeyRange, NVolatile, fun(K) -> {KeyFun(K, volatile), 0} end),
- InitF = fun (_) -> #{} end,
+ InitF = fun (_) -> #{insert => 0, delete => 0,
+ select_delete_bk => 0, select_delete_pbk => 0,
+ select_replace_bk => 0, select_replace_pbk => 0}
+ end,
ExecF = fun (Counters) ->
K = rand:uniform(KeyRange),
Key = KeyFun(K, volatile),
@@ -6129,6 +6132,9 @@ smp_ordered_iteration_do(Opts) ->
io:format("Stats = ~p\n", [ets:info(T,stats)]),
io:format("Rounds = ~p\n", [Rounds]),
true = ets:delete(T),
+
+ %% Verify no leakage of offheap key data
+ ok = erts_test_utils:check_node_dist(),
ok.
incr_counter(Name, Counters) ->
@@ -7455,9 +7461,6 @@ is_redundant_opts_combo(Opts) ->
key_range(Opts, KeyRange) ->
[{key_range, KeyRange} | Opts].
-key_range_fun(Opts, KeyRange, KeyFun) ->
- [{key_range, KeyRange}, {key_fun, KeyFun} | Opts].
-
ets_new(Name, Opts0) ->
{KeyRange, Opts1} = case lists:keytake(key_range, 1, Opts0) of
{value, {key_range, KR}, Rest1} ->
@@ -7467,14 +7470,8 @@ ets_new(Name, Opts0) ->
end,
ets_new(Name, Opts1, KeyRange).
-ets_new(Name, Opts1, KeyRange) ->
- {KeyFun, Opts2} = case lists:keytake(key_fun, 1, Opts1) of
- {value, {key_fun, KF}, Rest2} ->
- {KF, Rest2};
- false ->
- {fun id/1, Opts1}
- end,
- ets_new(Name, Opts2, KeyRange, KeyFun).
+ets_new(Name, Opts, KeyRange) ->
+ ets_new(Name, Opts, KeyRange, fun id/1).
ets_new(Name, Opts0, KeyRange, KeyFun) ->
{CATree, Stimulate, RevOpts} =