Re: [PATCH] Add tests for Bitmapset

Greg Burd <greg@burd.me>

From: Greg Burd <greg@burd.me>
To: Michael Paquier <michael@paquier.xyz>, David Rowley <dgrowleyml@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-10-01T11:56:07Z
Lists: pgsql-hackers
On Oct 1 2025, at 1:14 am, Michael Paquier <michael@paquier.xyz> wrote:

> On Wed, Oct 01, 2025 at 06:00:59PM +1300, David Rowley wrote:
>> I didn't look at the coverage report, but on thinking about it,
>> test_bitmapset.c's "PG_RETURN_NULL(); /* invalid input */" won't be
>> covered as I stripped out all the tests which purposefully pass
>> invalid input. You may not want it that way if you're keen to keep the
>> coverage of the test module high as well as bitmapset.c
> 
> Yes, that's something I was just going through, with a result pretty
> close to what you have sent, including the removal and replacement of
> most of tests that were specific to the test module.  The prev/next
> member coverage is still looking OK from here, though.
> 
> Thanks for the typos, I've missed these.
> --
> Michael

Michael, David,

Thank you. :)

The coverage[1] looks to be 100% for everything in bitmapset.c now and
98.6% of the test code[2] for Bitmapset -- more than enough and much
better than before.  I do like the cleanup/simplification that you two
jointly applied. I think it's easier to maintain and reason about and
looking at the final result I can see the logic in the simplified
approach.  I've learned a lot from this exercise not only about
Bitmapset and various other areas in the code but also the
approach/model for a task like this.  I'll keep that in mind going forward.

best.

-greg


[1] https://coverage.postgresql.org/src/backend/nodes/bitmapset.c.gcov.html
[2] https://coverage.postgresql.org/src/test/modules/test_bitmapset/test_bitmapset.c.gcov.html




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