Prototypes for venus/test
[openafs.git] / src / venus / test / fulltest.c
index f9475ce..dda9d9a 100644 (file)
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 #include <unistd.h>
 
-main(argc, argv)
-     int argc;
-     char **argv;
+int
+main(int argc, char **argv)
 {
     char *dirName;
     char tempName[1024];
@@ -29,7 +30,6 @@ main(argc, argv)
     int fd1;
     int code;
 #ifndef HAVE_GETCWD
-    extern char *getwd();
 #define getcwd(x,y) getwd(x)
 #endif
 
@@ -38,42 +38,64 @@ main(argc, argv)
        return printf("usage: fulltest <dir-to-screw-up>\n");
     dirName = argv[1];
     mkdir(dirName, 0777);
-    if (chdir(dirName) < 0)
-       {perror("chdir");return;}
+    if (chdir(dirName) < 0) {
+       perror("chdir");
+       return -1;
+    }
     if (getcwd(tempName, 1024) == 0) {
-       return printf("Could not get working dir.\n");
+       printf("Could not get working dir.\n");
+       return -1;
     }
     /* now create some files */
     fd1 = open("hi", O_CREAT | O_TRUNC | O_RDWR, 0666);
-    if (fd1 < 0)
-       {perror("open1");return;}
-    if (close(fd1) < 0)
-       {perror("close1");return;}
-    if (access("hi", 2) < 0)
-       return printf("New file can not be written (access)\n");
-    if (chmod("hi", 0741) < 0)
-       {perror("chmod1");return;}
-    if (stat("hi", &tstat) < 0)
-       {perror("stat1");return;}
-    if ((tstat.st_mode & 0777) != 0741)
-       return printf("chmod failed to set mode properly\n");
-
+    if (fd1 < 0) {
+       perror("open1");
+       return -1;
+    }
+    if (close(fd1) < 0) {
+       perror("close1");
+       return -1;
+    }
+    if (access("hi", 2) < 0) {
+       printf("New file can not be written (access)\n");
+       return -1;
+   }
+    if (chmod("hi", 0741) < 0) {
+       perror("chmod1");
+       return -1;
+    }
+    if (stat("hi", &tstat) < 0) {
+       perror("stat1");
+       return -1;
+    }
+    if ((tstat.st_mode & 0777) != 0741) {
+       printf("chmod failed to set mode properly\n");
+       return -1;
+    }
     fd1 = open("hi", O_RDWR);
-    if (fd1 < 0)
-       {perror("open2");return;}
-    if (fchmod(fd1, 0654) < 0)
-       {perror("fchmod");return;}
-    if (fstat(fd1, &tstat) < 0)
-       {perror("fstat1");return;}
-    if ((tstat.st_mode & 0777) != 0654)
-       return printf("fchmod failed to set mode properly\n");
+    if (fd1 < 0) {
+       perror("open2");
+       return -1;
+    }
+    if (fchmod(fd1, 0654) < 0) {
+       perror("fchmod");
+       return -1;
+    }
+    if (fstat(fd1, &tstat) < 0) {
+       perror("fstat1");
+       return -1;
+    }
+    if ((tstat.st_mode & 0777) != 0654) {
+       printf("fchmod failed to set mode properly\n");
+       return -1;
+    }
 #if 0
     /* These appear to be defunct routines;
      * I don't know what, if anything, replaced them */
     if (osi_ExclusiveLockNoBlock(fd1) < 0)
-       {perror("flock1");return;}
+       {perror("flock1");return -1;}
     if (osi_UnLock(fd1) < 0)
-       {perror("flock/unlock");return;}
+       {perror("flock/unlock");return -1;}
 #endif
 
 /* How about shared lock portability? */
@@ -85,86 +107,132 @@ main(argc, argv)
        fl.l_start = 0;
        fl.l_len = 0;
 
-       if (fcntl(fd1, F_SETLK, &fl) == -1)
-           {perror("fcntl1: RDLCK");return;}
+       if (fcntl(fd1, F_SETLK, &fl) == -1) {
+           perror("fcntl1: RDLCK");
+           return -1;
+       }
 
        fl.l_type = F_UNLCK;
        fl.l_whence = SEEK_SET;
        fl.l_start = 0;
        fl.l_len = 0;
 
-       if (fcntl(fd1, F_SETLK, &fl) == -1)
-           {perror("fcntl2: UNLCK");return;}
+       if (fcntl(fd1, F_SETLK, &fl) == -1) {
+           perror("fcntl2: UNLCK");
+           return -1;
+       }
 
        fl.l_type = F_WRLCK;
        fl.l_whence = SEEK_SET;
        fl.l_start = 0;
        fl.l_len = 0;
 
-       if (fcntl(fd1, F_SETLK, &fl) == -1)
-           {perror("fcntl3: WRLCK");return;}
+       if (fcntl(fd1, F_SETLK, &fl) == -1) {
+           perror("fcntl3: WRLCK");
+           return -1;
+       }
 
        fl.l_type = F_UNLCK;
        fl.l_whence = SEEK_SET;
        fl.l_start = 0;
        fl.l_len = 0;
 
-       if (fcntl(fd1, F_SETLK, &fl) == -1)
-           {perror("fcntl4: UNLCK");return;}
+       if (fcntl(fd1, F_SETLK, &fl) == -1) {
+           perror("fcntl4: UNLCK");
+           return -1;
+       }
     }
 
-    if (fsync(fd1) < 0)
-       {perror("fsync");return;}
-    if (write(fd1, "hi\n", 3) != 3)
-       {perror("write");return;}
-    if (ftruncate(fd1, 2) < 0)
-       {perror("ftruncate");return;}
-    if (close(fd1) < 0)
-       {perror("close2");return;}
+    if (fsync(fd1) < 0) {
+       perror("fsync");
+       return -1;
+    }
+    if (write(fd1, "hi\n", 3) != 3) {
+       perror("write");
+       return -1;
+    }
+    if (ftruncate(fd1, 2) < 0) {
+       perror("ftruncate");
+       return -1;
+    }
+    if (close(fd1) < 0) {
+       perror("close2");
+       return -1;
+    }
 
     fd1 = open("hi", O_RDONLY);
-    if (fd1 < 0)
-       {perror("open3");return;}
-    if (read(fd1, tempName, 100) != 2)
-       {perror("read2");return;}
-    if (close(fd1) < 0)
-       {perror("close3");return;}
-
-    if (link("hi", "bye") < 0)
-       {perror("link");return;}
-    if (stat("bye", &tstat) < 0)
-       {perror("link/stat");return;}
-
-    if (unlink("bye") < 0)
-       {perror("unlink");return;}
-
-    if (symlink("hi", "bye") < 0)
-       {perror("symlink");return;}
-    if (readlink("bye", tempName, 100) != 2)
-       {perror("readlink");return;}
-    if (strncmp(tempName, "hi", 2) != 0)
-       return printf("readlink contents");
-    if (mkdir("tdir", 0777) < 0)
-       {perror("mkdir");return;}
+    if (fd1 < 0) {
+       perror("open3");
+       return -1;
+    }
+    if (read(fd1, tempName, 100) != 2) {
+       perror("read2");
+       return -1;
+    }
+    if (close(fd1) < 0) {
+       perror("close3");
+       return -1;
+    }
+
+    if (link("hi", "bye") < 0) {
+       perror("link");
+       return -1;
+    }
+    if (stat("bye", &tstat) < 0) {
+       perror("link/stat");
+       return -1;
+    }
+
+    if (unlink("bye") < 0) {
+       perror("unlink");
+       return -1;
+    }
+
+    if (symlink("hi", "bye") < 0) {
+       perror("symlink");
+       return -1;
+    }
+    if (readlink("bye", tempName, 100) != 2) {
+       perror("readlink");
+       return -1;
+    }
+    if (strncmp(tempName, "hi", 2) != 0) {
+       printf("readlink contents");
+        return -1;
+    }
+    if (mkdir("tdir", 0777) < 0) {
+       perror("mkdir");
+       return -1;
+    }
     fd1 = open("tdir/fdsa", O_CREAT | O_TRUNC, 0777);
     close(fd1);
-    if (rmdir("tdir") == 0)
-       return printf("removed non-empty dir\n");
-    if (unlink("tdir/fdsa") < 0)
-       {perror("unlink tdir contents");return;}
-    if (rmdir("tdir") < 0)
-       {perror("rmdir");return;}
+    if (rmdir("tdir") == 0) {
+       printf("removed non-empty dir\n");
+       return -1;
+    }
+    if (unlink("tdir/fdsa") < 0) {
+       perror("unlink tdir contents");
+       return -1;
+    }
+    if (rmdir("tdir") < 0) {
+       perror("rmdir");
+       return -1;
+    }
 
     fd1 = open(".", O_RDONLY);
-    if (fd1 < 0)
-       {perror("open dot");return;}
+    if (fd1 < 0) {
+       perror("open dot");
+       return -1;
+    }
     if (read(fd1, tempName, 20) < 20)
        perror("read dir");
     close(fd1);
 
     fd1 = open("rotest", O_RDWR | O_CREAT, 0444);
-    if (fd1 < 0)
-       {perror("open ronly");return;}
+    if (fd1 < 0) {
+       perror("open ronly");
+       return -1;
+    }
     fchown(fd1, 1, -1);                /* don't check error code, may fail on Ultrix */
     code = write(fd1, "test", 4);
     if (code != 4) {
@@ -172,38 +240,60 @@ main(argc, argv)
        exit(1);
     }
     code = close(fd1);
-    if (code)
-       {perror("close ronly");return;}
+    if (code) {
+       perror("close ronly");
+       return -1;
+    }
     code = stat("rotest", &tstat);
-    if (code < 0)
-       {perror("stat ronly");return;}
+    if (code < 0) {
+       perror("stat ronly");
+       return -1;
+    }
     if (tstat.st_size != 4) {
        printf("rotest short close\n");
        exit(1);
     }
-    if (unlink("rotest") < 0)
-       {perror("rotest unlink");return;}
+    if (unlink("rotest") < 0) {
+       perror("rotest unlink");
+       return -1;
+    }
 
-    if (rename("hi", "bye") < 0)
-       {perror("rename1");return;}
-    if (stat("bye", &tstat) < 0)
-       {perror("rename target invisible\n");return;}
-    if (stat("hi", &tstat) == 0)
-       return printf("rename source still there\n");
+    if (rename("hi", "bye") < 0) {
+       perror("rename1");
+       return -1;
+    }
+    if (stat("bye", &tstat) < 0) {
+       perror("rename target invisible\n");
+       return -1;
+    }
+    if (stat("hi", &tstat) == 0) {
+       printf("rename source still there\n");
+       return -1;
+    }
 
 #ifndef        AFS_AIX_ENV
 /* No truncate(2) on aix so the following are excluded */
-    if (truncate("bye", 1) < 0)
-       {perror("truncate");return;}
-    if (stat("bye", &tstat) < 0)
-       {perror("truncate zapped");return;}
-    if (tstat.st_size != 1)
-       return printf("truncate failed\n");
+    if (truncate("bye", 1) < 0) {
+       perror("truncate");
+       return -1;
+    }
+    if (stat("bye", &tstat) < 0) {
+       perror("truncate zapped");
+       return -1;
+    }
+    if (tstat.st_size != 1) {
+       printf("truncate failed\n");
+       return -1;
+    }
 #endif
-    if (utimes("bye", tvp) < 0)
-       {perror("utimes");return;}
-    if (unlink("bye") < 0)
-       {perror("unlink bye");return;}
+    if (utimes("bye", tvp) < 0) {
+       perror("utimes");
+       return -1;
+    }
+    if (unlink("bye") < 0) {
+       perror("unlink bye");
+       return -1;
+    }
 
     /* now finish up */
     chdir("..");