Commit cf47d283d1
Changed files (1)
lib
std
posix
lib/std/posix/test.zig
@@ -395,11 +395,27 @@ test "fstatat" {
// now repeat but using `fstatat` instead
const statat = try posix.fstatat(tmp.dir.fd, "file.txt", posix.AT.SYMLINK_NOFOLLOW);
- // s390x-linux does not have nanosecond precision for fstat(), but it does for fstatat(). As a
- // result, comparing the two structures is doomed to fail.
- if (builtin.cpu.arch == .s390x and builtin.os.tag == .linux) return error.SkipZigTest;
-
- try expectEqual(stat, statat);
+ try expectEqual(stat.dev, statat.dev);
+ try expectEqual(stat.ino, statat.ino);
+ try expectEqual(stat.nlink, statat.nlink);
+ try expectEqual(stat.mode, statat.mode);
+ try expectEqual(stat.uid, statat.uid);
+ try expectEqual(stat.gid, statat.gid);
+ try expectEqual(stat.rdev, statat.rdev);
+ try expectEqual(stat.size, statat.size);
+ try expectEqual(stat.blksize, statat.blksize);
+
+ // The stat.blocks/statat.blocks count is managed by the filesystem and may
+ // change if the file is stored in a journal or "inline".
+ // try expectEqual(stat.blocks, statat.blocks);
+
+ // s390x-linux does not have nanosecond precision for fstat(), but it does for
+ // fstatat(). As a result, comparing the timestamps isn't worth the effort
+ if (!(builtin.cpu.arch == .s390x and builtin.os.tag == .linux)) {
+ try expectEqual(stat.atime(), statat.atime());
+ try expectEqual(stat.mtime(), statat.mtime());
+ try expectEqual(stat.ctime(), statat.ctime());
+ }
}
test "readlinkat" {