fs: fix uv__to_stat on BSD platforms
Fix the #ifdef logic to make sure all the available fields filled in the `stat` struct are correcly copied into the `uv_stat_t` struct. Before this change, the `n_sec` were being set to 0. PR-URL: https://github.com/libuv/libuv/pull/1152 Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
This commit is contained in:
parent
357b9a7733
commit
c02176a230
@ -813,6 +813,10 @@ static void uv__to_stat(struct stat* src, uv_stat_t* dst) {
|
||||
dst->st_flags = 0;
|
||||
dst->st_gen = 0;
|
||||
#elif !defined(_AIX) && ( \
|
||||
defined(__DragonFly__) || \
|
||||
defined(__FreeBSD__) || \
|
||||
defined(__OpenBSD__) || \
|
||||
defined(__NetBSD__) || \
|
||||
defined(_GNU_SOURCE) || \
|
||||
defined(_BSD_SOURCE) || \
|
||||
defined(_SVID_SOURCE) || \
|
||||
@ -824,9 +828,7 @@ static void uv__to_stat(struct stat* src, uv_stat_t* dst) {
|
||||
dst->st_mtim.tv_nsec = src->st_mtim.tv_nsec;
|
||||
dst->st_ctim.tv_sec = src->st_ctim.tv_sec;
|
||||
dst->st_ctim.tv_nsec = src->st_ctim.tv_nsec;
|
||||
# if defined(__DragonFly__) || \
|
||||
defined(__FreeBSD__) || \
|
||||
defined(__OpenBSD__) || \
|
||||
# if defined(__FreeBSD__) || \
|
||||
defined(__NetBSD__)
|
||||
dst->st_birthtim.tv_sec = src->st_birthtim.tv_sec;
|
||||
dst->st_birthtim.tv_nsec = src->st_birthtim.tv_nsec;
|
||||
|
||||
@ -1141,11 +1141,15 @@ TEST_IMPL(fs_fstat) {
|
||||
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) || \
|
||||
#elif defined(__sun) || \
|
||||
defined(__DragonFly__) || \
|
||||
defined(__FreeBSD__) || \
|
||||
defined(__OpenBSD__) || \
|
||||
defined(__NetBSD__) || \
|
||||
defined(_GNU_SOURCE) || \
|
||||
defined(_BSD_SOURCE) || \
|
||||
defined(_SVID_SOURCE) || \
|
||||
defined(_XOPEN_SOURCE) || \
|
||||
defined(_DEFAULT_SOURCE)
|
||||
ASSERT(s->st_atim.tv_sec == t.st_atim.tv_sec);
|
||||
ASSERT(s->st_atim.tv_nsec == t.st_atim.tv_nsec);
|
||||
@ -1153,10 +1157,8 @@ TEST_IMPL(fs_fstat) {
|
||||
ASSERT(s->st_mtim.tv_nsec == t.st_mtim.tv_nsec);
|
||||
ASSERT(s->st_ctim.tv_sec == t.st_ctim.tv_sec);
|
||||
ASSERT(s->st_ctim.tv_nsec == t.st_ctim.tv_nsec);
|
||||
# if defined(__DragonFly__) || \
|
||||
defined(__FreeBSD__) || \
|
||||
defined(__OpenBSD__) || \
|
||||
defined(__NetBSD__)
|
||||
# if defined(__FreeBSD__) || \
|
||||
defined(__NetBSD__)
|
||||
ASSERT(s->st_birthtim.tv_sec == t.st_birthtim.tv_sec);
|
||||
ASSERT(s->st_birthtim.tv_nsec == t.st_birthtim.tv_nsec);
|
||||
ASSERT(s->st_flags == t.st_flags);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user