tests: Improve afstest_UnlinkTestConfig cleanup
authorMarc Dionne <marc.dionne@your-file-system.com>
Wed, 3 Apr 2013 20:09:53 +0000 (16:09 -0400)
committerDerrick Brashear <shadow@your-file-system.com>
Tue, 28 May 2013 22:57:31 +0000 (15:57 -0700)
Make afstest_UnlinkTestConfig clean up and remove the specified
directory regardless of which files are present.  This means
the function no longer has to track the current state of which
files may be present as tests are added and modified.

A sanity check is added to prevent damage in case the function is
called for an inappropriate directory.

As before, no cleaning is done if the test is run outside of a
"make check".

Change-Id: Idd092040496aaa2566c8693496fefd7d6f247565
Reviewed-on: http://gerrit.openafs.org/9703
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>

tests/common/config.c

index faefc00..6a0e3e1 100644 (file)
@@ -121,14 +121,18 @@ fail:
 void
 afstest_UnlinkTestConfig(char *dir)
 {
+    DIR *dirp;
+    struct dirent *de;
+
+    /* Sanity check, only zap directories that look like ours */
+    if (!strstr(dir, "afs_"))
+       return;
     if (getenv("MAKECHECK") != NULL) {
-       unlinkConfigFile(dir, "KeyFile");
-       unlinkConfigFile(dir, "KeyFileExt");
-       unlinkConfigFile(dir, "CellServDB");
-       unlinkConfigFile(dir, "ThisCell");
-       unlinkConfigFile(dir, "UserList");
-       unlinkConfigFile(dir, "krb.conf");
-       unlinkConfigFile(dir, "krb.excl");
+       dirp = opendir(dir);
+       if (!dirp)
+           return;
+       while ((de = readdir(dirp)))
+           unlinkConfigFile(dir, de->d_name);
        rmdir(dir);
     }
 }