[erlang-patches] [erlang-questions] cover & export_all

Peti Gömöri <>
Wed Jul 10 10:34:38 CEST 2013


Hi Fredrik,

sorry, what about this one (maybe it was a wrong ö)

git fetch git://github.com/gomoripeti/otp.git pgö-cover-export-all

On Wed, Jul 10, 2013 at 9:11 AM, Fredrik <> wrote:

>  On 07/10/2013 03:19 AM, Peti Gömöri wrote:
>
> Hi OTP team,
>
>  here is a patch that addresses the problem Yuri described.
> (I haven't added any tests or docs though)
>
>  is it true that now you also accept pull requests?
>
>
>
>  git fetch git://github.com/gomoripeti/otp.git pgö-cover-export-all
>
>
> https://github.com/gomoripeti/otp/compare/erlang:maint...pgö-cover-export-all<https://github.com/gomoripeti/otp/compare/erlang:maint...pg%F6-cover-export-all>
>
> https://github.com/gomoripeti/otp/compare/erlang:maint...pgö-cover-export-all.patch<https://github.com/gomoripeti/otp/compare/erlang:maint...pg%F6-cover-export-all.patch>
>
>
>  br
> Peter
>
>  On Wed, Jul 10, 2013 at 12:34 AM, Peti Gömöri <>wrote:
>
>> Hi Yuri,
>>
>>  You are right, while cover compiling from source works (you can use
>> this as a workaround):
>>  > cover:compile(cover_test, UserOptions = [export_all, debug_info]).
>> {ok,cover_test}
>> > cover_test:test().
>> ok
>>
>>  (because UserOptions from the arguments is taken when cover recompiles
>> the instrumented forms)
>> when cover compiling from beam UserOptions = [] is taken.
>> This could be fixed in cover by taking the compile options from the beam
>> file as you assumed how it works.
>>
>>  Actually the documentation still says that "Only options defining
>> include file directories and macros are passed to compile:file/2,
>> everything else is ignored." apparently a patch from Tobias Schlager added
>> export_all to the allowed options of cover:compile for the exact same use
>> case as you had. But this is missing from cover:compile_beam.
>>
>>  May be I try to come up with a patch
>>
>>  br
>> Peter
>>
>>
>>
>> On Tue, Jul 9, 2013 at 11:56 AM, Yuri Lukyanov <> wrote:
>>
>>> It seems that there is no way to cover-compile modules with export_all.
>>> Here is a simple example:
>>>
>>> cover_test.erl:
>>>
>>> -module(cover_test).
>>> test() -> ok.
>>>
>>>
>>> $ erl
>>> Erlang R15B01 (erts-5.9.1) [source] [64-bit] [smp:4:4]
>>> [async-threads:0] [hipe] [kernel-poll:false]
>>>
>>> Eshell V5.9.1  (abort with ^G)
>>> 1> c(cover_test, [debug_info,export_all]).
>>> {ok,cover_test}
>>> 2> cover_test:test().
>>> ok
>>> 3> cover:compile_beam(cover_test).
>>> {ok,cover_test}
>>> 4> cover_test:test().
>>> ** exception error: undefined function cover_test:test/0
>>> 5>
>>>
>>>
>>> Could someone explain why it is like this? Is it done on purpose?
>>> Maybe it's a bug?
>>> The reason I want modules to be cover-compiled with +export_all is
>>> that it is sometimes convinient to have unit tests outside of a
>>> module. Before unit tests are run the modules get compiled with
>>> +export_all for tests to be able to access private functions. But the
>>> situation is that it is not possibe in this case to enable coverage
>>> analysys.
>>> _______________________________________________
>>> erlang-questions mailing list
>>> 
>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>
>>
>>
>
>
> _______________________________________________
> erlang-patches mailing ://erlang.org/mailman/listinfo/erlang-patches
>
>  Hello Peti,
> I am getting,
> <https://github.com/gomoripeti/otp/compare/erlang:maint...pg%C3%B6-cover-export-all.patch>fatal:
> Couldn't find remote ref pgö-cover-export-all when I am trying to fetch.
> Yes pull requests are accepted.
>
> --
>
> BR Fredrik Gustafsson
> Erlang OTP Team
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-patches/attachments/20130710/4d4b267b/attachment-0001.html>


More information about the erlang-patches mailing list