diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/unix/sysv/linux/Makefile | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tst-futimens.c | 45 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tst-utime.c | 45 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tst-utimensat-skeleton.c | 91 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tst-utimes.c | 47 |
5 files changed, 1 insertions, 229 deletions
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index 303fa297bc..fb155cf856 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -107,7 +107,7 @@ tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \ test-errno-linux tst-memfd_create tst-mlock2 tst-pkey \ tst-rlimit-infinity tst-ofdlocks tst-gettid tst-gettid-kill \ tst-tgkill tst-sysvsem-linux tst-sysvmsg-linux tst-sysvshm-linux \ - tst-timerfd tst-ppoll tst-futimens tst-utime tst-utimes \ + tst-timerfd tst-ppoll \ tst-clock_adjtime tst-adjtimex tst-ntp_adjtime tst-ntp_gettime \ tst-ntp_gettimex tst-sigtimedwait diff --git a/sysdeps/unix/sysv/linux/tst-futimens.c b/sysdeps/unix/sysv/linux/tst-futimens.c deleted file mode 100644 index ac7a980017..0000000000 --- a/sysdeps/unix/sysv/linux/tst-futimens.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Test for futimens - Copyright (C) 2021 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <https://www.gnu.org/licenses/>. */ - -#include <support/check.h> -#include <support/xunistd.h> -#include <sys/stat.h> - -static int -test_futimens_helper (const char *file, int fd, const struct timespec *ts) -{ - int result = futimens (fd, ts); - TEST_VERIFY_EXIT (result == 0); - - struct stat64 st; - xfstat (fd, &st); - - /* Check if seconds for atime match */ - TEST_COMPARE (st.st_atime, ts[0].tv_sec); - - /* Check if seconds for mtime match */ - TEST_COMPARE (st.st_mtime, ts[1].tv_sec); - - return 0; -} - -#define TEST_CALL(fname, fd, v1, v2) \ - test_futimens_helper (fname, fd, (struct timespec[]) { { v1, 0 }, \ - { v2, 0 } }) - -#include "tst-utimensat-skeleton.c" diff --git a/sysdeps/unix/sysv/linux/tst-utime.c b/sysdeps/unix/sysv/linux/tst-utime.c deleted file mode 100644 index c1c7e75a29..0000000000 --- a/sysdeps/unix/sysv/linux/tst-utime.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Test for utime. - Copyright (C) 2021 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <https://www.gnu.org/licenses/>. */ - -#include <utime.h> -#include <support/check.h> -#include <support/xunistd.h> -#include <sys/stat.h> - -static int -test_utime_helper (const char *file, int fd, const struct utimbuf *ut) -{ - int result = utime (file, ut); - TEST_VERIFY_EXIT (result == 0); - - struct stat64 st; - xfstat (fd, &st); - - /* Check if seconds for actime match */ - TEST_COMPARE (st.st_atime, ut->actime); - - /* Check if seconds for modtime match */ - TEST_COMPARE (st.st_mtime, ut->modtime); - - return 0; -} - -#define TEST_CALL(fname, fd, v1, v2) \ - test_utime_helper (fname, fd, &(struct utimbuf) { (v1), (v2) }) - -#include "tst-utimensat-skeleton.c" diff --git a/sysdeps/unix/sysv/linux/tst-utimensat-skeleton.c b/sysdeps/unix/sysv/linux/tst-utimensat-skeleton.c deleted file mode 100644 index 3589146db5..0000000000 --- a/sysdeps/unix/sysv/linux/tst-utimensat-skeleton.c +++ /dev/null @@ -1,91 +0,0 @@ -/* Common tests for utimensat routines. - Copyright (C) 2021 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <https://www.gnu.org/licenses/>. */ - -#include <array_length.h> -#include <inttypes.h> -#include <support/support.h> -#include <support/temp_file.h> -#include <stdio.h> - -static int temp_fd = -1; -static char *testfile; - -const static struct { - int64_t v1; - int64_t v2; -} tests[] = { - /* Y2038 threshold minus 2 and 1 seconds. */ - { 0x7FFFFFFELL, 0x7FFFFFFFLL }, - /* Y2038 threshold plus 1 and 2 seconds. */ - { 0x80000001LL, 0x80000002LL }, - /* Around Y2038 threshold. */ - { 0x7FFFFFFELL, 0x80000002LL }, - /* Y2106 threshold minus 2 and 1 seconds. */ - { 0x100000000LL, 0xFFFFFFFELL }, - /* Y2106 threshold plus 1 and 2 seconds. */ - { 0x100000001LL, 0x100000002LL }, - /* Around Y2106 threshold. */ - { 0xFFFFFFFELL, 0xFFFFFFFELL }, -}; - -#define PREPARE do_prepare -static void -do_prepare (int argc, char *argv[]) -{ - temp_fd = create_temp_file ("utime", &testfile); - TEST_VERIFY_EXIT (temp_fd > 0); -} - -static int -do_test (void) -{ - if (!support_path_support_time64 (testfile)) - FAIL_UNSUPPORTED ("File %s does not support 64-bit timestamps", - testfile); - - bool y2106 = support_path_support_time64_value (testfile, - 0x100000001LL, - 0x100000002LL); - - for (int i = 0; i < array_length (tests); i++) - { - /* Check if we run on port with 32 bit time_t size. */ - time_t t; - if (__builtin_add_overflow (tests[i].v1, 0, &t) - || __builtin_add_overflow (tests[i].v2, 0, &t)) - { - printf ("warning: skipping tests[%d] { %" PRIx64 ", %" PRIx64 " }: " - "time_t overflows\n", i, tests[i].v1, tests[i].v2); - continue; - } - - if (tests[i].v1 >= 0x100000000LL && !y2106) - { - printf ("warning: skipping tests[%d] { %" PRIx64 ", %" PRIx64 " }: " - "unsupported timestamp value\n", - i, tests[i].v1, tests[i].v2); - continue; - } - - TEST_CALL (testfile, temp_fd, tests[i].v1, tests[i].v2); - } - - return 0; -} - -#include <support/test-driver.c> diff --git a/sysdeps/unix/sysv/linux/tst-utimes.c b/sysdeps/unix/sysv/linux/tst-utimes.c deleted file mode 100644 index ba710508b7..0000000000 --- a/sysdeps/unix/sysv/linux/tst-utimes.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Test for utimes - Copyright (C) 2021 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <https://www.gnu.org/licenses/>. */ - -#include <support/check.h> -#include <support/xunistd.h> -#include <sys/stat.h> -#include <sys/time.h> -#include <time.h> - -static int -test_utimes_helper (const char *file, int fd, const struct timeval *tv) -{ - int result = utimes (file, tv); - TEST_VERIFY_EXIT (result == 0); - - struct stat64 st; - xfstat (fd, &st); - - /* Check if seconds for atime match */ - TEST_COMPARE (st.st_atime, tv[0].tv_sec); - - /* Check if seconds for mtime match */ - TEST_COMPARE (st.st_mtime, tv[1].tv_sec); - - return 0; -} - -#define TEST_CALL(fname, fd, v1, v2) \ - test_utimes_helper (fname, fd, (struct timeval[]) { { v1, 0 }, \ - { v2, 0 } }) - -#include "tst-utimensat-skeleton.c" |