[glibc] stdio-common: run AWK in the C locale in the printf format tests

Sam James via Glibc-cvs <[email protected]>
Newsgroups gmane.comp.lib.glibc.cvs
Message-ID <[email protected]>
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=866a70167b85903a02d4ccacb91afb8922702c14

commit 866a70167b85903a02d4ccacb91afb8922702c14
Author: Matt Turner <[email protected]>
Date:   Tue Aug 4 10:17:20 2026 -0400

    stdio-common: run AWK in the C locale in the printf format tests
    
    The program under test runs in the C locale, through the test program
    prefix, but AWK inherits whatever locale the build was started in.  They
    agree today only because the locale in use shares its decimal point with
    the C locale.
    
    It is also faster.  gawk takes a single byte path in its regular
    expression engine when MB_CUR_MAX is 1, and the script matches several
    expressions against every line.  For the %f conversion for double, the
    largest of these tests, as the median of five runs:
    
      x86_64, gawk 5.4.1    1.482s -> 1.248s
      x86_64, gawk 5.3.2    0.911s -> 0.703s
      alpha,  gawk 5.4.60    30.9s ->  26.6s
    
    Worth noting that gawk 5.4 is a good deal slower here than 5.3 was, at
    1.248s against 0.703s for the same input in the C locale, so these tests
    have become more expensive than they used to be.
    
    Reviewed-by: Adhemerval Zanella <[email protected]>

Diff:
---
 stdio-common/tst-printf-format-c.sh       | 2 +-
 stdio-common/tst-printf-format-char.sh    | 2 +-
 stdio-common/tst-printf-format-double.sh  | 2 +-
 stdio-common/tst-printf-format-int.sh     | 2 +-
 stdio-common/tst-printf-format-ldouble.sh | 2 +-
 stdio-common/tst-printf-format-llong.sh   | 2 +-
 stdio-common/tst-printf-format-long.sh    | 2 +-
 stdio-common/tst-printf-format-s.sh       | 2 +-
 stdio-common/tst-printf-format-short.sh   | 2 +-
 stdio-common/tst-printf-format-uchar.sh   | 2 +-
 stdio-common/tst-printf-format-uint.sh    | 2 +-
 stdio-common/tst-printf-format-ullong.sh  | 2 +-
 stdio-common/tst-printf-format-ulong.sh   | 2 +-
 stdio-common/tst-printf-format-ushort.sh  | 2 +-
 14 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/stdio-common/tst-printf-format-c.sh b/stdio-common/tst-printf-format-c.sh
index 825c50ec42..73d28c5607 100644
--- a/stdio-common/tst-printf-format-c.sh
+++ b/stdio-common/tst-printf-format-c.sh
@@ -23,7 +23,7 @@ xprintf=$1; shift
 common_objpfx=$1; shift
 test_program_prefix=$1; shift
 
-AWK=${AWK:-awk}
+AWK="env LC_ALL=C ${AWK:-awk}"
 
 echo Verifying c
 (set -o pipefail
diff --git a/stdio-common/tst-printf-format-char.sh b/stdio-common/tst-printf-format-char.sh
index 7867bdd62f..aa4d211126 100644
--- a/stdio-common/tst-printf-format-char.sh
+++ b/stdio-common/tst-printf-format-char.sh
@@ -23,7 +23,7 @@ xprintf=$1; shift
 common_objpfx=$1; shift
 test_program_prefix=$1; shift
 
-AWK=${AWK:-awk}
+AWK="env LC_ALL=C ${AWK:-awk}"
 
 status=0
 
diff --git a/stdio-common/tst-printf-format-double.sh b/stdio-common/tst-printf-format-double.sh
index 8157092dc4..051e4716c5 100644
--- a/stdio-common/tst-printf-format-double.sh
+++ b/stdio-common/tst-printf-format-double.sh
@@ -29,7 +29,7 @@ test_program_prefix=$1; shift
 # internally to process the conversion requested, so any bug in our code
 # would then be verified against itself, defeating the objective of doing
 # the verification against an independent implementation.
-AWK="${AWK:-awk} -M"
+AWK="env LC_ALL=C ${AWK:-awk} -M"
 
 status=77
 
diff --git a/stdio-common/tst-printf-format-int.sh b/stdio-common/tst-printf-format-int.sh
index 8542ff4150..e9dcbedc04 100644
--- a/stdio-common/tst-printf-format-int.sh
+++ b/stdio-common/tst-printf-format-int.sh
@@ -23,7 +23,7 @@ xprintf=$1; shift
 common_objpfx=$1; shift
 test_program_prefix=$1; shift
 
-AWK=${AWK:-awk}
+AWK="env LC_ALL=C ${AWK:-awk}"
 
 status=77
 
diff --git a/stdio-common/tst-printf-format-ldouble.sh b/stdio-common/tst-printf-format-ldouble.sh
index dbf78a98c6..7ee097ac0a 100644
--- a/stdio-common/tst-printf-format-ldouble.sh
+++ b/stdio-common/tst-printf-format-ldouble.sh
@@ -29,7 +29,7 @@ test_program_prefix=$1; shift
 # internally to process the conversion requested, so any bug in our code
 # would then be verified against itself, defeating the objective of doing
 # the verification against an independent implementation.
-AWK="${AWK:-awk} -M"
+AWK="env LC_ALL=C ${AWK:-awk} -M"
 
 status=77
 
diff --git a/stdio-common/tst-printf-format-llong.sh b/stdio-common/tst-printf-format-llong.sh
index e1f5252c9a..98a79660cc 100644
--- a/stdio-common/tst-printf-format-llong.sh
+++ b/stdio-common/tst-printf-format-llong.sh
@@ -23,7 +23,7 @@ xprintf=$1; shift
 common_objpfx=$1; shift
 test_program_prefix=$1; shift
 
-AWK=${AWK:-awk}
+AWK="env LC_ALL=C ${AWK:-awk}"
 
 status=77
 
diff --git a/stdio-common/tst-printf-format-long.sh b/stdio-common/tst-printf-format-long.sh
index 4b68ab1e04..89ac3302b8 100644
--- a/stdio-common/tst-printf-format-long.sh
+++ b/stdio-common/tst-printf-format-long.sh
@@ -23,7 +23,7 @@ xprintf=$1; shift
 common_objpfx=$1; shift
 test_program_prefix=$1; shift
 
-AWK=${AWK:-awk}
+AWK="env LC_ALL=C ${AWK:-awk}"
 
 status=77
 
diff --git a/stdio-common/tst-printf-format-s.sh b/stdio-common/tst-printf-format-s.sh
index 65aa0cb675..015c730609 100644
--- a/stdio-common/tst-printf-format-s.sh
+++ b/stdio-common/tst-printf-format-s.sh
@@ -23,7 +23,7 @@ xprintf=$1; shift
 common_objpfx=$1; shift
 test_program_prefix=$1; shift
 
-AWK=${AWK:-awk}
+AWK="env LC_ALL=C ${AWK:-awk}"
 
 echo Verifying s
 (set -o pipefail
diff --git a/stdio-common/tst-printf-format-short.sh b/stdio-common/tst-printf-format-short.sh
index 30357baa02..a7df8b8e6d 100644
--- a/stdio-common/tst-printf-format-short.sh
+++ b/stdio-common/tst-printf-format-short.sh
@@ -23,7 +23,7 @@ xprintf=$1; shift
 common_objpfx=$1; shift
 test_program_prefix=$1; shift
 
-AWK=${AWK:-awk}
+AWK="env LC_ALL=C ${AWK:-awk}"
 
 status=0
 
diff --git a/stdio-common/tst-printf-format-uchar.sh b/stdio-common/tst-printf-format-uchar.sh
index 08a6914b88..356de4217d 100644
--- a/stdio-common/tst-printf-format-uchar.sh
+++ b/stdio-common/tst-printf-format-uchar.sh
@@ -23,7 +23,7 @@ xprintf=$1; shift
 common_objpfx=$1; shift
 test_program_prefix=$1; shift
 
-AWK=${AWK:-awk}
+AWK="env LC_ALL=C ${AWK:-awk}"
 
 status=0
 
diff --git a/stdio-common/tst-printf-format-uint.sh b/stdio-common/tst-printf-format-uint.sh
index 0ba203ccda..b496047a49 100644
--- a/stdio-common/tst-printf-format-uint.sh
+++ b/stdio-common/tst-printf-format-uint.sh
@@ -23,7 +23,7 @@ xprintf=$1; shift
 common_objpfx=$1; shift
 test_program_prefix=$1; shift
 
-AWK=${AWK:-awk}
+AWK="env LC_ALL=C ${AWK:-awk}"
 
 status=77
 
diff --git a/stdio-common/tst-printf-format-ullong.sh b/stdio-common/tst-printf-format-ullong.sh
index 5b881ab924..f030f66a24 100644
--- a/stdio-common/tst-printf-format-ullong.sh
+++ b/stdio-common/tst-printf-format-ullong.sh
@@ -23,7 +23,7 @@ xprintf=$1; shift
 common_objpfx=$1; shift
 test_program_prefix=$1; shift
 
-AWK=${AWK:-awk}
+AWK="env LC_ALL=C ${AWK:-awk}"
 
 status=77
 
diff --git a/stdio-common/tst-printf-format-ulong.sh b/stdio-common/tst-printf-format-ulong.sh
index f6aeb8e3c0..7102575ed2 100644
--- a/stdio-common/tst-printf-format-ulong.sh
+++ b/stdio-common/tst-printf-format-ulong.sh
@@ -23,7 +23,7 @@ xprintf=$1; shift
 common_objpfx=$1; shift
 test_program_prefix=$1; shift
 
-AWK=${AWK:-awk}
+AWK="env LC_ALL=C ${AWK:-awk}"
 
 status=77
 
diff --git a/stdio-common/tst-printf-format-ushort.sh b/stdio-common/tst-printf-format-ushort.sh
index 07609128ab..5f612b5398 100644
--- a/stdio-common/tst-printf-format-ushort.sh
+++ b/stdio-common/tst-printf-format-ushort.sh
@@ -23,7 +23,7 @@ xprintf=$1; shift
 common_objpfx=$1; shift
 test_program_prefix=$1; shift
 
-AWK=${AWK:-awk}
+AWK="env LC_ALL=C ${AWK:-awk}"
 
 status=0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.