Thread overview
How can I specify a location to write the code coverage files generated with '-cov'?
Apr 04, 2014
Saurabh Das
Apr 04, 2014
Saurabh Das
Apr 04, 2014
Ali Çehreli
Apr 04, 2014
Daniel Murphy
Apr 04, 2014
Saurabh Das
April 04, 2014
Hello,

Say I compile a program with:

dmd -unittest -debug -cov test.d

Then, when I run ./test, a file 'test.lst' is generated in the current working directory. Is there a way in which I can instruct the file to be created in a separate './cov_log/' directory?

Thanks,
Saurabh

April 04, 2014
After reading some of the bug reports on BugZilla, I gather that this isn't possible yet :(

Thanks,
Saurabh

On Friday, 4 April 2014 at 04:10:51 UTC, Saurabh Das wrote:
> Hello,
>
> Say I compile a program with:
>
> dmd -unittest -debug -cov test.d
>
> Then, when I run ./test, a file 'test.lst' is generated in the current working directory. Is there a way in which I can instruct the file to be created in a separate './cov_log/' directory?
>
> Thanks,
> Saurabh

April 04, 2014
On 04/03/2014 09:10 PM, Saurabh Das wrote:

> Say I compile a program with:
>
> dmd -unittest -debug -cov test.d

So, that's what the makefile generates. ;) You can have an additional line that moves the coverage file away.

Ali

April 04, 2014
On Friday, 4 April 2014 at 04:10:51 UTC, Saurabh Das wrote:
> Hello,
>
> Say I compile a program with:
>
> dmd -unittest -debug -cov test.d
>
> Then, when I run ./test, a file 'test.lst' is generated in the current working directory. Is there a way in which I can instruct the file to be created in a separate './cov_log/' directory?
>
> Thanks,
> Saurabh

You actually can do this, through the hidden rt.cover api:

extern (C) void dmd_coverSourcePath( string pathname );
extern (C) void dmd_coverDestPath( string pathname );

Add these prototypes to your code and use them to override the default coverage paths.
April 04, 2014
On Friday, 4 April 2014 at 08:52:09 UTC, Daniel Murphy wrote:
> On Friday, 4 April 2014 at 04:10:51 UTC, Saurabh Das wrote:
>> Hello,
>>
>> Say I compile a program with:
>>
>> dmd -unittest -debug -cov test.d
>>
>> Then, when I run ./test, a file 'test.lst' is generated in the current working directory. Is there a way in which I can instruct the file to be created in a separate './cov_log/' directory?
>>
>> Thanks,
>> Saurabh
>
> You actually can do this, through the hidden rt.cover api:
>
> extern (C) void dmd_coverSourcePath( string pathname );
> extern (C) void dmd_coverDestPath( string pathname );
>

That is perfect! Many many thanks!

> Add these prototypes to your code and use them to override the default coverage paths.

Saurabh