Use a more portable way to get the version string in PostgresNode
authorAndrew Dunstan <andrew@dunslane.net>
Thu, 20 May 2021 12:03:15 +0000 (08:03 -0400)
committerAndrew Dunstan <andrew@dunslane.net>
Thu, 20 May 2021 12:07:08 +0000 (08:07 -0400)
Older versions of perl on Windows don't like the list form of pipe open,
and perlcritic doesn't like the string form of open, so we avoid both
with a simpler formulation using qx{}.

Per complaint from Amit Kapila.

src/test/perl/PostgresNode.pm

index f7088667a4ab9e39c4b75e4947bca91d4eb0df50..c09a735dae99b168ebf3ddb9b79bcb5999e67116 100644 (file)
@@ -1248,10 +1248,8 @@ sub _set_pg_version
    local %ENV = $self->_get_env();
 
    # We only want the version field
-   open my $fh, "-|", $pg_config, "--version"
-     or BAIL_OUT("$pg_config failed: $!");
-   my $version_line = <$fh>;
-   close $fh or die;
+   my $version_line = qx{$pg_config --version};
+   BAIL_OUT("$pg_config failed: $!") if $?;
 
    $self->{_pg_version} = PostgresVersion->new($version_line);