From 2c70f90798420c81eaf4a100d0fa5c6ab5771bcb Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 17 Apr 2023 08:44:51 -0700 Subject: Slightly nicer largefile, year2038 tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * modules/largefile-tests, modules/year2038-tests (Depends-on): Add assert-h, intprops. * tests/test-largefile.c, tests/test-year2038.c: Prefer compile-time to run-time tests. Don’t assume CHAR_BIT == 8. --- tests/test-largefile.c | 27 +++++++++++---------------- tests/test-year2038.c | 9 ++++----- 2 files changed, 15 insertions(+), 21 deletions(-) (limited to 'tests') diff --git a/tests/test-largefile.c b/tests/test-largefile.c index 71ee7e942d..ce5d8a0e2e 100644 --- a/tests/test-largefile.c +++ b/tests/test-largefile.c @@ -24,24 +24,19 @@ #include #include +#include "intprops.h" + +/* Check the range of off_t. + With MSVC, this test succeeds only thanks to the 'sys_types' module. */ +static_assert (TYPE_MAXIMUM (off_t) >> 31 >> 31 != 0); + +/* Check the size of the 'struct stat' field 'st_size'. + ,With MSVC, this test succeeds only thanks to the 'sys_stat' module. */ +static struct stat st; +static_assert (sizeof st.st_size == sizeof (off_t)); int main (void) { - int result = 0; - - /* Check the size of off_t. - With MSVC, this test succeeds only thanks to the 'sys_types' module. */ - if (sizeof (off_t) <= 4) - result |= 1; - - /* Check the size of the 'struct stat' field 'st_size'. - With MSVC, this test succeeds only thanks to the 'sys_stat' module. */ - { - struct stat st; - if (sizeof (st.st_size) <= 4) - result |= 2; - } - - return result; + return 0; } diff --git a/tests/test-year2038.c b/tests/test-year2038.c index 58c1058b13..0facf930ed 100644 --- a/tests/test-year2038.c +++ b/tests/test-year2038.c @@ -26,14 +26,13 @@ #include #include +#include "intprops.h" + +/* Check the range of time_t. */ +static_assert (TYPE_MAXIMUM (time_t) >> 31 != 0); int main (void) { - /* Check the size and sign of time_t. */ - if (sizeof (time_t) <= 4 && (time_t)-1 < 0) - /* time_t is only 32 bits wide and signed. */ - return 1; - return 0; } -- cgit v1.2.1