Re: PATCH: Unlogged tables re-initialization tests - Mailing list pgsql-hackers

From Peter Eisentraut
Subject Re: PATCH: Unlogged tables re-initialization tests
Date
Msg-id 591b7222-2548-8c9a-8340-dadef9791f20@2ndquadrant.com
Whole thread Raw
In response to Re: PATCH: Unlogged tables re-initialization tests  (David Steele <david@pgmasters.net>)
Responses Re: PATCH: Unlogged tables re-initialization tests
Re: PATCH: Unlogged tables re-initialization tests
List pgsql-hackers
This seems like a useful test.

On 3/5/18 12:35, David Steele wrote:
> +mkdir($tablespaceDir)
> +    or die "unable to mkdir \"$tablespaceDir\"";

Use BAIL_OUT instead of die in tests.

> +    $ts1UnloggedPath = $node->safe_psql('postgres',
> +    q{select pg_relation_filepath('ts1_unlogged')});

strange indentation

> +# Write forks to test that they are removed during recovery
> +$node->command_ok(['touch', "$pgdata/${baseUnloggedPath}_vm"],
> +    'touch vm fork in base');
> +$node->command_ok(['touch', "$pgdata/${baseUnloggedPath}_fsm"],
> +    'touch fsm fork in base');

These are not tests, just some prep work.  So they should not use
command_ok.

It would probably also be better to avoid the Unix-specific touch
command and instead use Perl code to open and write to the files.

> +# Check unlogged table in base
> +ok(-f "$pgdata/${baseUnloggedPath}_init", 'init fork in base');
> +ok(-f "$pgdata/$baseUnloggedPath", 'main fork in base');
> +ok(!-f "$pgdata/${baseUnloggedPath}_vm", 'vm fork not in base');
> +ok(!-f "$pgdata/${baseUnloggedPath}_fsm", 'fsm fork not in base');

These test names could be a bit more verbose and distinct, for example,
'main fork was recreated after restart'.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


pgsql-hackers by date:

Previous
From: "Daniel Verite"
Date:
Subject: Re: csv format for psql
Next
From: Tom Lane
Date:
Subject: Bogus use of canonicalize_qual