mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-09 02:40:08 +00:00
f8466cc504
The tests are refactored to use a common skeleton that handles whether the underlying filesystem supports 64 bit time, skips 64 bit time tests when the TU only supports 32 bit, and also skip 64 bit time tests larger than 32 unsigned int (y2106) if the system does not support it (MIPSn64 on kernels without statx support). Checked on x86_64-linux-gnu and i686-linux-gnu. I also checked on a mips64el-linux-gnu with 4.1.4 and 5.10.0-4-5kc-malta kernel to verify if the y2106 are indeed skipped.
46 lines
1.4 KiB
C
46 lines
1.4 KiB
C
/* 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"
|