tests: cleanup temporary files
[openafs.git] / tests / auth / superuser-t.c
index a8ff0f5..03f67d9 100644 (file)
@@ -41,7 +41,8 @@
 #include <rx/rxkad.h>
 #include <rx/rx_identity.h>
 
-#include <tap/basic.h>
+#include <hcrypto/des.h>
+#include <tests/tap/basic.h>
 
 #include "test.h"
 #include "common.h"
@@ -364,49 +365,21 @@ STEST_NewWhoAmI(struct rx_call *call, char **result)
    return 0;
 }
 
-void
-startServer(char *configPath)
-{
-    struct rx_securityClass **classes;
-    afs_int32 numClasses;
-    int code;
-    struct rx_service *service;
-
-    globalDir = afsconf_Open(configPath);
-    if (globalDir == NULL) {
-       fprintf(stderr, "Server: Unable to open config directory\n");
-       exit(1);
-    }
-
-    code = rx_Init(htons(TEST_PORT));
-    if (code != 0) {
-       fprintf(stderr, "Server: Unable to initialise RX\n");
-        exit(1);
-    }
-
-    afsconf_BuildServerSecurityObjects(globalDir, &classes, &numClasses);
-    service = rx_NewService(0, TEST_SERVICE_ID, "test", classes, numClasses,
-                           TEST_ExecuteRequest);
-    if (service == NULL) {
-       fprintf(stderr, "Server: Unable to start to test service\n");
-       exit(1);
-    }
-
-    rx_StartServer(1);
-}
-
 int main(int argc, char **argv)
 {
     struct afsconf_dir *dir;
     char *dirname;
     int serverPid, clientPid, waited, stat;
     int code;
+    int ret = 0;
 
     /* Start the client and the server if requested */
 
     if (argc == 3 ) {
         if (strcmp(argv[1], "-server") == 0) {
-            startServer(argv[2]);
+           globalDir = afsconf_Open(argv[2]);
+           afstest_StartTestRPCService(argv[2], TEST_PORT, TEST_SERVICE_ID,
+                                       TEST_ExecuteRequest);
             exit(0);
         } else if (strcmp(argv[1], "-client") == 0) {
             startClient(argv[2]);
@@ -425,13 +398,15 @@ int main(int argc, char **argv)
     dir = afsconf_Open(dirname);
     if (dir == NULL) {
        fprintf(stderr, "Unable to configure directory.\n");
-       exit(1);
+       ret = 1;
+       goto out;
     }
 
     code = afstest_AddDESKeyFile(dir);
     if (code) {
        afs_com_err("superuser-t", code, "while adding new key\n");
-       exit(1);
+       ret = 1;
+       goto out;
     }
 
     printf("Config directory is %s\n", dirname);
@@ -440,13 +415,15 @@ int main(int argc, char **argv)
         /* Bang */
     } else if (serverPid == 0) {
         execl(argv[0], argv[0], "-server", dirname, NULL);
-        exit(1);
+       ret = 1;
+       goto out;
     }
     clientPid = fork();
     if (clientPid == -1) {
         kill(serverPid, SIGTERM);
         waitpid(serverPid, &stat, 0);
-        exit(1);
+       ret = 1;
+       goto out;
     } else if (clientPid == 0) {
         execl(argv[0], argv[0], "-client", dirname, NULL);
     }
@@ -462,9 +439,9 @@ int main(int argc, char **argv)
     }
     waitpid(0, &stat, 0);
 
+out:
     /* Client and server are both done, so cleanup after everything */
+    afstest_UnlinkTestConfig(dirname);
 
-    /* unlinkTestConfig(dirname); */
-
-    return 0;
+    return ret;
 }