Re: [erlang-questions] cover & export_all
Peti Gömöri <[email protected]>
| Newsgroups | gmane.comp.lang.erlang.patches,gmane.comp.lang.erlang.general |
|---|---|
| Message-ID | <CAEhaAyHMDkbFVwPVn74t1XouVaOb_FuPHwOnLA2wg-+UN=C0CQ@mail.gmail.com> |
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ö-cover-export-all.patch br Peter On Wed, Jul 10, 2013 at 12:34 AM, Peti Gömöri <[email protected]> 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 <[email protected]> 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 >> [email protected] >> http://erlang.org/mailman/listinfo/erlang-questions >> > > _______________________________________________ erlang-patches mailing list [email protected] http://erlang.org/mailman/listinfo/erlang-patches