pgsql: Tighten header pre-inclusions in headerscheck and cpluspluscheck

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Tighten header pre-inclusions in headerscheck and cpluspluscheck
Date: 2023-03-04 17:12:03
Message-ID: E1pYVQQ-001sxx-K5@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Tighten header pre-inclusions in headerscheck and cpluspluscheck.

We allow our header files to depend on the appropriate one of
postgres.h, postgres_fe.h, or c.h having already been included.
However, there are a few headers such as libpq-fe.h that are
meant to be used by client applications and therefore must
compile without any assumptions about previous inclusions.
These test scripts failed to consider that, which seems quite
hazardous since we might not immediately notice such a problem
otherwise. Hence, adjust these scripts to test relevant libpq
and ecpg headers with no prior inclusion.

While at it, we can also make an effort to actually use the
relevant one of postgres.h, postgres_fe.h, or c.h. I added
some rules that guess which one to use based on the first-level
src subdirectory, e.g. use postgres_fe.h under src/bin/.
These rules are hardly water-tight but they seem to work today,
and we can always refine them in the future.

These changes don't reveal any live problems today, which is good,
but they should make these scripts more able to catch future bugs.

Discussion: https://postgr.es/m/2488193.1677863247@sss.pgh.pa.us

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/f62975b2af6ace276a1d564a070b0aef479025af

Modified Files
--------------
src/tools/pginclude/cpluspluscheck | 32 +++++++++++++++++++++++++++++---
src/tools/pginclude/headerscheck | 28 +++++++++++++++++++++++++++-
2 files changed, 56 insertions(+), 4 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2023-03-04 18:32:44 pgsql: Avoid failure when altering state of partitioned foreign-key tri
Previous Message Tom Lane 2023-03-03 18:03:31 Re: pgsql: Harden new test case against force_parallel_mode = regress.