]> granicus.if.org Git - p11-kit/commitdiff
test: Move some file and directory code into general test stuff
authorStef Walter <stef@thewalter.net>
Wed, 9 Oct 2013 19:39:42 +0000 (21:39 +0200)
committerStef Walter <stef@thewalter.net>
Tue, 8 Jul 2014 06:57:30 +0000 (08:57 +0200)
common/test.c
common/test.h
trust/tests/test-token.c
trust/tests/test-trust.c
trust/tests/test-trust.h

index 83e9644270b2a8c7dc86023bef88ea50d0d8ce93..a006f74f268eac2acf4456738a5328d6793dff5c 100644 (file)
@@ -42,6 +42,7 @@
 #include "path.h"
 
 #include <assert.h>
+#include <dirent.h>
 #include <errno.h>
 #include <setjmp.h>
 #include <stdarg.h>
@@ -339,6 +340,88 @@ p11_test_directory (const char *prefix)
        return directory;
 }
 
+void
+p11_test_file_write (const char *base,
+                     const char *name,
+                     const void *contents,
+                     size_t length)
+{
+       char *path = NULL;
+       FILE *f;
+
+       if (base) {
+               if (asprintf (&path, "%s/%s", base, name) < 0)
+                       assert_not_reached ();
+               name = path;
+       }
+
+       f = fopen (name, "wb");
+       if (f == NULL) {
+               printf ("# couldn't open file for writing: %s: %s\n", name, strerror (errno));
+               free (path);
+               assert_not_reached ();
+       }
+
+       if (fwrite (contents, 1, length, f) != length ||
+           fclose (f) != 0) {
+               printf ("# couldn't write to file: %s: %s\n", name, strerror (errno));
+               free (path);
+               assert_not_reached ();
+       }
+
+       free (path);
+}
+
+void
+p11_test_file_delete (const char *base,
+                      const char *name)
+{
+       char *path = NULL;
+
+       if (base) {
+               if (asprintf (&path, "%s/%s", base, name) < 0)
+                       assert_not_reached ();
+               name = path;
+       }
+
+       if (unlink (name) < 0) {
+               printf ("# Couldn't delete file: %s\n", name);
+               free (path);
+               assert_not_reached ();
+       }
+
+       free (path);
+}
+
+void
+p11_test_directory_delete (const char *directory)
+{
+       struct dirent *dp;
+       DIR *dir;
+
+       dir = opendir (directory);
+       if (dir == NULL) {
+               printf ("# Couldn't open directory: %s\n", directory);
+               assert_not_reached ();
+       }
+
+       while ((dp = readdir (dir)) != NULL) {
+               if (strcmp (dp->d_name, ".") == 0 ||
+                   strcmp (dp->d_name, "..") == 0)
+                       continue;
+
+               p11_test_file_delete (directory, dp->d_name);
+       }
+
+       closedir (dir);
+
+       if (rmdir (directory) < 0) {
+               printf ("# Couldn't remove directory: %s\n", directory);
+               assert_not_reached ();
+       }
+}
+
+
 #ifdef OS_UNIX
 
 static void
index c9f519a829f223533704e825fc3db2e342095fc3..2d9fa692c8f0cbcf2894c34e5467fa490586025a 100644 (file)
@@ -130,6 +130,16 @@ int         p11_test_run            (int argc,
 
 char *      p11_test_directory      (const char *prefix);
 
+void        p11_test_directory_delete  (const char *directory);
+
+void        p11_test_file_write     (const char *directory,
+                                     const char *name,
+                                     const void *contents,
+                                     size_t length);
+
+void        p11_test_file_delete    (const char *directory,
+                                     const char *name);
+
 #ifdef OS_UNIX
 
 char *      p11_test_copy_setgid    (const char *path);
index 965de76eceb3a4a769f3440961a7e3571cf0b524..f4367c3000acc6241d529b09653fb0dd4468fc64 100644 (file)
@@ -90,7 +90,7 @@ teardown (void *path)
 static void
 teardown_temp (void *unused)
 {
-       test_delete_directory (test.directory);
+       p11_test_directory_delete (test.directory);
        free (test.directory);
        teardown (test.directory);
 }
@@ -299,8 +299,8 @@ test_load_already (void)
        CK_OBJECT_HANDLE handle;
        int ret;
 
-       test_write_file (test.directory, "test.cer", test_cacert3_ca_der,
-                        sizeof (test_cacert3_ca_der));
+       p11_test_file_write (test.directory, "test.cer", test_cacert3_ca_der,
+                            sizeof (test_cacert3_ca_der));
 
        ret = p11_token_load (test.token);
        assert_num_eq (ret, 1);
@@ -327,14 +327,14 @@ test_load_unreadable (void)
 
        int ret;
 
-       test_write_file (test.directory, "test.cer", test_cacert3_ca_der,
-                        sizeof (test_cacert3_ca_der));
+       p11_test_file_write (test.directory, "test.cer", test_cacert3_ca_der,
+                            sizeof (test_cacert3_ca_der));
 
        ret = p11_token_load (test.token);
        assert_num_eq (ret, 1);
        assert (p11_index_find (test.index, cert, -1) != 0);
 
-       test_write_file (test.directory, "test.cer", "", 0);
+       p11_test_file_write (test.directory, "test.cer", "", 0);
 
        /* Have to wait to make sure changes are detected */
        p11_sleep_ms (1100);
@@ -356,14 +356,14 @@ test_load_gone (void)
 
        int ret;
 
-       test_write_file (test.directory, "test.cer", test_cacert3_ca_der,
-                        sizeof (test_cacert3_ca_der));
+       p11_test_file_write (test.directory, "test.cer", test_cacert3_ca_der,
+                            sizeof (test_cacert3_ca_der));
 
        ret = p11_token_load (test.token);
        assert_num_eq (ret, 1);
        assert (p11_index_find (test.index, cert, -1) != 0);
 
-       test_delete_file (test.directory, "test.cer");
+       p11_test_file_delete (test.directory, "test.cer");
 
        /* Have to wait to make sure changes are detected */
        p11_sleep_ms (1100);
@@ -392,8 +392,8 @@ test_load_found (void)
        /* Have to wait to make sure changes are detected */
        p11_sleep_ms (1100);
 
-       test_write_file (test.directory, "test.cer", test_cacert3_ca_der,
-                        sizeof (test_cacert3_ca_der));
+       p11_test_file_write (test.directory, "test.cer", test_cacert3_ca_der,
+                            sizeof (test_cacert3_ca_der));
 
        ret = p11_token_load (test.token);
        assert_num_eq (ret, 1);
@@ -421,8 +421,8 @@ test_reload_changed (void)
        int ret;
 
        /* Just one file */
-       test_write_file (test.directory, "test.cer", test_cacert3_ca_der,
-                        sizeof (test_cacert3_ca_der));
+       p11_test_file_write (test.directory, "test.cer", test_cacert3_ca_der,
+                            sizeof (test_cacert3_ca_der));
 
        ret = p11_token_load (test.token);
        assert_num_eq (ret, 1);
@@ -430,12 +430,12 @@ test_reload_changed (void)
        assert (handle != 0);
 
        /* Replace the file with verisign */
-       test_write_file (test.directory, "test.cer", verisign_v1_ca,
-                        sizeof (verisign_v1_ca));
+       p11_test_file_write (test.directory, "test.cer", verisign_v1_ca,
+                            sizeof (verisign_v1_ca));
 
        /* Add another file with cacert3, but not reloaded */
-       test_write_file (test.directory, "another.cer", test_cacert3_ca_der,
-                        sizeof (test_cacert3_ca_der));
+       p11_test_file_write (test.directory, "another.cer", test_cacert3_ca_der,
+                            sizeof (test_cacert3_ca_der));
 
        attrs = p11_index_lookup (test.index, handle);
        assert_ptr_not_null (attrs);
@@ -467,10 +467,10 @@ test_reload_gone (void)
        int ret;
 
        /* Just one file */
-       test_write_file (test.directory, "cacert3.cer", test_cacert3_ca_der,
-                        sizeof (test_cacert3_ca_der));
-       test_write_file (test.directory, "verisign.cer", verisign_v1_ca,
-                        sizeof (verisign_v1_ca));
+       p11_test_file_write (test.directory, "cacert3.cer", test_cacert3_ca_der,
+                            sizeof (test_cacert3_ca_der));
+       p11_test_file_write (test.directory, "verisign.cer", verisign_v1_ca,
+                            sizeof (verisign_v1_ca));
 
        ret = p11_token_load (test.token);
        assert_num_eq (ret, 2);
@@ -478,8 +478,8 @@ test_reload_gone (void)
        assert (handle != 0);
        assert (p11_index_find (test.index, verisign, -1) != 0);
 
-       test_delete_file (test.directory, "cacert3.cer");
-       test_delete_file (test.directory, "verisign.cer");
+       p11_test_file_delete (test.directory, "cacert3.cer");
+       p11_test_file_delete (test.directory, "verisign.cer");
 
        attrs = p11_index_lookup (test.index, handle);
        assert_ptr_not_null (attrs);
@@ -633,7 +633,7 @@ test_modify_multiple (void)
        int ret;
        CK_RV rv;
 
-       test_write_file (test.directory, "Test.p11-kit", test_data, strlen (test_data));
+       p11_test_file_write (test.directory, "Test.p11-kit", test_data, strlen (test_data));
 
        /* Reload now that we have this new file */
        p11_token_load (test.token);
@@ -673,7 +673,7 @@ test_remove_one (void)
        CK_OBJECT_HANDLE handle;
        CK_RV rv;
 
-       test_write_file (test.directory, "Test.p11-kit", test_data, strlen (test_data));
+       p11_test_file_write (test.directory, "Test.p11-kit", test_data, strlen (test_data));
        test_check_directory (test.directory, ("Test.p11-kit", NULL));
 
        /* Reload now that we have this new file */
@@ -730,7 +730,7 @@ test_remove_multiple (void)
        int ret;
        CK_RV rv;
 
-       test_write_file (test.directory, "Test.p11-kit", test_data, strlen (test_data));
+       p11_test_file_write (test.directory, "Test.p11-kit", test_data, strlen (test_data));
 
        /* Reload now that we have this new file */
        p11_token_load (test.token);
index 8c6910718e3680d6de60c0db16644344eb4bea51..20306e0c5c2cfe9702a164d1838e1e5e73f764fd 100644 (file)
@@ -329,78 +329,3 @@ test_check_directory_msg (const char *file,
 
        p11_dict_free (files);
 }
-
-void
-test_write_file_msg (const char *file,
-                     int line,
-                     const char *function,
-                     const char *directory,
-                     const char *name,
-                     const void *contents,
-                     size_t length)
-{
-       char *path;
-       FILE *f;
-
-       if (asprintf (&path, "%s/%s", directory, name) < 0)
-               assert_not_reached ();
-
-       f = fopen (path, "wb");
-       if (f == NULL) {
-               p11_test_fail (file, line, function, "Couldn't open file for writing: %s: %s",
-                              path, strerror (errno));
-       }
-
-       if (fwrite (contents, 1, length, f) != length ||
-           fclose (f) != 0) {
-               p11_test_fail (file, line, function, "Couldn't write file: %s: %s",
-                              path, strerror (errno));
-       }
-
-       free (path);
-}
-
-void
-test_delete_file_msg (const char *file,
-                      int line,
-                      const char *function,
-                      const char *directory,
-                      const char *name)
-{
-       char *path;
-
-       if (asprintf (&path, "%s/%s", directory, name) < 0)
-               assert_not_reached ();
-
-       if (unlink (path) < 0)
-               p11_test_fail (file, line, function, "Couldn't delete file: %s", path);
-
-       free (path);
-}
-
-void
-test_delete_directory_msg (const char *file,
-                           int line,
-                           const char *function,
-                           const char *directory)
-{
-       struct dirent *dp;
-       DIR *dir;
-
-       dir = opendir (directory);
-       if (dir == NULL)
-               p11_test_fail (file ,line, function, "Couldn't open directory: %s", directory);
-
-       while ((dp = readdir (dir)) != NULL) {
-               if (strcmp (dp->d_name, ".") == 0 ||
-                   strcmp (dp->d_name, "..") == 0)
-                       continue;
-
-               test_delete_file_msg (file, line, function, directory, dp->d_name);
-       }
-
-       closedir (dir);
-
-       if (rmdir (directory) < 0)
-               p11_test_fail (file, line, function, "Couldn't remove directory: %s", directory);
-}
index b5aab5b9a1b440f7871b6a305f6373e2632db20a..b70bbdbb6de4eb9a5bd2c6f9dda94f18ed9b3c69 100644 (file)
@@ -406,32 +406,4 @@ void       test_check_directory_msg     (const char *file,
        (test_check_directory_msg (__FILE__, __LINE__, __FUNCTION__, directory, \
                                   test_check_directory_files files))
 
-#define test_write_file(directory, name, data, length) \
-       (test_write_file_msg (__FILE__, __LINE__, __FUNCTION__, directory, name, data, length))
-
-void      test_write_file_msg           (const char *file,
-                                         int line,
-                                         const char *function,
-                                         const char *directory,
-                                         const char *name,
-                                         const void *contents,
-                                         size_t length);
-
-#define test_delete_file(directory, name) \
-       (test_delete_file_msg (__FILE__, __LINE__, __FUNCTION__, directory, name))
-
-void      test_delete_file_msg          (const char *file,
-                                         int line,
-                                         const char *function,
-                                         const char *directory,
-                                         const char *name);
-
-#define test_delete_directory(directory) \
-       (test_delete_directory_msg (__FILE__, __LINE__, __FUNCTION__, directory))
-
-void      test_delete_directory_msg     (const char *file,
-                                         int line,
-                                         const char *function,
-                                         const char *directory);
-
 #endif /* TEST_DATA_H_ */