Re: Add TAP tests for backtrace functionality (was Re: Add test module for verifying backtrace functionality)

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Add TAP tests for backtrace functionality (was Re: Add test module for verifying backtrace functionality)
Date: 2024-05-12 11:46:29
Message-ID: 86ebc1d3-b1fc-4ad3-a976-2eb79d9bd424@eisentraut.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 16.03.24 05:25, Bharath Rupireddy wrote:
>>> Postgres has a good amount of code for dealing with backtraces - two
>>> GUCs backtrace_functions and backtrace_on_internal_error,
>>> errbacktrace; all of which use core function set_backtrace from
>>> elog.c. I've not seen this code being tested at all, see code coverage
>>> report - https://coverage.postgresql.org/src/backend/utils/error/elog.c.gcov.html.
>>>
>>> I think adding a simple test module (containing no .c files) with only
>>> TAP tests will help cover this code. I ended up having it as a
>>> separate module under src/test/modules/test_backtrace as I was not
>>> able to find an existing TAP file in src/test to add these tests. I'm
>>> able to verify the backtrace related code with the attached patch
>>> consistently. The TAP tests rely on the fact that the server emits
>>> text "BACKTRACE: " to server logs before logging the backtrace, and
>>> the backtrace contains the function name in which the error occurs.
>>> I've turned off query statement logging (set log_statement = none,
>>> log_min_error_statement = fatal) so that the tests get to see the
>>> functions only in the backtrace. Although the CF bot is happy with the
>>> attached patch https://github.com/BRupireddy2/postgres/tree/add_test_module_for_bcktrace_functionality_v1,
>>> there might be some more flakiness to it.
>>>
>>> Thoughts?
>>
>> Ran pgperltidy on the new TAP test file added. Please see the attached v2 patch.
>
> I've now moved the new TAP test file to src/test/modules/test_misc/t
> as opposed to a new test module to keep it simple. I was not sure why
> I hadn't done that in the first place.

Note that backtrace_on_internal_error has been removed, so this patch
will need to be adjusted for that.

I suggest you consider joining forces with thread [0] where a
replacement for backtrace_on_internal_error would be discussed. Having
some test coverage for whatever is being developed there might be useful.

[0]:
https://www.postgresql.org/message-id/flat/CAGECzQTpdujCEt2SH4DBwRLoDq4HJArGDaxJSsWX0G=tNnzaVA(at)mail(dot)gmail(dot)com

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2024-05-12 11:53:17 Re: Build the docs if there are changes in docs and don't run other tasks if the changes are only in docs
Previous Message Dmitry Dolgov 2024-05-12 11:38:55 Re: pg_stat_statements and "IN" conditions