aboutsummaryrefslogtreecommitdiff
path: root/contrib/libarchive/test_utils
diff options
context:
space:
mode:
authorMartin Matuska <mm@FreeBSD.org>2020-12-01 15:53:12 +0000
committerMartin Matuska <mm@FreeBSD.org>2020-12-01 15:53:12 +0000
commitc3afd20f1335949db24ba8af348e8706be995059 (patch)
tree41d6d806fe908ea74f13b3705df026208974afc3 /contrib/libarchive/test_utils
parent8bbe6af94982ef3a0f898fb5bb2dd06c4788a1e3 (diff)
parentd5f2a5ff11474589cccacfc8e153d437f48530e2 (diff)
downloadsrc-c3afd20f1335949db24ba8af348e8706be995059.tar.gz
src-c3afd20f1335949db24ba8af348e8706be995059.zip
MFV r368207:
Update libarchive to 3.5.0 Relevant vendor changes: Issue #1258: add archive_read_support_filter_by_code() PR #1347: mtree digest reader support Issue #1381: skip hardlinks pointing to itself on extraction PR #1387: fix writing of cpio archives with hardlinks without file type PR #1388: fix rdev field in cpio format for device nodes PR #1389: completed support for UTF-8 encoding conversion PR #1405: more formats in archive_read_support_format_by_code() PR #1408: fix uninitialized size in rar5_read_data PR #1409: system extended attribute support PR #1435: support for decompression of symbolic links in zipx archives Issue #1456: memory leak after unsuccessful archive_write_open_filename MFC after: 1 week
Notes
Notes: svn path=/head/; revision=368234
Diffstat (limited to 'contrib/libarchive/test_utils')
-rw-r--r--contrib/libarchive/test_utils/test_common.h4
-rw-r--r--contrib/libarchive/test_utils/test_main.c13
2 files changed, 17 insertions, 0 deletions
diff --git a/contrib/libarchive/test_utils/test_common.h b/contrib/libarchive/test_utils/test_common.h
index 80d54f0a450c..42119c06db8b 100644
--- a/contrib/libarchive/test_utils/test_common.h
+++ b/contrib/libarchive/test_utils/test_common.h
@@ -169,6 +169,9 @@
/* chdir() and error if it fails */
#define assertChdir(path) \
assertion_chdir(__FILE__, __LINE__, path)
+/* change file/directory permissions and errors if it fails */
+#define assertChmod(pathname, mode) \
+ assertion_chmod(__FILE__, __LINE__, pathname, mode)
/* Assert two files have the same file flags */
#define assertEqualFflags(patha, pathb) \
assertion_compare_fflags(__FILE__, __LINE__, patha, pathb, 0)
@@ -282,6 +285,7 @@
void failure(const char *fmt, ...) __LA_PRINTFLIKE(1, 2);
int assertion_assert(const char *, int, int, const char *, void *);
int assertion_chdir(const char *, int, const char *);
+int assertion_chmod(const char *, int, const char *, int);
int assertion_compare_fflags(const char *, int, const char *, const char *,
int);
int assertion_empty_file(const char *, int, const char *);
diff --git a/contrib/libarchive/test_utils/test_main.c b/contrib/libarchive/test_utils/test_main.c
index 40dfa52f08f1..ef066eb67d99 100644
--- a/contrib/libarchive/test_utils/test_main.c
+++ b/contrib/libarchive/test_utils/test_main.c
@@ -597,6 +597,19 @@ assertion_chdir(const char *file, int line, const char *pathname)
}
+/* change file/directory permissions and errors if it fails */
+int
+assertion_chmod(const char *file, int line, const char *pathname, int mode)
+{
+ assertion_count(file, line);
+ if (chmod(pathname, mode) == 0)
+ return (1);
+ failure_start(file, line, "chmod(\"%s\", %4.o)", pathname, mode);
+ failure_finish(NULL);
+ return (0);
+
+}
+
/* Verify two integers are equal. */
int
assertion_equal_int(const char *file, int line,