@@ -395,11 +395,27 @@ test "fstatat" {
395
395
// now repeat but using `fstatat` instead
396
396
const statat = try posix .fstatat (tmp .dir .fd , "file.txt" , posix .AT .SYMLINK_NOFOLLOW );
397
397
398
- // s390x-linux does not have nanosecond precision for fstat(), but it does for fstatat(). As a
399
- // result, comparing the two structures is doomed to fail.
400
- if (builtin .cpu .arch == .s390x and builtin .os .tag == .linux ) return error .SkipZigTest ;
401
-
402
- try expectEqual (stat , statat );
398
+ try expectEqual (stat .dev , statat .dev );
399
+ try expectEqual (stat .ino , statat .ino );
400
+ try expectEqual (stat .nlink , statat .nlink );
401
+ try expectEqual (stat .mode , statat .mode );
402
+ try expectEqual (stat .uid , statat .uid );
403
+ try expectEqual (stat .gid , statat .gid );
404
+ try expectEqual (stat .rdev , statat .rdev );
405
+ try expectEqual (stat .size , statat .size );
406
+ try expectEqual (stat .blksize , statat .blksize );
407
+
408
+ // The stat.blocks/statat.blocks count is managed by the filesystem and may
409
+ // change if the file is stored in a journal or "inline".
410
+ // try expectEqual(stat.blocks, statat.blocks);
411
+
412
+ // s390x-linux does not have nanosecond precision for fstat(), but it does for
413
+ // fstatat(). As a result, comparing the timestamps isn't worth the effort
414
+ if (! (builtin .cpu .arch == .s390x and builtin .os .tag == .linux )) {
415
+ try expectEqual (stat .atime (), statat .atime ());
416
+ try expectEqual (stat .mtime (), statat .mtime ());
417
+ try expectEqual (stat .ctime (), statat .ctime ());
418
+ }
403
419
}
404
420
405
421
test "readlinkat" {
0 commit comments