Re: [HACKERS] Extensions makefiles - coverage

2013-09-24 Thread Ronan Dunklau
On Sunday 22 September 2013 01:34:53 Peter Eisentraut wrote:
 On Thu, 2013-07-25 at 17:07 +0200, Ronan Dunklau wrote:
  I am using approximatively the layout that was proposed here:
  http://www.postgresql.org/message-id/51bb1b6e.2070...@dunslane.net
  It looks like everything is hard-coded to take the source and the
  gcda, gcno files in the base directory, but these files lay in a src
  directory with the proposed layout.
 
 The PostgreSQL build system isn't going to work very well if you build
 files outside of the current directory.  If you want to put your source
 files into a src/ subdirectory, then your top-level makefile should to a
 $(MAKE) -C src, and you need to have a second makefile in the src
 directory.  If you do that, then the existing coverage targets will work
 alright, I think.

The PGXS build system allows for the definition of an OBJS variable, which 
works fine with almost every other make target.

Maybe we need to take a step back, and think about what kind of extension 
layouts we want to support ?

At the time of this writing, the HOW TO on http://manager.pgxn.org/howto 
strongly encourage to put all C-files in an src directory.

As a result, many extensions on pgxn use this layout. It would be great not to 
have to change them to measure code coverage.

signature.asc
Description: This is a digitally signed message part.


Re: [HACKERS] Extensions makefiles - coverage

2013-09-21 Thread Peter Eisentraut
On Thu, 2013-07-25 at 17:07 +0200, Ronan Dunklau wrote:
 I am using approximatively the layout that was proposed here:
 http://www.postgresql.org/message-id/51bb1b6e.2070...@dunslane.net
 It looks like everything is hard-coded to take the source and the
 gcda, gcno files in the base directory, but these files lay in a src
 directory with the proposed layout.

The PostgreSQL build system isn't going to work very well if you build
files outside of the current directory.  If you want to put your source
files into a src/ subdirectory, then your top-level makefile should to a
$(MAKE) -C src, and you need to have a second makefile in the src
directory.  If you do that, then the existing coverage targets will work
alright, I think.




-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Extensions makefiles - coverage

2013-07-26 Thread Robert Haas
On Thu, Jul 25, 2013 at 11:07 AM, Ronan Dunklau rdunk...@gmail.com wrote:
 Hello.

 I was having trouble figuring how to use the coverage targets when
 using an extension.
 I am using approximatively the layout that was proposed here:
 http://www.postgresql.org/message-id/51bb1b6e.2070...@dunslane.net
 It looks like everything is hard-coded to take the source and the
 gcda, gcno files in the base directory, but these files lay in a src
 directory with the proposed layout.

 It may be better to base the .gcda file discovery on the OBJS
 variables when using PGXS.

 Please find attached a small patch that implements this. There is
 probably a better way than the redundant rm $(gcda_files) / rm *.gcda
 to cleanup the generated files.

 With the attached patch, the following targets seem to have the same
 behaviour as on the current HEAD, both on the whole tree and on
 individual contrib modules:

 - coverage-html
 - clean
 - coverage-clean
 - clean-coverage

 I noticed that make clean leaves gcda and gcov files on the current
 HEAD, and this is no different with the given patch.

 I also tested it against several pgxn extensions, and it seems to work fine.

You can ensure that your patch doesn't get forgotten about by adding it here:

https://commitfest.postgresql.org/action/commitfest_view/open

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Extensions makefiles - coverage

2013-07-26 Thread Ronan Dunklau
Thank you for the tip, its done.

2013/7/26 Robert Haas robertmh...@gmail.com:
 On Thu, Jul 25, 2013 at 11:07 AM, Ronan Dunklau rdunk...@gmail.com wrote:
 Hello.

 I was having trouble figuring how to use the coverage targets when
 using an extension.
 I am using approximatively the layout that was proposed here:
 http://www.postgresql.org/message-id/51bb1b6e.2070...@dunslane.net
 It looks like everything is hard-coded to take the source and the
 gcda, gcno files in the base directory, but these files lay in a src
 directory with the proposed layout.

 It may be better to base the .gcda file discovery on the OBJS
 variables when using PGXS.

 Please find attached a small patch that implements this. There is
 probably a better way than the redundant rm $(gcda_files) / rm *.gcda
 to cleanup the generated files.

 With the attached patch, the following targets seem to have the same
 behaviour as on the current HEAD, both on the whole tree and on
 individual contrib modules:

 - coverage-html
 - clean
 - coverage-clean
 - clean-coverage

 I noticed that make clean leaves gcda and gcov files on the current
 HEAD, and this is no different with the given patch.

 I also tested it against several pgxn extensions, and it seems to work fine.

 You can ensure that your patch doesn't get forgotten about by adding it here:

 https://commitfest.postgresql.org/action/commitfest_view/open

 --
 Robert Haas
 EnterpriseDB: http://www.enterprisedb.com
 The Enterprise PostgreSQL Company


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


[HACKERS] Extensions makefiles - coverage

2013-07-25 Thread Ronan Dunklau
Hello.

I was having trouble figuring how to use the coverage targets when
using an extension.
I am using approximatively the layout that was proposed here:
http://www.postgresql.org/message-id/51bb1b6e.2070...@dunslane.net
It looks like everything is hard-coded to take the source and the
gcda, gcno files in the base directory, but these files lay in a src
directory with the proposed layout.

It may be better to base the .gcda file discovery on the OBJS
variables when using PGXS.

Please find attached a small patch that implements this. There is
probably a better way than the redundant rm $(gcda_files) / rm *.gcda
to cleanup the generated files.

With the attached patch, the following targets seem to have the same
behaviour as on the current HEAD, both on the whole tree and on
individual contrib modules:

- coverage-html
- clean
- coverage-clean
- clean-coverage

I noticed that make clean leaves gcda and gcov files on the current
HEAD, and this is no different with the given patch.

I also tested it against several pgxn extensions, and it seems to work fine.


coverage_pgxs.patch
Description: Binary data

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Extensions makefiles - coverage

2013-07-25 Thread Ronan Dunklau
Please ignore this comment:

 I noticed that make clean leaves gcda and gcov files on the current
 HEAD, and this is no different with the given patch.


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers