summaryrefslogtreecommitdiff
path: root/deps/uv/test/test-fs.c
diff options
context:
space:
mode:
Diffstat (limited to 'deps/uv/test/test-fs.c')
-rw-r--r--deps/uv/test/test-fs.c34
1 files changed, 30 insertions, 4 deletions
diff --git a/deps/uv/test/test-fs.c b/deps/uv/test/test-fs.c
index 1cc1a7c064..06718f285e 100644
--- a/deps/uv/test/test-fs.c
+++ b/deps/uv/test/test-fs.c
@@ -29,7 +29,7 @@
/* FIXME we shouldn't need to branch in this file */
#if defined(__unix__) || defined(__POSIX__) || \
- defined(__APPLE__) || defined(_AIX)
+ defined(__APPLE__) || defined(_AIX) || defined(__MVS__)
#include <unistd.h> /* unlink, rmdir, etc. */
#else
# include <direct.h>
@@ -662,8 +662,8 @@ static void check_utime(const char* path, double atime, double mtime) {
ASSERT(req.result == 0);
s = &req.statbuf;
- ASSERT(s->st_atim.tv_sec == atime);
- ASSERT(s->st_mtim.tv_sec == mtime);
+ ASSERT(s->st_atim.tv_sec + (s->st_atim.tv_nsec / 1000000000.0) == atime);
+ ASSERT(s->st_mtim.tv_sec + (s->st_mtim.tv_nsec / 1000000000.0) == mtime);
uv_fs_req_cleanup(&req);
}
@@ -1134,7 +1134,15 @@ TEST_IMPL(fs_fstat) {
ASSERT(s->st_mtim.tv_nsec == 0);
ASSERT(s->st_ctim.tv_sec == t.st_ctime);
ASSERT(s->st_ctim.tv_nsec == 0);
+#elif defined(__ANDROID__)
+ ASSERT(s->st_atim.tv_sec == t.st_atime);
+ ASSERT(s->st_atim.tv_nsec == t.st_atimensec);
+ ASSERT(s->st_mtim.tv_sec == t.st_mtime);
+ ASSERT(s->st_mtim.tv_nsec == t.st_mtimensec);
+ ASSERT(s->st_ctim.tv_sec == t.st_ctime);
+ ASSERT(s->st_ctim.tv_nsec == t.st_ctimensec);
#elif defined(__sun) || \
+ defined(_GNU_SOURCE) || \
defined(_BSD_SOURCE) || \
defined(_SVID_SOURCE) || \
defined(_XOPEN_SOURCE) || \
@@ -1968,6 +1976,15 @@ TEST_IMPL(fs_utime) {
atime = mtime = 400497753; /* 1982-09-10 11:22:33 */
+ /*
+ * Test sub-second timestamps only on Windows (assuming NTFS). Some other
+ * platforms support sub-second timestamps, but that support is filesystem-
+ * dependent. Notably OS X (HFS Plus) does NOT support sub-second timestamps.
+ */
+#ifdef _WIN32
+ mtime += 0.444; /* 1982-09-10 11:22:33.444 */
+#endif
+
r = uv_fs_utime(NULL, &req, path, atime, mtime, NULL);
ASSERT(r == 0);
ASSERT(req.result == 0);
@@ -2055,6 +2072,15 @@ TEST_IMPL(fs_futime) {
atime = mtime = 400497753; /* 1982-09-10 11:22:33 */
+ /*
+ * Test sub-second timestamps only on Windows (assuming NTFS). Some other
+ * platforms support sub-second timestamps, but that support is filesystem-
+ * dependent. Notably OS X (HFS Plus) does NOT support sub-second timestamps.
+ */
+#ifdef _WIN32
+ mtime += 0.444; /* 1982-09-10 11:22:33.444 */
+#endif
+
r = uv_fs_open(NULL, &req, path, O_RDWR, 0, NULL);
ASSERT(r >= 0);
ASSERT(req.result >= 0);
@@ -2605,7 +2631,7 @@ TEST_IMPL(fs_write_alotof_bufs_with_offset) {
r = uv_fs_read(NULL, &read_req, open_req1.result,
iovs, iovcount, offset, NULL);
ASSERT(r >= 0);
- ASSERT(read_req.result == sizeof(test_buf) * iovcount);
+ ASSERT((size_t)read_req.result == sizeof(test_buf) * iovcount);
for (index = 0; index < iovcount; ++index)
ASSERT(strncmp(buffer + index * sizeof(test_buf),