Thread: Replace (stat())[7] in TAP tests with -s

Replace (stat())[7] in TAP tests with -s

From
"Drouvot, Bertrand"
Date:
Hi hackers,

Please find attached a tiny patch to $SUBJECT.

It:

  - provides more consistency to the way we get files size in TAP tests
  - seems more elegant that relying on a hardcoded result position

Regards,

-- 
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
Attachment

Re: Replace (stat())[7] in TAP tests with -s

From
Dagfinn Ilmari Mannsåker
Date:
"Drouvot, Bertrand" <bertranddrouvot.pg@gmail.com> writes:

> Hi hackers,
>
> Please find attached a tiny patch to $SUBJECT.
>
> It:
>
>  - provides more consistency to the way we get files size in TAP tests
>  - seems more elegant that relying on a hardcoded result position

I approve of removing use of the list form of stat, it's a horrible API.

If we weren't already using -s everywhere else, I would prefer
File::stat, which makes stat (in scalar context) return an object with
methods for the fields, so you'd do stat($file)->size.  It's included in
Perl core since 5.4, and we're already using it in several places for
other fields (mode and ino at least).

I see another use of stat array positions (for mtime) in
src/tools/msvc/Solution.pm, but that's on the chopping block, so not
much point in fixing.

- ilmari



Re: Replace (stat())[7] in TAP tests with -s

From
Michael Paquier
Date:
On Mon, Oct 02, 2023 at 12:44:59PM +0100, Dagfinn Ilmari Mannsåker wrote:
> I approve of removing use of the list form of stat, it's a horrible API.

Agreed, I've appied the suggestion to use -s, like we do anywhere
else.

> If we weren't already using -s everywhere else, I would prefer
> File::stat, which makes stat (in scalar context) return an object with
> methods for the fields, so you'd do stat($file)->size.  It's included in
> Perl core since 5.4, and we're already using it in several places for
> other fields (mode and ino at least).

Right, like in 017_shm.pl.  I didn't notice that.

> I see another use of stat array positions (for mtime) in
> src/tools/msvc/Solution.pm, but that's on the chopping block, so not
> much point in fixing.

The removal of this code depends on a few more things, hopefully it
will be able to get rid of it during this release cycle.
--
Michael

Attachment