Replace PGISOLATIONTIMEOUT with 2 * PG_TEST_TIMEOUT_DEFAULT.

Now that the more-generic variable exists, use it.

Discussion: https://postgr.es/m/20220219024136.GA3670392@rfd.leadboat.com
This commit is contained in:
Noah Misch 2022-07-01 18:27:50 -07:00
parent 4f4c72c2dc
commit c99c67fc43
2 changed files with 13 additions and 12 deletions

View File

@ -47,10 +47,10 @@ pg_isolation_regress is a tool similar to pg_regress, but instead of using
psql to execute a test, it uses isolationtester. It accepts all the same psql to execute a test, it uses isolationtester. It accepts all the same
command-line arguments as pg_regress. command-line arguments as pg_regress.
By default, isolationtester will wait at most 300 seconds (5 minutes) By default, isolationtester will wait at most 360 seconds (6 minutes)
for any one test step to complete. If you need to adjust this, set for any one test step to complete. If you need to adjust this, set
the environment variable PGISOLATIONTIMEOUT to the desired timeout the environment variable PG_TEST_TIMEOUT_DEFAULT to half the desired
in seconds. timeout in seconds.
Test specification Test specification
@ -138,10 +138,11 @@ Each step may contain commands that block until further action has been taken
deadlock). A test that uses this ability must manually specify valid deadlock). A test that uses this ability must manually specify valid
permutations, i.e. those that would not expect a blocked session to execute a permutations, i.e. those that would not expect a blocked session to execute a
command. If a test fails to follow that rule, isolationtester will cancel it command. If a test fails to follow that rule, isolationtester will cancel it
after PGISOLATIONTIMEOUT seconds. If the cancel doesn't work, isolationtester after 2 * PG_TEST_TIMEOUT_DEFAULT seconds. If the cancel doesn't work,
will exit uncleanly after a total of twice PGISOLATIONTIMEOUT. Testing isolationtester will exit uncleanly after a total of 4 *
invalid permutations should be avoided because they can make the isolation PG_TEST_TIMEOUT_DEFAULT. Testing invalid permutations should be avoided
tests take a very long time to run, and they serve no useful testing purpose. because they can make the isolation tests take a very long time to run, and
they serve no useful testing purpose.
Note that isolationtester recognizes that a command has blocked by looking Note that isolationtester recognizes that a command has blocked by looking
to see if it is shown as waiting in the pg_locks view; therefore, only to see if it is shown as waiting in the pg_locks view; therefore, only

View File

@ -46,7 +46,7 @@ static int nconns = 0;
static bool any_new_notice = false; static bool any_new_notice = false;
/* Maximum time to wait before giving up on a step (in usec) */ /* Maximum time to wait before giving up on a step (in usec) */
static int64 max_step_wait = 300 * USECS_PER_SEC; static int64 max_step_wait = 360 * USECS_PER_SEC;
static void check_testspec(TestSpec *testspec); static void check_testspec(TestSpec *testspec);
@ -128,12 +128,12 @@ main(int argc, char **argv)
conninfo = "dbname = postgres"; conninfo = "dbname = postgres";
/* /*
* If PGISOLATIONTIMEOUT is set in the environment, adopt its value (given * If PG_TEST_TIMEOUT_DEFAULT is set, adopt its value (given in seconds)
* in seconds) as the max time to wait for any one step to complete. * as half the max time to wait for any one step to complete.
*/ */
env_wait = getenv("PGISOLATIONTIMEOUT"); env_wait = getenv("PG_TEST_TIMEOUT_DEFAULT");
if (env_wait != NULL) if (env_wait != NULL)
max_step_wait = ((int64) atoi(env_wait)) * USECS_PER_SEC; max_step_wait = 2 * ((int64) atoi(env_wait)) * USECS_PER_SEC;
/* Read the test spec from stdin */ /* Read the test spec from stdin */
spec_yyparse(); spec_yyparse();