Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Fix portability issue in TAP tests of psql for locales
authorMichael Paquier <michael@paquier.xyz>
Wed, 8 Jun 2022 02:24:06 +0000 (11:24 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 8 Jun 2022 02:24:06 +0000 (11:24 +0900)
Some locales use a comma as decimal separator (like Czech or French),
and psql's 001_basic.pl for \timing was not able to handle that
properly.  This fixes the matching regexes to be able to handle both
comma and dot as possible decimal separators, as per a suggestion from
Andrew Dunstan.

psql tests were the only place with such a portability issue
(check-world passed here with a forced LANG/LANGUAGE).  These tests are
new as of c0280bc, so there is no need for a backpatch.

Reported-by: Pavel Stehule
Discussion: https://postgr.es/m/CAFj8pRBz8iQmd2aOaCLvO-rJY6vZr-h6Q0qvV0J+yb78J7uiaA@mail.gmail.com

src/bin/psql/t/001_basic.pl

index d7e20f0ac617c2246358e31a51f442d0e9a87ace..44997467bf2b0ef9baddb86007e138a5145aaa5d 100644 (file)
@@ -85,15 +85,15 @@ psql_like(
    '\timing on
 SELECT 1',
    qr/^1$
-^Time: \d+\.\d\d\d ms/m,
+^Time: \d+[.,]\d\d\d ms/m,
    '\timing with successful query');
 
 # test \timing with query that fails
 {
    my ($ret, $stdout, $stderr) = $node->psql('postgres', "\\timing on\nSELECT error");
    isnt($ret, 0, '\timing with query error: query failed');
-   like($stdout, qr/^Time: \d+\.\d\d\d ms/m, '\timing with query error: timing output appears');
-   unlike($stdout, qr/^Time: 0\.000 ms/m, '\timing with query error: timing was updated');
+   like($stdout, qr/^Time: \d+[.,]\d\d\d ms/m, '\timing with query error: timing output appears');
+   unlike($stdout, qr/^Time: 0[.,]000 ms/m, '\timing with query error: timing was updated');
 }
 
 # test that ENCODING variable is set and that it is updated when