assert((a = archive_read_new()) != NULL);
assertA(0 == archive_read_set_format(a, ARCHIVE_FORMAT_TAR));
r = archive_read_append_filter(a, ARCHIVE_FILTER_XZ);
- if (r == ARCHIVE_WARN) {
- skipping("gzip reading not fully supported on this platform");
+ if (r == ARCHIVE_WARN && !canXz()) {
+ skipping("xz reading not fully supported on this platform");
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
return;
}
assertEqualInt(ARCHIVE_OK,
archive_read_open_memory(a, archive, sizeof(archive)));
assertA(archive_read_next_header(a, &ae) < (ARCHIVE_WARN));
- assertEqualInt(ARCHIVE_OK, archive_read_close(a));
+ if (r == ARCHIVE_WARN && canXz()) {
+ assertEqualIntA(a, ARCHIVE_WARN, archive_read_close(a));
+ } else {
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ }
assertEqualInt(ARCHIVE_OK,archive_read_free(a));
}