assertEqualInt(file_size, archive_entry_size(ae));
assertEqualInt(33188, archive_entry_mode(ae));
+ /* Attempt to read past end of file */
+ assertEqualInt(file_size, archive_seek_data(a, 0, SEEK_END));
+ assertA(0 == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualInt(file_size + 40, archive_seek_data(a, 40, SEEK_CUR));
+ assertA(0 == archive_read_data(a, buff, sizeof(buff)));
+
/* Seek to the end minus 64 bytes */
assertA(file_size - (int)sizeof(buff) ==
archive_seek_data(a, -sizeof(buff), SEEK_END));
assertA(sizeof(buff) == archive_read_data(a, buff, sizeof(buff)));
assertEqualMem(buff, file_test_txt5, sizeof(file_test_txt5) - 1);
+ /* Attempt to read past end of file */
+ assertEqualInt(file_size, archive_seek_data(a, 0, SEEK_END));
+ assertA(0 == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualInt(file_size + 40, archive_seek_data(a, 40, SEEK_CUR));
+ assertA(0 == archive_read_data(a, buff, sizeof(buff)));
+
/* Second header. */
assertA(0 == archive_read_next_header(a, &ae));
assertEqualString("LibarchiveAddingTest.html", archive_entry_pathname(ae));
assertEqualInt(file_size, archive_entry_size(ae));
assertEqualInt(33188, archive_entry_mode(ae));
+ /* Attempt to read past end of file */
+ assertEqualInt(file_size, archive_seek_data(a, 0, SEEK_END));
+ assertA(0 == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualInt(file_size + 40, archive_seek_data(a, 40, SEEK_CUR));
+ assertA(0 == archive_read_data(a, buff, sizeof(buff)));
+
/* Seek to the end minus 64 bytes */
assertA(file_size - (int)sizeof(buff) ==
archive_seek_data(a, file_size - sizeof(buff), SEEK_SET));
assertA(sizeof(buff) == archive_read_data(a, buff, sizeof(buff)));
assertEqualMem(buff, file_test_txt8, sizeof(file_test_txt5) - 1);
+ /* Attempt to read past end of file */
+ assertEqualInt(file_size, archive_seek_data(a, 0, SEEK_END));
+ assertA(0 == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualInt(file_size + 40, archive_seek_data(a, 40, SEEK_CUR));
+ assertA(0 == archive_read_data(a, buff, sizeof(buff)));
+
/* Test EOF */
assertA(1 == archive_read_next_header(a, &ae));
assertEqualInt(2, archive_file_count(a));