On Thu, Aug 7, 2025 at 1:45 PM Thomas Munro <thomas.munro@gmail.com> wrote:
> I like the C TAP test. PostgreSQL
> needs more of this.
I should add, I didn't look closely at that part since you said it's
not in scope for back-patching. I'd like to, though, later.
I wonder if you would be interested in this attempt at centralised
infrastructure for unit testing our C code over here. I'm not
suggesting it for your immediate problem, just noting the overlap:
https://www.postgresql.org/message-id/flat/CA%2BhUKG%2BajSQ_8eu2AogTncOnZ5me2D-Cn66iN_-wZnRjLN%2Bicg%40mail.gmail.com
Basically I would like to be able to dump easy-to-write files into the
tree that say stuff like this ↓ and have the build scripts find them,
build them and test them without all the module boilerplate stuff or a
running server (though that aspect is obviously not relevant for your
frontend case). Like you find in googletest or various xunit-style
systems in other projects, but integrated with our TAP universe (or
whatever replaces it if we escape from Perl). But I never got the
configure part of it working.
PG_BEGIN_TESTS();
...
PG_EXPECT_EQ(pg_preadv(fd, iov, 2, 11), 0);
PG_EXPECT_EQ(pg_pread(fd, buffer, 10, 0), 10);
PG_EXPECT_EQ_STR(buffer, "helloworld");
...
PG_END_TESTS();