Обсуждение: Confusing TAP tests readme file

Поиск
Список
Период
Сортировка

Confusing TAP tests readme file

От
Ildar Musin
Дата:
Hi all,

I was checking out TAP tests documentation. And I found confusing this
part of src/test/perl/README file:

     my $ret = $node->psql('postgres', 'SELECT 1');
     is($ret, '1', 'SELECT 1 returns 1');

The returning value of psql() function is the exit code of the psql.
Hence this test will never pass since psql returns 0 if query was
successfully executed. Probably it was meant to be the safe_psql()
function instead which returns stdout:

     my $ret = $node->safe_psql('postgres', 'SELECT 1');
     is($ret, '1', 'SELECT 1 returns 1');

or else:

     my ($ret, $stdout, $stderr) =
         $node->psql('postgres', 'SELECT 1');
     is($stdout, '1', 'SELECT 1 returns 1');

The attached patch fixes this.

Regards,
Ildar Musin

--
Ildar Musin
i.musin@postgrespro.ru


Вложения

Re: Confusing TAP tests readme file

От
Michael Paquier
Дата:
On Mon, Jul 25, 2016 at 7:42 PM, Ildar Musin <i.musin@postgrespro.ru> wrote:
> I was checking out TAP tests documentation. And I found confusing this part
> of src/test/perl/README file:
>
>     my $ret = $node->psql('postgres', 'SELECT 1');
>     is($ret, '1', 'SELECT 1 returns 1');

Good catch.

> The returning value of psql() function is the exit code of the psql. Hence
> this test will never pass since psql returns 0 if query was successfully
> executed. Probably it was meant to be the safe_psql() function instead which
> returns stdout:
>
>     my $ret = $node->safe_psql('postgres', 'SELECT 1');
>     is($ret, '1', 'SELECT 1 returns 1');
>
> or else:
>
>     my ($ret, $stdout, $stderr) =
>         $node->psql('postgres', 'SELECT 1');
>     is($stdout, '1', 'SELECT 1 returns 1');
>
> The attached patch fixes this.

Just using psql_safe looks fine to me.
-- 
Michael



Re: Confusing TAP tests readme file

От
Fujii Masao
Дата:
On Mon, Jul 25, 2016 at 9:53 PM, Michael Paquier
<michael.paquier@gmail.com> wrote:
> On Mon, Jul 25, 2016 at 7:42 PM, Ildar Musin <i.musin@postgrespro.ru> wrote:
>> I was checking out TAP tests documentation. And I found confusing this part
>> of src/test/perl/README file:
>>
>>     my $ret = $node->psql('postgres', 'SELECT 1');
>>     is($ret, '1', 'SELECT 1 returns 1');
>
> Good catch.
>
>> The returning value of psql() function is the exit code of the psql. Hence
>> this test will never pass since psql returns 0 if query was successfully
>> executed. Probably it was meant to be the safe_psql() function instead which
>> returns stdout:
>>
>>     my $ret = $node->safe_psql('postgres', 'SELECT 1');
>>     is($ret, '1', 'SELECT 1 returns 1');
>>
>> or else:
>>
>>     my ($ret, $stdout, $stderr) =
>>         $node->psql('postgres', 'SELECT 1');
>>     is($stdout, '1', 'SELECT 1 returns 1');
>>
>> The attached patch fixes this.
>
> Just using psql_safe looks fine to me.

Pushed. Thanks!

Regards,

-- 
Fujii Masao