tests: Fail early on nonexistent file.
[mes.git] / lib / tests / io / 90-stat.c
index cc16648689edb6c18d1a90617a931acf03ef0d28..e63547d1d0f5d67e2730781567e0dac40ef0ccf4 100644 (file)
@@ -18,6 +18,7 @@
  * along with GNU Mes.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <mes/lib.h>
 #include <errno.h>
 #include <stdio.h>
 #include <string.h>
 
 struct stat
 {
-  unsigned long  st_dev;
-  unsigned long  st_ino;
+  unsigned long st_dev;
+  unsigned long st_ino;
   unsigned short st_mode;
   unsigned short st_nlink;
   unsigned short st_uid;
   unsigned short st_gid;
-  unsigned long  st_rdev;
-  long           st_size;
-  unsigned int   st_blksize;
-  unsigned int   st_blocks;
-  long           st_atime;
-  unsigned long  st_atime_usec;
-  long           st_mtime;
-  unsigned long  st_mtime_usec;
-  long           st_ctime;
-  unsigned long  st_ctime_usec;
-  unsigned int   __foo0;
-  unsigned int   __foo1;
+  unsigned long st_rdev;
+  long st_size;
+  unsigned int st_blksize;
+  unsigned int st_blocks;
+  long st_atime;
+  unsigned long st_atime_usec;
+  long st_mtime;
+  unsigned long st_mtime_usec;
+  long st_ctime;
+  unsigned long st_ctime_usec;
+  unsigned int __foo0;
+  unsigned int __foo1;
 };
 #endif
 
@@ -66,35 +67,66 @@ main ()
   // char *name = "boo";
   // errno = 0;
   // fprintf (stderr, "%s: %s\n", name, strerror (errno));
-  int fd = open ("COPYING", 0);
+  int fd = open ("../COPYING", 0);
 
   struct stat sbuf;
 
+  if (fd < 0)
+    return 2;
+
   int r = fstat (fd, &sbuf);
   if (r < 0)
     return 1;
 
-  eputs ("st_dev="); eputs (itoa (sbuf.st_dev)); eputs ("\n");
-  eputs ("st_ino="); eputs (itoa (sbuf.st_ino)); eputs ("\n");
-  eputs ("st_mode="); eputs (itoa (sbuf.st_mode)); eputs ("\n");
-  eputs ("st_nlink="); eputs (itoa (sbuf.st_nlink)); eputs ("\n");
-  eputs ("st_uid="); eputs (itoa (sbuf.st_uid)); eputs ("\n");
-  eputs ("st_gid="); eputs (itoa (sbuf.st_gid)); eputs ("\n");
-  eputs ("st_rdev="); eputs (itoa (sbuf.st_rdev)); eputs ("\n");
-  eputs ("st_size="); eputs (itoa (sbuf.st_size)); eputs ("\n");
+  eputs ("st_dev=");
+  eputs (itoa (sbuf.st_dev));
+  eputs ("\n");
+  eputs ("st_ino=");
+  eputs (itoa (sbuf.st_ino));
+  eputs ("\n");
+  eputs ("st_mode=");
+  eputs (itoa (sbuf.st_mode));
+  eputs ("\n");
+  eputs ("st_nlink=");
+  eputs (itoa (sbuf.st_nlink));
+  eputs ("\n");
+  eputs ("st_uid=");
+  eputs (itoa (sbuf.st_uid));
+  eputs ("\n");
+  eputs ("st_gid=");
+  eputs (itoa (sbuf.st_gid));
+  eputs ("\n");
+  eputs ("st_rdev=");
+  eputs (itoa (sbuf.st_rdev));
+  eputs ("\n");
+  eputs ("st_size=");
+  eputs (itoa (sbuf.st_size));
+  eputs ("\n");
 
-  eputs ("st_blksize="); eputs (itoa (sbuf.st_blksize)); eputs ("\n");
-  eputs ("st_blocks="); eputs (itoa (sbuf.st_blocks)); eputs ("\n");
+  eputs ("st_blksize=");
+  eputs (itoa (sbuf.st_blksize));
+  eputs ("\n");
+  eputs ("st_blocks=");
+  eputs (itoa (sbuf.st_blocks));
+  eputs ("\n");
 
-  eputs ("st_atime="); eputs (itoa (sbuf.st_atime)); eputs ("\n");
+  eputs ("st_atime=");
+  eputs (itoa (sbuf.st_atime));
+  eputs ("\n");
   //eputs ("st_atime_nsec="); eputs (itoa (sbuf.st_atime_nsec)); eputs ("\n");
 
-  eputs ("st_mtime="); eputs (itoa (sbuf.st_mtime)); eputs ("\n");
+  eputs ("st_mtime=");
+  eputs (itoa (sbuf.st_mtime));
+  eputs ("\n");
   //eputs ("st_mtime_nsec="); eputs (itoa (sbuf.st_mtime_nsec)); eputs ("\n");
 
-  eputs ("st_ctime="); eputs (itoa (sbuf.st_ctime)); eputs ("\n");
+  eputs ("st_ctime=");
+  eputs (itoa (sbuf.st_ctime));
+  eputs ("\n");
   //eputs ("st_ctime_nsec="); eputs (itoa (sbuf.st_ctime_nsec)); eputs ("\n");
 
-  eputs ("size:"); eputs (itoa (sizeof (struct stat))); eputs ("\n");
+  eputs ("size:");
+  eputs (itoa (sizeof (struct stat)));
+  eputs ("\n");
   return 0;
 }