Skip to content

Commit d946c61

Browse files
author
Jon Meredith
committed
Extended EQC test for async_put.
1 parent 26a1ac6 commit d946c61

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/eleveldb.erl

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -484,13 +484,23 @@ values() ->
484484
eqc_gen:non_empty(list(binary())).
485485

486486
ops(Keys, Values) ->
487-
{oneof([put, delete]), oneof(Keys), oneof(Values)}.
487+
{oneof([put, async_put, delete]), oneof(Keys), oneof(Values)}.
488488

489489
apply_kv_ops([], _Ref, Acc0) ->
490490
Acc0;
491491
apply_kv_ops([{put, K, V} | Rest], Ref, Acc0) ->
492492
ok = eleveldb:put(Ref, K, V, []),
493493
apply_kv_ops(Rest, Ref, orddict:store(K, V, Acc0));
494+
apply_kv_ops([{async_put, K, V} | Rest], Ref, Acc0) ->
495+
MyRef = make_ref(),
496+
Context = {my_context, MyRef},
497+
ok = eleveldb:async_put(Ref, Context, K, V, []),
498+
receive
499+
{Context, ok} ->
500+
apply_kv_ops(Rest, Ref, orddict:store(K, V, Acc0));
501+
Msg ->
502+
error({unexpected_msg, Msg})
503+
end;
494504
apply_kv_ops([{delete, K, _} | Rest], Ref, Acc0) ->
495505
ok = eleveldb:delete(Ref, K, []),
496506
apply_kv_ops(Rest, Ref, orddict:store(K, deleted, Acc0)).

0 commit comments

Comments
 (0)