Re: On Judging the Value of Tests

From: Craig Ringer <craig(at)2ndquadrant(dot)com>
To: "Jankirk(dot)Vincent(dot), Jamison" <k(dot)jamison(at)jp(dot)fujitsu(dot)com>
Cc: "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: On Judging the Value of Tests
Date: 2017-11-22 01:31:32
Message-ID: CAMsr+YF1JDerigv7gM9b8Umut_=TU-cm0Ys+t+kU7oqqQAR+CQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 22 November 2017 at 08:43, Jankirk.Vincent., Jamison <
k(dot)jamison(at)jp(dot)fujitsu(dot)com> wrote:

> Dear PG Experts,
>
>
>
> I am entirely very new to PG development.
>
> Currently, I’m studying the test suites, and I feel the more experienced
> PG devs here could provide some insights on testing because I could not
> find concrete answers in the Postgres documentations.
>
>
>
> 1. How do you judge when a test suite is acceptable to be added to
> Postgres OSS source code? (How do you judge the value of a test suite?)
>

Make your argument for it, and see if others agree. There's no formal
process.

Inputs into the decision making process include:

* How much coverage of previously untested functionality it adds
* How much code coverage it adds
* How long the test takes to run, especially considering the slow buildfarm
boxes and development turnaround time
* Whether the test fits into one of the existing suites we run routinely,
or requires separate steps
* How much work will be required to maintain the test

> 3. Is there a standard way of writing tests on the source code that
> we should follow, like when should test be written in TAP/SQL/C formats and
> how long should it be?
>
> ① I know that TAP test is for client program tests, SQL for
> regression tests with sql queries, but there are instances also where tests
> are also written in C like isolation tests, etc. How do we best judge which
> language is preferred to use when writing tests for Postgres components?
> How long should a test be when proposing them to hackers page?
>

In general, prefer pg_regress if you can use it. Isolation tests for
concurrency issues. TAP tests if you can't write it with pg_regress or
isolation tester. Test modules only if you really must.

>
>
> 4. In the src/test/examples directory (which are all libpq tests),
> why is the “examples” directory not included when building postgres? (Why
> weren't these libpq tests added to src/interface/libpq/test or in
> regression test suite instead?) In short, how to know where (in which
> file/directory in source code) to put a test?
>
Dunno, sorry.

--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Craig Ringer 2017-11-22 01:35:00 Re: migrations (was Re: To all who wish to unsubscribe)
Previous Message Justin Pryzby 2017-11-22 01:25:41 Re: backends stuck in "startup"