Re: [PATCH] Add tests for Bitmapset

Masahiko Sawada <sawada.mshk@gmail.com>

From: Masahiko Sawada <sawada.mshk@gmail.com>
To: "Burd, Greg" <greg@burd.me>
Cc: Nathan Bossart <nathandbossart@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-09-11T06:48:24Z
Lists: pgsql-hackers
On Mon, Sep 8, 2025 at 11:21 AM Burd, Greg <greg@burd.me> wrote:
>
>
> > On Sep 5, 2025, at 2:43 PM, Nathan Bossart <nathandbossart@gmail.com> wrote:
> >
> > On Fri, Sep 05, 2025 at 10:48:21AM -0400, Burd, Greg wrote:
> >> I looked at both radix tree and binary heap and how they use random sets when
> >> testing.  Binary heap uses it to create different random sets of numbers to
> >> use across multiple tests while radix tree has a single function that focuses
> >> on randomized data.  I decided not to add randomization into the tests of
> >> Bitmapset simply because I like avoiding non-deterministic behavior.  But in
> >> tests I guess that can be helpful finding future unknown corner cases.  I'm
> >> on the fence as to the value, your call.  :)
> >
> > I'm not too concerned about it.  We've lived without a dedicated test suite
> > for Bitmapset for a very long time, so any amount of test coverage is an
> > improvement.  Like you said, adding some randomization might be helpful for
> > finding weird bugs we wouldn't have thought to test.  And, given the many,
> > many machines that run the tests, IMHO it'd only help build even more
> > confidence in the code.  If my suggestion inspires you to update the patch,
> > great, but I'm fine with proceeding with what you already wrote, too.
>
> Nathan, thanks for considering the patch.  Honestly, I'm fine with it as is.
> We can revisit later if needed.  This does what I'd intended, test and document
> in code the API and implementation making future changes to that more
> transparent.

I appreciate your work on this. While I agree that adding more tests
to  bitmapset.c is a good idea, I'm concerned about the minimal
improvement in test coverage despite the addition of new test cases
(only three lines of code are newly covered). Apart from adding some
randomness to the tests we've discussed, given that we're implementing
a dedicated test module for bitmapset.c, I would expect to see a more
increase in test coverage.

Regards,

-- 
Masahiko Sawada
Amazon Web Services: https://aws.amazon.com



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