Re: pgsql: Fix pattern matching logic for logs in TAP tests of pgbench

Fabien COELHO <coelho@cri.ensmp.fr>

From: Fabien COELHO <coelho@cri.ensmp.fr>
To: Andrew Dunstan <andrew@dunslane.net>, Michael Paquier <michael@paquier.xyz>
Cc: pgsql-committers@lists.postgresql.org, PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2021-06-26T06:47:34Z
Lists: pgsql-hackers

Attachments

Hello Andrew & Michaël,

My 0.02€:

> There's a whole lot wrong with this code. To start with, why is that
> unchecked eval there.

Yep. The idea was that other tests would go on being collected eg if the 
file is not found, but it should have been checked anyway.

> And why is it reading in log files on its own instead of using 
> TestLib::slurp_file, which, among other things, normalizes line endings?

Indeed.

However, if slurp_file fails it raises an exception and aborts the whole 
TAP unexpectedly, which is pretty unclean. So I'd suggest to keep the 
eval, as attached. I tested it by changing the file name so that the slurp 
fails.

> There's a very good chance that this latter is the issue. It only 
> affects msys which is why you didn't see an issue on MSVC. And also, why 
> does it carefully unlink the log files so that any trace of what's gone 
> wrong is deleted?

> Based on the little I've seen this file needs a serious code review.

Probably: My very old perl expertise is fading away because I'm not using 
it much these days. Cannot say I miss it:-)

-- 
Fabien.

Commits

  1. Cleanup some code related to pgbench log checks in TAP tests

  2. Add more debugging information with log checks in TAP tests of pgbench

  3. Fix pattern matching logic for logs in TAP tests of pgbench