void archive_copy_error(struct archive *dest, struct archive *src) { dest->archive_error_number = src->archive_error_number; archive_string_copy(&dest->error_string, &src->error_string); dest->error = dest->error_string.s; }
static void test_archive_string_copy(void) { struct archive_string s, t, u, v; archive_string_init(&s); assertExactString(0, 0, NULL, s); archive_string_init(&t); assertExactString(0, 0, NULL, t); archive_string_init(&u); assertExactString(0, 0, NULL, u); archive_string_init(&v); assertExactString(0, 0, NULL, v); /* null target, null source */ archive_string_copy(&t, &s); assertExactString(0, 0, NULL, s); assertExactString(0, EXTENT, "", t); /* null target, empty source */ archive_string_copy(&u, &t); assertExactString(0, EXTENT, "", t); assertExactString(0, EXTENT, "", u); /* empty target, empty source */ archive_string_copy(&u, &t); assertExactString(0, EXTENT, "", t); assertExactString(0, EXTENT, "", u); /* null target, non-empty source */ assert(NULL != archive_strcpy(&s, "snafubar")); assertExactString(8, EXTENT, "snafubar", s); archive_string_copy(&v, &s); assertExactString(8, EXTENT, "snafubar", s); assertExactString(8, EXTENT, "snafubar", v); /* empty target, non-empty source */ assertExactString(0, EXTENT, "", t); archive_string_copy(&t, &s); assertExactString(8, EXTENT, "snafubar", s); assertExactString(8, EXTENT, "snafubar", t); /* non-empty target, non-empty source */ assert(NULL != archive_strcpy(&s, "fubar")); assertExactString(5, EXTENT, "fubar", s); archive_string_copy(&t, &s); assertExactString(5, EXTENT, "fubar", s); assertExactString(5, EXTENT, "fubar", t); }