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

Fredrik <>
Wed Jul 10 10:11:09 CEST 2013


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 
> <http://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 < 
> <mailto:>> 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 <
>     <mailto:>> 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
>          <mailto:>
>         http://erlang.org/mailman/listinfo/erlang-questions
>
>
>
>
>
> _______________________________________________
> erlang-patches mailing list
> 
> http://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/d50c669e/attachment.html>


More information about the erlang-patches mailing list