aboutsummaryrefslogtreecommitdiff
path: root/contrib/libarchive/libarchive/test/test_entry.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/libarchive/libarchive/test/test_entry.c')
-rw-r--r--contrib/libarchive/libarchive/test/test_entry.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/contrib/libarchive/libarchive/test/test_entry.c b/contrib/libarchive/libarchive/test/test_entry.c
index 9b21b83ecdfb..cff9c5c86efc 100644
--- a/contrib/libarchive/libarchive/test/test_entry.c
+++ b/contrib/libarchive/libarchive/test/test_entry.c
@@ -880,6 +880,17 @@ DEFINE_TEST(test_entry)
if (pst == NULL)
return;
assertEqualInt(pst->st_uid, 22);
+
+ /* Check behavior with large sizes. */
+ archive_entry_set_size(e, INT64_MAX - 1);
+ assert((pst = archive_entry_stat(e)) != NULL);
+ if (pst == NULL)
+ return;
+ if (sizeof(pst->st_size) < sizeof(int64_t))
+ assertEqualInt(pst->st_size, 0);
+ else
+ assertEqualInt(pst->st_size, INT64_MAX - 1);
+
/* We don't need to check high-res fields here. */
/*