diff options
author | kientzle <kientzle@FreeBSD.org> | 2008-08-28 06:40:22 +0000 |
---|---|---|
committer | kientzle <kientzle@FreeBSD.org> | 2008-08-28 06:40:22 +0000 |
commit | 76addb3012d6a9cd997f9b0d7f5be30a45a935e3 (patch) | |
tree | 8f17c4b0f44efc889c7941f6f05a012310fe2f95 /lib/libarchive/test/test_write_disk.c | |
parent | a2f8dd04c45222a306295bfed8802375da4073b0 (diff) | |
download | FreeBSD-src-76addb3012d6a9cd997f9b0d7f5be30a45a935e3.zip FreeBSD-src-76addb3012d6a9cd997f9b0d7f5be30a45a935e3.tar.gz |
If no atime was specified (for example, when extracting from ustar
archives), set atime == mtime. Before this, atime would get restored
to 0.
Diffstat (limited to 'lib/libarchive/test/test_write_disk.c')
-rw-r--r-- | lib/libarchive/test/test_write_disk.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/libarchive/test/test_write_disk.c b/lib/libarchive/test/test_write_disk.c index 97b34cc..cb9aa55 100644 --- a/lib/libarchive/test/test_write_disk.c +++ b/lib/libarchive/test/test_write_disk.c @@ -63,6 +63,7 @@ static void create_reg_file(struct archive_entry *ae, const char *msg) /* Write the entry to disk. */ assert((ad = archive_write_disk_new()) != NULL); + archive_write_disk_set_options(ad, ARCHIVE_EXTRACT_TIME); failure("%s", msg); /* * A touchy API design issue: archive_write_data() does (as of @@ -82,6 +83,7 @@ static void create_reg_file(struct archive_entry *ae, const char *msg) * the entry being a maximum size. */ archive_entry_set_size(ae, sizeof(data)); + archive_entry_set_mtime(ae, 123456789, 0); assertEqualIntA(ad, 0, archive_write_header(ad, ae)); assertEqualInt(sizeof(data), archive_write_data(ad, data, sizeof(data))); assertEqualIntA(ad, 0, archive_write_finish_entry(ad)); @@ -95,7 +97,10 @@ static void create_reg_file(struct archive_entry *ae, const char *msg) failure("st.st_mode=%o archive_entry_mode(ae)=%o", st.st_mode, archive_entry_mode(ae)); assertEqualInt(st.st_mode, (archive_entry_mode(ae) & ~UMASK)); - assertEqualInt(st.st_size, sizeof(data)); + failure("Old bug: if no atime specified, atime got set to Jan 1, 1970"); + assert(st.st_atime != 0); + assertEqualInt(st.st_size, sizeof(data)); + assertEqualInt(st.st_mtime, 123456789); } static void create_reg_file2(struct archive_entry *ae, const char *msg) |