assertChdir("..");
}
+DEFINE_TEST(test_read_format_mtree)
+{
+ test_read_format_mtree1();
+ test_read_format_mtree2();
+ test_read_format_mtree3();
+}
-static void
-test_read_format_mtree4(void)
+DEFINE_TEST(test_read_format_mtree_nomagic_v1_form)
{
const char reffile[] = "test_read_format_mtree_nomagic.mtree";
char buff[16];
struct archive *a;
FILE *f;
- assertMakeDir("mtree4", 0777);
- assertChdir("mtree4");
-
extract_reference_file(reffile);
assert((a = archive_read_new()) != NULL);
assertEqualInt(12, archive_file_count(a));
assertEqualInt(ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
-
- assertChdir("..");
-}
-
-/*
- * We should get a warning if the contents file doesn't exist.
- */
-static void
-test_read_format_mtree5(void)
-{
- static char archive[] =
- "#mtree\n"
- "a type=file contents=nonexistent_file\n";
- struct archive_entry *ae;
- struct archive *a;
-
- assertMakeDir("mtree5", 0777);
- assertChdir("mtree5");
-
- assert((a = archive_read_new()) != NULL);
- assertEqualIntA(a, ARCHIVE_OK,
- archive_read_support_filter_all(a));
- assertEqualIntA(a, ARCHIVE_OK,
- archive_read_support_format_all(a));
- assertEqualIntA(a, ARCHIVE_OK,
- archive_read_open_memory(a, archive, sizeof(archive)));
- assertEqualIntA(a, ARCHIVE_WARN, archive_read_next_header(a, &ae));
- assert(strlen(archive_error_string(a)) > 0);
- assertEqualString(archive_entry_pathname(ae), "a");
- assertEqualInt(archive_entry_filetype(ae), AE_IFREG);
-
- assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
- assertEqualInt(1, archive_file_count(a));
- assertEqualInt(ARCHIVE_OK, archive_read_close(a));
- assertEqualInt(ARCHIVE_OK, archive_read_free(a));
-
- assertChdir("..");
}
/*
* Test for a format that NetBSD mtree -C generates.
*/
-static void
-test_read_format_mtree6(void)
+DEFINE_TEST(test_read_format_mtree_nomagic_v2_form)
{
const char reffile[] = "test_read_format_mtree_nomagic2.mtree";
char buff[16];
struct archive *a;
FILE *f;
- assertMakeDir("mtree6", 0777);
- assertChdir("mtree6");
-
extract_reference_file(reffile);
assert((a = archive_read_new()) != NULL);
assertEqualInt(6, archive_file_count(a));
assertEqualInt(ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
-
- assertChdir("..");
}
/*
* Test for a format that NetBSD mtree -D generates.
*/
-static void
-test_read_format_mtree7(void)
+DEFINE_TEST(test_read_format_mtree_nomagic_v2_netbsd_form)
{
const char reffile[] = "test_read_format_mtree_nomagic3.mtree";
char buff[16];
struct archive *a;
FILE *f;
- assertMakeDir("mtree7", 0777);
- assertChdir("mtree7");
-
extract_reference_file(reffile);
assert((a = archive_read_new()) != NULL);
assertEqualInt(6, archive_file_count(a));
assertEqualInt(ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
-
- assertChdir("..");
}
-DEFINE_TEST(test_read_format_mtree)
+/*
+ * We should get a warning if the contents file doesn't exist.
+ */
+DEFINE_TEST(test_read_format_mtree_nonexistent_contents_file)
{
- test_read_format_mtree1();
- test_read_format_mtree2();
- test_read_format_mtree3();
- test_read_format_mtree4();
- test_read_format_mtree5();
- test_read_format_mtree6();
- test_read_format_mtree7();
+ static char archive[] =
+ "#mtree\n"
+ "a type=file contents=nonexistent_file\n";
+ struct archive_entry *ae;
+ struct archive *a;
+
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_support_filter_all(a));
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_support_format_all(a));
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_open_memory(a, archive, sizeof(archive)));
+ assertEqualIntA(a, ARCHIVE_WARN, archive_read_next_header(a, &ae));
+ assert(strlen(archive_error_string(a)) > 0);
+ assertEqualString(archive_entry_pathname(ae), "a");
+ assertEqualInt(archive_entry_filetype(ae), AE_IFREG);
+
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualInt(1, archive_file_count(a));
+ assertEqualInt(ARCHIVE_OK, archive_read_close(a));
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
+