/* Test of file timestamp modification functions.
- Copyright (C) 2009 Free Software Foundation, Inc.
+ Copyright (C) 2009-2013 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
#include "test-utimens-common.h"
-/* This file is designed to test both gl_futimens(a,NULL,b) and
+/* This file is designed to test both fdutimens(a,NULL,b) and
futimens(a,b). FUNC is the function to test. Assumes that BASE
and ASSERT are already defined. If PRINT, warn before skipping
tests with status 77. */
source. */
ASSERT (0 <= utimecmp (BASE "file", &st2, &st1, UTIMECMP_TRUNCATE_SOURCE));
if (check_ctime)
- ASSERT (st1.st_ctime < st2.st_ctime
- || (st1.st_ctime == st2.st_ctime
- && get_stat_ctime_ns (&st1) < get_stat_ctime_ns (&st2)));
+ ASSERT (ctime_compare (&st1, &st2) < 0);
{
/* On some NFS systems, the 'now' timestamp of creat or a NULL
timespec is determined by the server, but the 'now' timestamp
}
/* Invalid arguments. */
- errno = 0;
- ASSERT (func (AT_FDCWD, NULL) == -1);
- ASSERT (errno == EBADF);
+ {
+ errno = 0;
+ ASSERT (func (AT_FDCWD, NULL) == -1);
+ ASSERT (errno == EBADF);
+ }
+ {
+ errno = 0;
+ ASSERT (func (-1, NULL) == -1);
+ ASSERT (errno == EBADF);
+ }
+ {
+ close (99);
+ errno = 0;
+ ASSERT (func (99, NULL) == -1);
+ ASSERT (errno == EBADF);
+ }
+ {
+ int fd0 = dup (0);
+ ASSERT (0 <= fd0);
+ ASSERT (close (fd0) == 0);
+ errno = 0;
+ ASSERT (func (fd0, NULL) == -1);
+ ASSERT (errno == EBADF);
+ }
{
struct timespec ts[2] = { { Y2K, UTIME_BOGUS_POS }, { Y2K, 0 } };
errno = 0;
ASSERT (0 <= get_stat_mtime_ns (&st2));
ASSERT (get_stat_mtime_ns (&st2) < BILLION);
if (check_ctime)
- ASSERT (st1.st_ctime < st2.st_ctime
- || (st1.st_ctime == st2.st_ctime
- && get_stat_ctime_ns (&st1) < get_stat_ctime_ns (&st2)));
+ ASSERT (ctime_compare (&st1, &st2) < 0);
}
/* Play with UTIME_OMIT, UTIME_NOW. */
ASSERT (get_stat_atime_ns (&st3) <= BILLION / 2);
ASSERT (utimecmp (BASE "file", &st1, &st3, 0) <= 0);
if (check_ctime)
- ASSERT (st2.st_ctime < st3.st_ctime
- || (st2.st_ctime == st3.st_ctime
- && get_stat_ctime_ns (&st2) < get_stat_ctime_ns (&st3)));
+ ASSERT (ctime_compare (&st2, &st3) < 0);
nap ();
ts[0].tv_nsec = 0;
ts[1].tv_nsec = UTIME_OMIT;
ASSERT (st3.st_mtime == st2.st_mtime);
ASSERT (get_stat_mtime_ns (&st3) == get_stat_mtime_ns (&st2));
if (check_ctime)
- ASSERT (st3.st_ctime < st2.st_ctime
- || (st3.st_ctime == st2.st_ctime
- && get_stat_ctime_ns (&st3) < get_stat_ctime_ns (&st2)));
+ ASSERT (ctime_compare (&st3, &st2) < 0);
}
/* Cleanup. */