diff options
Diffstat (limited to 'tools/tests/test-save.c')
-rw-r--r-- | tools/tests/test-save.c | 329 |
1 files changed, 136 insertions, 193 deletions
diff --git a/tools/tests/test-save.c b/tools/tests/test-save.c index b739c21..93af4f9 100644 --- a/tools/tests/test-save.c +++ b/tools/tests/test-save.c @@ -33,7 +33,8 @@ */ #include "config.h" -#include "CuTest.h" +#include "test.h" +#include "test-tools.h" #include "attrs.h" #include "compat.h" @@ -42,7 +43,6 @@ #include "message.h" #include "path.h" #include "save.h" -#include "test.h" #include <sys/stat.h> #include <sys/types.h> @@ -61,24 +61,23 @@ struct { } test; static void -setup (CuTest *tc) +setup (void *unused) { test.directory = p11_path_expand ("$TEMP/test-extract.XXXXXX"); if (!mkdtemp (test.directory)) - CuFail (tc, "mkdtemp() failed"); + assert_fail ("mkdtemp() failed", strerror (errno)); } static void -teardown (CuTest *tc) +teardown (void *unused) { if (rmdir (test.directory) < 0) - CuFail (tc, strerror (errno)); + assert_fail ("rmdir() failed", strerror (errno)); free (test.directory); } static void -write_zero_file (CuTest *tc, - const char *directory, +write_zero_file (const char *directory, const char *name) { char *filename; @@ -86,409 +85,365 @@ write_zero_file (CuTest *tc, int fd; if (asprintf (&filename, "%s/%s", directory, name) < 0) - CuFail (tc, "asprintf() failed"); + assert_not_reached (); fd = open (filename, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR); - CuAssertTrue (tc, fd != -1); + assert (fd != -1); res = close (fd); - CuAssertTrue (tc, res >= 0); + assert (res >= 0); free (filename); } static void -test_file_write (CuTest *tc) +test_file_write (void) { p11_save_file *file; char *filename; bool ret; - setup (tc); - if (asprintf (&filename, "%s/%s", test.directory, "extract-file") < 0) - CuFail (tc, "asprintf() failed"); + assert_not_reached (); file = p11_save_open_file (filename, 0); - CuAssertPtrNotNull (tc, file); + assert_ptr_not_null (file); ret = p11_save_write_and_finish (file, test_cacert3_ca_der, sizeof (test_cacert3_ca_der)); - CuAssertIntEquals (tc, true, ret); + assert_num_eq (true, ret); free (filename); - test_check_file (tc, test.directory, "extract-file", SRCDIR "/files/cacert3.der"); - - teardown (tc); + test_check_file (test.directory, "extract-file", SRCDIR "/files/cacert3.der"); } static void -test_file_exists (CuTest *tc) +test_file_exists (void) { p11_save_file *file; char *filename; - setup (tc); - if (asprintf (&filename, "%s/%s", test.directory, "extract-file") < 0) - CuFail (tc, "asprintf() failed"); + assert_not_reached (); - write_zero_file (tc, test.directory, "extract-file"); + write_zero_file (test.directory, "extract-file"); p11_message_quiet (); file = p11_save_open_file (filename, 0); - CuAssertTrue (tc, file == NULL); + assert (file == NULL); p11_message_loud (); unlink (filename); free (filename); - teardown (tc); } static void -test_file_bad_directory (CuTest *tc) +test_file_bad_directory (void) { p11_save_file *file; char *filename; - setup (tc); - if (asprintf (&filename, "/non-existent/%s/%s", test.directory, "extract-file") < 0) - CuFail (tc, "asprintf() failed"); + assert_not_reached (); p11_message_quiet (); file = p11_save_open_file (filename, 0); - CuAssertTrue (tc, file == NULL); + assert (file == NULL); p11_message_loud (); free (filename); - teardown (tc); } static void -test_file_overwrite (CuTest *tc) +test_file_overwrite (void) { p11_save_file *file; char *filename; bool ret; - setup (tc); - if (asprintf (&filename, "%s/%s", test.directory, "extract-file") < 0) - CuFail (tc, "asprintf() failed"); + assert_not_reached (); - write_zero_file (tc, test.directory, "extract-file"); + write_zero_file (test.directory, "extract-file"); file = p11_save_open_file (filename, P11_SAVE_OVERWRITE); - CuAssertPtrNotNull (tc, file); + assert_ptr_not_null (file); ret = p11_save_write_and_finish (file, test_cacert3_ca_der, sizeof (test_cacert3_ca_der)); - CuAssertIntEquals (tc, true, ret); + assert_num_eq (true, ret); free (filename); - test_check_file (tc, test.directory, "extract-file", SRCDIR "/files/cacert3.der"); - - teardown (tc); + test_check_file (test.directory, "extract-file", SRCDIR "/files/cacert3.der"); } static void -test_file_auto_empty (CuTest *tc) +test_file_auto_empty (void) { p11_save_file *file; char *filename; bool ret; - setup (tc); - if (asprintf (&filename, "%s/%s", test.directory, "extract-file") < 0) - CuFail (tc, "asprintf() failed"); + assert_not_reached (); file = p11_save_open_file (filename, 0); - CuAssertPtrNotNull (tc, file); + assert_ptr_not_null (file); ret = p11_save_write_and_finish (file, NULL, -1); - CuAssertIntEquals (tc, true, ret); + assert_num_eq (true, ret); free (filename); - test_check_file (tc, test.directory, "extract-file", SRCDIR "/files/empty-file"); - - teardown (tc); + test_check_file (test.directory, "extract-file", SRCDIR "/files/empty-file"); } static void -test_file_auto_length (CuTest *tc) +test_file_auto_length (void) { p11_save_file *file; char *filename; bool ret; - setup (tc); - if (asprintf (&filename, "%s/%s", test.directory, "extract-file") < 0) - CuFail (tc, "asprintf() failed"); + assert_not_reached (); file = p11_save_open_file (filename, 0); - CuAssertPtrNotNull (tc, file); + assert_ptr_not_null (file); ret = p11_save_write_and_finish (file, "The simple string is hairy", -1); - CuAssertIntEquals (tc, true, ret); + assert_num_eq (true, ret); free (filename); - test_check_file (tc, test.directory, "extract-file", SRCDIR "/files/simple-string"); - - teardown (tc); + test_check_file (test.directory, "extract-file", SRCDIR "/files/simple-string"); } static void -test_write_with_null (CuTest *tc) +test_write_with_null (void) { bool ret; ret = p11_save_write (NULL, "test", 4); - CuAssertIntEquals (tc, false, ret); + assert_num_eq (false, ret); } static void -test_write_and_finish_with_null (CuTest *tc) +test_write_and_finish_with_null (void) { bool ret; ret = p11_save_write_and_finish (NULL, "test", 4); - CuAssertIntEquals (tc, false, ret); + assert_num_eq (false, ret); } static void -test_file_abort (CuTest *tc) +test_file_abort (void) { struct stat st; p11_save_file *file; char *filename; bool ret; - setup (tc); - if (asprintf (&filename, "%s/%s", test.directory, "extract-file") < 0) - CuFail (tc, "asprintf() failed"); + assert_not_reached (); file = p11_save_open_file (filename, 0); - CuAssertPtrNotNull (tc, file); + assert_ptr_not_null (file); ret = p11_save_finish_file (file, false); - CuAssertIntEquals (tc, true, ret); + assert_num_eq (true, ret); if (stat (filename, &st) >= 0 || errno != ENOENT) - CuFail (tc, "file should not exist"); + assert_fail ("file should not exist", filename); free (filename); - - teardown (tc); } static void -test_directory_empty (CuTest *tc) +test_directory_empty (void) { p11_save_dir *dir; char *subdir; bool ret; - setup (tc); - if (asprintf (&subdir, "%s/%s", test.directory, "extract-dir") < 0) - CuFail (tc, "asprintf() failed"); + assert_not_reached (); dir = p11_save_open_directory (subdir, 0); - CuAssertPtrNotNull (tc, dir); + assert_ptr_not_null (dir); ret = p11_save_finish_directory (dir, true); - CuAssertIntEquals (tc, true, ret); + assert_num_eq (true, ret); - test_check_directory (tc, subdir, (NULL, NULL)); + test_check_directory (subdir, (NULL, NULL)); - CuAssertTrue (tc, rmdir (subdir) >= 0); + assert (rmdir (subdir) >= 0); free (subdir); - - teardown (tc); } static void -test_directory_files (CuTest *tc) +test_directory_files (void) { const char *filename; p11_save_dir *dir; char *subdir; bool ret; - setup (tc); - if (asprintf (&subdir, "%s/%s", test.directory, "extract-dir") < 0) - CuFail (tc, "asprintf() failed"); + assert_not_reached (); dir = p11_save_open_directory (subdir, 0); - CuAssertPtrNotNull (tc, dir); + assert_ptr_not_null (dir); ret = p11_save_write_and_finish (p11_save_open_file_in (dir, "blah", ".cer", &filename), test_cacert3_ca_der, sizeof (test_cacert3_ca_der)); - CuAssertIntEquals (tc, true, ret); - CuAssertStrEquals (tc, "blah.cer", filename); + assert_num_eq (true, ret); + assert_str_eq ("blah.cer", filename); ret = p11_save_write_and_finish (p11_save_open_file_in (dir, "file", ".txt", &filename), test_text, strlen (test_text)); - CuAssertIntEquals (tc, true, ret); - CuAssertStrEquals (tc, "file.txt", filename); + assert_num_eq (true, ret); + assert_str_eq ("file.txt", filename); #ifdef OS_UNIX ret = p11_save_symlink_in (dir, "link", ".ext", "/the/destination"); - CuAssertIntEquals (tc, true, ret); + assert_num_eq (true, ret); #endif ret = p11_save_finish_directory (dir, true); - CuAssertIntEquals (tc, true, ret); + assert_num_eq (true, ret); - test_check_directory (tc, subdir, ("blah.cer", "file.txt", + test_check_directory (subdir, ("blah.cer", "file.txt", #ifdef OS_UNIX "link.ext", #endif NULL)); - test_check_file (tc, subdir, "blah.cer", SRCDIR "/files/cacert3.der"); - test_check_data (tc, subdir, "file.txt", test_text, strlen (test_text)); + test_check_file (subdir, "blah.cer", SRCDIR "/files/cacert3.der"); + test_check_data (subdir, "file.txt", test_text, strlen (test_text)); #ifdef OS_UNIX - test_check_symlink (tc, subdir, "link.ext", "/the/destination"); + test_check_symlink (subdir, "link.ext", "/the/destination"); #endif - CuAssertTrue (tc, rmdir (subdir) >= 0); + assert (rmdir (subdir) >= 0); free (subdir); - - teardown (tc); } static void -test_directory_dups (CuTest *tc) +test_directory_dups (void) { const char *filename; p11_save_dir *dir; char *subdir; bool ret; - setup (tc); - if (asprintf (&subdir, "%s/%s", test.directory, "extract-dir") < 0) - CuFail (tc, "asprintf() failed"); + assert_not_reached (); dir = p11_save_open_directory (subdir, 0); - CuAssertPtrNotNull (tc, dir); + assert_ptr_not_null (dir); ret = p11_save_write_and_finish (p11_save_open_file_in (dir, "file", ".txt", &filename), test_text, 5); - CuAssertIntEquals (tc, true, ret); - CuAssertStrEquals (tc, "file.txt", filename); + assert_num_eq (true, ret); + assert_str_eq ("file.txt", filename); ret = p11_save_write_and_finish (p11_save_open_file_in (dir, "file", ".txt", &filename), test_text, 10); - CuAssertIntEquals (tc, true, ret); - CuAssertStrEquals (tc, "file.1.txt", filename); + assert_num_eq (true, ret); + assert_str_eq ("file.1.txt", filename); ret = p11_save_write_and_finish (p11_save_open_file_in (dir, "file", ".txt", NULL), test_text, 15); - CuAssertIntEquals (tc, true, ret); + assert_num_eq (true, ret); ret = p11_save_write_and_finish (p11_save_open_file_in (dir, "no-ext", NULL, NULL), test_text, 8); - CuAssertIntEquals (tc, true, ret); + assert_num_eq (true, ret); ret = p11_save_write_and_finish (p11_save_open_file_in (dir, "no-ext", NULL, NULL), test_text, 16); - CuAssertIntEquals (tc, true, ret); + assert_num_eq (true, ret); ret = p11_save_write_and_finish (p11_save_open_file_in (dir, "with-num", ".0", NULL), test_text, 14); - CuAssertIntEquals (tc, true, ret); + assert_num_eq (true, ret); ret = p11_save_write_and_finish (p11_save_open_file_in (dir, "with-num", ".0", NULL), test_text, 15); - CuAssertIntEquals (tc, true, ret); + assert_num_eq (true, ret); #ifdef OS_UNIX ret = p11_save_symlink_in (dir, "link", ".0", "/destination1"); - CuAssertIntEquals (tc, true, ret); + assert_num_eq (true, ret); ret = p11_save_symlink_in (dir, "link", ".0", "/destination2"); - CuAssertIntEquals (tc, true, ret); + assert_num_eq (true, ret); #endif ret = p11_save_finish_directory (dir, true); - CuAssertIntEquals (tc, true, ret); + assert_num_eq (true, ret); - test_check_directory (tc, subdir, ("file.txt", "file.1.txt", "file.2.txt", + test_check_directory (subdir, ("file.txt", "file.1.txt", "file.2.txt", "no-ext", "no-ext.1", "with-num.0", "with-num.1", #ifdef OS_UNIX "link.0", "link.1", #endif NULL)); - test_check_data (tc, subdir, "file.txt", test_text, 5); - test_check_data (tc, subdir, "file.1.txt", test_text, 10); - test_check_data (tc, subdir, "file.2.txt", test_text, 15); - test_check_data (tc, subdir, "no-ext", test_text, 8); - test_check_data (tc, subdir, "no-ext.1", test_text, 16); - test_check_data (tc, subdir, "with-num.0", test_text, 14); - test_check_data (tc, subdir, "with-num.1", test_text, 15); + test_check_data (subdir, "file.txt", test_text, 5); + test_check_data (subdir, "file.1.txt", test_text, 10); + test_check_data (subdir, "file.2.txt", test_text, 15); + test_check_data (subdir, "no-ext", test_text, 8); + test_check_data (subdir, "no-ext.1", test_text, 16); + test_check_data (subdir, "with-num.0", test_text, 14); + test_check_data (subdir, "with-num.1", test_text, 15); #ifdef OS_UNIX - test_check_symlink (tc, subdir, "link.0", "/destination1"); - test_check_symlink (tc, subdir, "link.1", "/destination2"); + test_check_symlink (subdir, "link.0", "/destination1"); + test_check_symlink (subdir, "link.1", "/destination2"); #endif - CuAssertTrue (tc, rmdir (subdir) >= 0); + assert (rmdir (subdir) >= 0); free (subdir); - - teardown (tc); } static void -test_directory_exists (CuTest *tc) +test_directory_exists (void) { p11_save_dir *dir; char *subdir; - setup (tc); - if (asprintf (&subdir, "%s/%s", test.directory, "extract-dir") < 0) - CuFail (tc, "asprintf() failed"); + assert_not_reached (); #ifdef OS_UNIX if (mkdir (subdir, S_IRWXU) < 0) #else if (mkdir (subdir) < 0) #endif - CuFail (tc, "mkdir() failed"); + assert_fail ("mkdir() failed", subdir); p11_message_quiet (); dir = p11_save_open_directory (subdir, 0); - CuAssertPtrEquals (tc, NULL, dir); + assert_ptr_eq (NULL, dir); p11_message_loud (); rmdir (subdir); free (subdir); - - teardown (tc); } static void -test_directory_overwrite (CuTest *tc) +test_directory_overwrite (void) { const char *filename; p11_save_dir *dir; char *subdir; bool ret; - setup (tc); - if (asprintf (&subdir, "%s/%s", test.directory, "extract-dir") < 0) - CuFail (tc, "asprintf() failed"); + assert_not_reached (); /* Some initial files into this directory, which get overwritten */ dir = p11_save_open_directory (subdir, 0); @@ -496,74 +451,62 @@ test_directory_overwrite (CuTest *tc) p11_save_write_and_finish (p11_save_open_file_in (dir, "another-file", NULL, NULL), "", 0) && p11_save_write_and_finish (p11_save_open_file_in (dir, "third-file", NULL, NULL), "", 0) && p11_save_finish_directory (dir, true); - CuAssertTrue (tc, ret && dir); + assert (ret && dir); /* Now the actual test, using the same directory */ dir = p11_save_open_directory (subdir, P11_SAVE_OVERWRITE); - CuAssertPtrNotNull (tc, dir); + assert_ptr_not_null (dir); ret = p11_save_write_and_finish (p11_save_open_file_in (dir, "blah", ".cer", &filename), test_cacert3_ca_der, sizeof (test_cacert3_ca_der)); - CuAssertIntEquals (tc, true, ret); - CuAssertStrEquals (tc, "blah.cer", filename); + assert_num_eq (true, ret); + assert_str_eq ("blah.cer", filename); ret = p11_save_write_and_finish (p11_save_open_file_in (dir, "file", ".txt", &filename), test_text, strlen (test_text)); - CuAssertIntEquals (tc, true, ret); - CuAssertStrEquals (tc, "file.txt", filename); + assert_num_eq (true, ret); + assert_str_eq ("file.txt", filename); ret = p11_save_write_and_finish (p11_save_open_file_in (dir, "file", ".txt", &filename), test_text, 10); - CuAssertIntEquals (tc, true, ret); - CuAssertStrEquals (tc, "file.1.txt", filename); + assert_num_eq (true, ret); + assert_str_eq ("file.1.txt", filename); ret = p11_save_finish_directory (dir, true); - CuAssertIntEquals (tc, true, ret); + assert_num_eq (true, ret); - test_check_directory (tc, subdir, ("blah.cer", "file.txt", "file.1.txt", NULL)); - test_check_data (tc, subdir, "blah.cer", test_cacert3_ca_der, sizeof (test_cacert3_ca_der)); - test_check_data (tc, subdir, "file.txt", test_text, strlen (test_text)); - test_check_data (tc, subdir, "file.1.txt", test_text, 10); + test_check_directory (subdir, ("blah.cer", "file.txt", "file.1.txt", NULL)); + test_check_data (subdir, "blah.cer", test_cacert3_ca_der, sizeof (test_cacert3_ca_der)); + test_check_data (subdir, "file.txt", test_text, strlen (test_text)); + test_check_data (subdir, "file.1.txt", test_text, 10); - CuAssertTrue (tc, rmdir (subdir) >= 0); + assert (rmdir (subdir) >= 0); free (subdir); - - teardown (tc); } int -main (void) +main (int argc, + char *argv[]) { - CuString *output = CuStringNew (); - CuSuite* suite = CuSuiteNew (); - int ret; - - putenv ("P11_KIT_STRICT=1"); - p11_debug_init (); - - SUITE_ADD_TEST (suite, test_file_write); - SUITE_ADD_TEST (suite, test_file_exists); - SUITE_ADD_TEST (suite, test_file_bad_directory); - SUITE_ADD_TEST (suite, test_file_overwrite); - SUITE_ADD_TEST (suite, test_file_auto_empty); - SUITE_ADD_TEST (suite, test_file_auto_length); - SUITE_ADD_TEST (suite, test_write_with_null); - SUITE_ADD_TEST (suite, test_write_and_finish_with_null); - SUITE_ADD_TEST (suite, test_file_abort); - - SUITE_ADD_TEST (suite, test_directory_empty); - SUITE_ADD_TEST (suite, test_directory_files); - SUITE_ADD_TEST (suite, test_directory_dups); - SUITE_ADD_TEST (suite, test_directory_exists); - SUITE_ADD_TEST (suite, test_directory_overwrite); - - CuSuiteRun (suite); - CuSuiteSummary (suite, output); - CuSuiteDetails (suite, output); - printf ("%s\n", output->buffer); - ret = suite->failCount; - CuSuiteDelete (suite); - CuStringDelete (output); - - return ret; + p11_fixture (setup, teardown); + p11_test (test_file_write, "/save/test_file_write"); + p11_test (test_file_exists, "/save/test_file_exists"); + p11_test (test_file_bad_directory, "/save/test_file_bad_directory"); + p11_test (test_file_overwrite, "/save/test_file_overwrite"); + p11_test (test_file_auto_empty, "/save/test_file_auto_empty"); + p11_test (test_file_auto_length, "/save/test_file_auto_length"); + + p11_fixture (NULL, NULL); + p11_test (test_write_with_null, "/save/test_write_with_null"); + p11_test (test_write_and_finish_with_null, "/save/test_write_and_finish_with_null"); + + p11_fixture (setup, teardown); + p11_test (test_file_abort, "/save/test_file_abort"); + + p11_test (test_directory_empty, "/save/test_directory_empty"); + p11_test (test_directory_files, "/save/test_directory_files"); + p11_test (test_directory_dups, "/save/test_directory_dups"); + p11_test (test_directory_exists, "/save/test_directory_exists"); + p11_test (test_directory_overwrite, "/save/test_directory_overwrite"); + return p11_test_run (argc, argv); } |