pkgsi686Linux.libredirect: do no fail on 64-bit inodes

Without the change `pkgsi686Linux.libredirect` tests
fail on `btrfs` where inodes are outside 32-bit range:

    $ nix build --no-link -f. -L pkgsi686Linux.libredirect
    ...
    libredirect> test: test.c:95: main: Assertion `stat(TESTPATH, &testsb) != -1' failed.

As libredirect` intends to test 32-bit syscall
interface let's just skip the overflows.
This commit is contained in:
Sergei Trofimovich
2025-01-28 22:54:06 +00:00
parent 64dad1282c
commit e0d1accdee
+6 -2
View File
@@ -92,11 +92,15 @@ int main(int argc, char *argv[])
assert(access(TESTPATH, X_OK) == 0);
assert(stat(TESTPATH, &testsb) != -1);
// On EOVERFLOW checks below: when TESTPATH lands on a filesystem
// that requires 64-bit inode values (like btrfs used for a while)
// it will fail on 32-bit systems.
assert(stat(TESTPATH, &testsb) != -1 || errno == EOVERFLOW);
#ifdef __GLIBC__
assert(stat64(TESTPATH, &testsb64) != -1);
#endif
assert(fstatat(123, TESTPATH, &testsb, 0) != -1);
assert(fstatat(123, TESTPATH, &testsb, 0) != -1 || errno == EOVERFLOW);
#ifdef __GLIBC__
assert(fstatat64(123, TESTPATH, &testsb64, 0) != -1);
#endif