Re: tweak to a few index tests to hits ambuildempty() routine.

a.kozhemyakin <a.kozhemyakin@postgrespro.ru>

From: a.kozhemyakin@postgrespro.ru
To: pgsql-hackers@lists.postgresql.org, Amul Sul <sulamul@gmail.com>
Date: 2022-09-14T06:46:32Z
Lists: pgsql-hackers
I still wonder, if assert doesn't catch why that place is marked as 
covered here?
https://coverage.postgresql.org/src/backend/access/gin/ginvacuum.c.gcov.html

a.kozhemyakin@postgrespro.ru писал 2022-09-12 15:47:
> Hi,
> 
> The commit 4fb5c794e5 eliminates the ginbulkdelete() test coverage
> provided by the commit 4c51a2d1e4 two years ago.
> With the following Assert added:
> @@ -571,7 +571,7 @@ ginbulkdelete(IndexVacuumInfo *info,
> IndexBulkDeleteResult *stats,
>         Buffer          buffer;
>         BlockNumber rootOfPostingTree[BLCKSZ / (sizeof(IndexTupleData)
> + sizeof(ItemId))];
>         uint32          nRoot;
> -
> +       Assert(0);
>         gvs.tmpCxt = AllocSetContextCreate(CurrentMemoryContext,
> 
>     "Gin vacuum temporary context",
> 
>     ALLOCSET_DEFAULT_SIZES);
> I have check-world passed successfully.
> 
> Amul Sul писал 2021-11-29 12:04:
>> Hi,
>> 
>> Attached patch is doing small changes to brin, gin & gist index tests
>> to use an unlogged table without changing the original intention of
>> those tests and that is able to hit ambuildempty() routing which is
>> otherwise not reachable by the current tests.



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Avoid loss of code coverage with unlogged-index test cases.

  2. Use --no-unlogged-table-data in t/027_stream_regress.pl.

  3. Cover brin/gin/gist/spgist ambuildempty routines in regression tests

  4. Improve test coverage of ginvacuum.c.