Re: [PATCH] Add tests for Bitmapset

Greg Burd <greg@burd.me>

From: "Greg Burd" <greg@burd.me>
To: "Michael Paquier" <michael@paquier.xyz>, "Masahiko Sawada" <sawada.mshk@gmail.com>
Cc: "Nathan Bossart" <nathandbossart@gmail.com>, "PostgreSQL Hackers" <pgsql-hackers@lists.postgresql.org>
Date: 2025-09-13T14:23:36Z
Lists: pgsql-hackers
> On Sep 11, 2025, at 9:36 PM, Michael Paquier <michael@paquier.xyz> wrote:
> 
> On Thu, Sep 11, 2025 at 06:56:07AM -0400, Greg Burd wrote:
>> Just for reference I started this not to increase coverage, which is a good
>> goal just not the one I had.  I was reviewing the API and considering some
>> changes based on other work I've done.  Now that I see how deeply baked in
>> this code is I think that's unlikely.  Maybe something else distinct for
>> bitmaps over 64-bit space at some point will be useful.  I wrote this code
>> just to capture the API in test form.
> 
> How much does this measure in terms of numbers produced by
> coverage-html (see [1])?  The paths taken don't always matter as it
> can also be important to check combinations of code paths that are
> taken by other tests when checking after edge cases, but that would
> give an idea of gain vs extra runtime.  Not objecting to your patch,
> just being curious as I am not seeing any numbers posted on this
> thread.
> 
> [1]: https://www.postgresql.org/docs/devel/regress-coverage.html
> --
> Michael


Sawada-san, Michael,

Thank you both for the push to measure.  Before the patch as it stands now the
coverage for src/backend/nodes/bitmapset.c is 63.5% and after it is 66.5%.  Not
an amazing difference, but something.  I guess I expected this to be higher given
the degree to which this datatype is used.

I'll review the gaps in coverage and update the tests.  I'll look for a way to add
meaningful randomization.

-greg

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Minor fixes for test_bitmapset.c

  2. test_bitmapset: Improve random function

  3. Add mem_exceeded_count column to pg_stat_replication_slots.

  4. Tidy-up unneeded NULL parameter checks from SQL function

  5. Remove check for NULL in STRICT function

  6. Fixes for comments in test_bitmapset

  7. Minor fixups of test_bitmapset.c

  8. test_bitmapset: Simplify code of the module

  9. test_bitmapset: Expand more the test coverage

  10. Fix compiler warnings in test_bitmapset

  11. Add a test module for Bitmapset