]> granicus.if.org Git - strace/commitdiff
tests: skip stat32 test if struct stat is defined incorrectly
authorDmitry V. Levin <ldv@altlinux.org>
Wed, 17 Jun 2015 20:58:33 +0000 (20:58 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Wed, 17 Jun 2015 21:07:56 +0000 (21:07 +0000)
If stat.st_mode returned by syscall is 0, it means that the definition
of struct stat in <asm/stat.h> is incorrect.  This is the case e.g. on
mips n32 where the only available stat syscall is 64-bit but at the same
time struct stat defined by <asm/stat.h> is 32-bit.

* tests/stat.c (main) [NR_stat]: Return 77 if st_mode is 0.

tests/stat.c

index 2b040105fbb003529f3a66d3a2a21efbe5a41994..0dbbb721e295ff23f20b9bbdac80bae1976e60d0 100644 (file)
@@ -111,6 +111,8 @@ main(int ac, const char **av)
        if (sizeof(stb.st_size) > 4)
                return 77;
        assert(syscall(NR_stat, av[1], &stb) == 0);
+       if (!stb.st_mode)
+               return 77;
 #else
        assert(stat(av[1], &stb) == 0);
 #endif