summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorkientzle <kientzle@FreeBSD.org>2009-03-07 01:12:01 +0000
committerkientzle <kientzle@FreeBSD.org>2009-03-07 01:12:01 +0000
commit3fb549959da27bfe05e05642921a951f3af481a6 (patch)
tree794176bd2d268d41667cf8db363695d99a99361a /lib
parent37156b5daf8b9b7b2da9eff5420d5aabea457917 (diff)
downloadFreeBSD-src-3fb549959da27bfe05e05642921a951f3af481a6.zip
FreeBSD-src-3fb549959da27bfe05e05642921a951f3af481a6.tar.gz
Merge the rest of r453 from libarchive.googlecode.com: Test using
libarchive APIs to read extended attributes from disk on FreeBSD.
Diffstat (limited to 'lib')
-rw-r--r--lib/libarchive/test/test_extattr_freebsd.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/libarchive/test/test_extattr_freebsd.c b/lib/libarchive/test/test_extattr_freebsd.c
index 72575dd..7d2abb9 100644
--- a/lib/libarchive/test/test_extattr_freebsd.c
+++ b/lib/libarchive/test/test_extattr_freebsd.c
@@ -41,6 +41,9 @@ DEFINE_TEST(test_extattr_freebsd)
skipping("extattr restore supported only on FreeBSD 5.0 and later");
#else
char buff[64];
+ const char *xname;
+ const void *xval;
+ size_t xsize;
struct stat st;
struct archive *a;
struct archive_entry *ae;
@@ -150,5 +153,21 @@ DEFINE_TEST(test_extattr_freebsd)
assertEqualString(buff, "123456");
}
}
+
+ /* Use libarchive APIs to read the file back into an entry and
+ * verify that the extattr was read correctly. */
+ assert((a = archive_read_disk_new()) != NULL);
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_set_pathname(ae, "test0");
+ assertEqualInt(ARCHIVE_OK,
+ archive_read_disk_entry_from_file(a, ae, -1, NULL));
+ assertEqualInt(1, archive_entry_xattr_reset(ae));
+ assertEqualInt(ARCHIVE_OK,
+ archive_entry_xattr_next(ae, &xname, &xval, &xsize));
+ assertEqualString(xname, "user.foo");
+ assertEqualInt(xsize, 5);
+ assertEqualMem(xval, "12345", xsize);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualInt(ARCHIVE_OK, archive_read_finish(a));
#endif
}
OpenPOWER on IntegriCloud