From 1066d442c2c023c81fbf7d561162ef7ada0e11e2 Mon Sep 17 00:00:00 2001 From: Collin Funk Date: Sat, 11 Oct 2025 21:55:31 -0700 Subject: [PATCH] tests: date: check that the hour format of the current locale is used MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * tests/date/date-locale-hour.sh: New file. * tests/local.mk (all_tests): Add the new test. Co-authored-by: Pádraig Brady --- tests/date/date-locale-hour.sh | 40 ++++++++++++++++++++++++++++++++++ tests/local.mk | 1 + 2 files changed, 41 insertions(+) create mode 100755 tests/date/date-locale-hour.sh diff --git a/tests/date/date-locale-hour.sh b/tests/date/date-locale-hour.sh new file mode 100755 index 0000000000..7e0d12019c --- /dev/null +++ b/tests/date/date-locale-hour.sh @@ -0,0 +1,40 @@ +#!/bin/sh +# Check that 'date' uses the 12-hour or 24-hour clock depending on the +# current locale. + +# Copyright (C) 2025 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src +print_ver_ date + +locale date_fmt || skip_ "'locale date_fmt' not supported on this system" + +# Fallback C locale should be supported. +for loc in "$LOCALE_FR_UTF8" 'en_US.UTF-8'; do + case $(LC_ALL="$loc" locale date_fmt) in + *%[Ilr]*) compare_time='1:00' ;; + *%[HkRT]*) compare_time='13:00' ;; + *) skip_ 'unrecognised locale hour format';; + esac + + case $(LC_ALL="$loc" date -d '2025-10-11T13:00') in + *"$compare_time"*) ;; + *) fail=1 ;; + esac +done + + +Exit $fail diff --git a/tests/local.mk b/tests/local.mk index 749f4caf5c..92b1192833 100644 --- a/tests/local.mk +++ b/tests/local.mk @@ -317,6 +317,7 @@ all_tests = \ tests/date/date-debug.sh \ tests/date/date-ethiopia.sh \ tests/date/date-iran.sh \ + tests/date/date-locale-hour.sh \ tests/date/date-sec.sh \ tests/date/date-thailand.sh \ tests/date/date-tz.sh \ -- 2.47.3