summaryrefslogtreecommitdiff
path: root/tools/tests/test-save.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/tests/test-save.c')
-rw-r--r--tools/tests/test-save.c329
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);
}