[erlang-questions] PropEr after test clean up
Hynek Vychodil
vychodil.hynek@REDACTED
Mon May 25 18:40:32 CEST 2015
It is exactly how I discovered this behaviour. See
https://github.com/pichi/erlgt/blob/ff3249893464f19765c74db2eae24273f15f66fd/src/gen_digraph.erl#L153
When I implemented otp_digraph as a wrapper for digraph module from stdlib
I realised it doesn't work.
On Mon, May 25, 2015 at 6:34 PM, Erik Søe Sørensen <eriksoe@REDACTED>
wrote:
> Would a try...after...end be any help?
> Den 25/05/2015 17.11 skrev "Hynek Vychodil" <vychodil.hynek@REDACTED>:
>
>> Hi,
>>
>> I bumped in the problem how clean up after property in PropEr. Let's have
>> simple property where I make ets table:
>>
>> prop_ets() ->
>> ?FORALL(V, integer(),
>> begin
>> E = ets:new(),
>> true = ets:insert(T, {V, ok}),
>> equals([{V, ok}], ets:lookup(T, V))
>> end
>> ).
>>
>> How am I supposed to delete ets table? It is trickier than looks like.
>> The problem is when I want use another ?FORALL inside my property. The
>> conjunction/1 is the same problem. You can`t write
>>
>> prop_ets() ->
>> ?FORALL(V, integer(),
>> begin
>> E = ets:new(),
>> true = ets:insert(T, {V, ok}),
>> Res = conjunction([{lookup, equals([{V, ok}], ets:lookup(T,
>> V))},
>> {lookup_element,
>> equals(ok, ets:lookup_element(T, V, 2))}]),
>> ets:delete(T),
>> Res
>> end
>> ).
>>
>> Because Res is test(). In this case, you can make calls to
>> the ets:lookup/2 and the ets:lookup_element/3 before conjunction/1 but it
>> doesn't solve properties like
>>
>> ?FORALL(L, list(...),
>> begin
>> T = ets:new(),
>> ...
>> ?FORALL(V, oneof(L),
>> ...
>> )
>> end
>> )
>>
>> The solution would be simple is every test case would be run in a
>> separate process, but it is not! It is very unusual in Erlang word to make
>> such thing. Processes are cheap and I can they are in a defined state each
>> run for free. Why is it all running in the same process?
>>
>> Has anybody solved this problem somehouw?
>>
>> Hynek Vychodil
>>
>> _______________________________________________
>> erlang-questions mailing list
>> erlang-questions@REDACTED
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20150525/4ac19ebe/attachment.htm>
More information about the erlang-questions
mailing list