Do not call tell() in File::eof() - Fix tests & performance

v0.27.3
Luis Diaz Mas 5 years ago
parent 2732c10a86
commit 235087af4e

@ -1022,8 +1022,7 @@ namespace Exiv2 {
bool FileIo::eof() const
{
assert(p_->fp_ != 0);
return feof(p_->fp_) != 0 || tell() >= (long) size() ;
return std::feof(p_->fp_) != 0;
}
std::string FileIo::path() const

@ -13,19 +13,22 @@ class PngReadRawProfile(metaclass=system_tests.CaseMeta):
filenames = [
system_tests.path("$data_path/issue_428_poc1.png"),
system_tests.path("$data_path/issue_428_poc2.png"),
system_tests.path("$data_path/issue_428_poc3.png"),
system_tests.path("$data_path/issue_428_poc4.png"),
system_tests.path("$data_path/issue_428_poc5.png"),
system_tests.path("$data_path/issue_428_poc8.png"),
system_tests.path("$data_path/issue_428_poc2.png"),
system_tests.path("$data_path/issue_428_poc6.png"),
system_tests.path("$data_path/issue_428_poc7.png"),
]
commands = ["$exiv2 " + fname for fname in filenames]
stdout = [""] * len(filenames)
stderr = [ stderr_exception(fname) for fname in filenames[0:6] ]
stderr = [ stderr_exception(fname) for fname in filenames[0:5] ]
stderr.append("""$exiv2_exception_message """ + filenames[5] + """:
$kerInputDataReadFailed
""")
stderr.append("""Error: XMP Toolkit error 201: XML parsing failure
Warning: Failed to decode XMP metadata.
""" + stderr_exception(filenames[6]))

@ -22,6 +22,7 @@ taglist: ${ENV:exiv2_path}/taglist${ENV:binary_extension}
[variables]
kerOffsetOutOfRange: Offset out of range
kerFailedToReadImageData: Failed to read image data
kerInputDataReadFailed: Failed to read input data
kerCorruptedMetadata: corrupted image metadata
kerInvalidMalloc: invalid memory allocation request
kerInvalidTypeValue: invalid type in tiff structure

@ -33,13 +33,13 @@ TEST(AFileIO, returnsFileSizeIfItsOpened)
{
FileIo file(imagePath);
file.open();
ASSERT_EQ(118685, file.size());
ASSERT_EQ(118685ul, file.size());
}
TEST(AFileIO, returnsFileSizeEvenWhenFileItIsNotOpened)
{
FileIo file(imagePath);
ASSERT_EQ(118685, file.size());
ASSERT_EQ(118685ul, file.size());
}
TEST(AFileIO, isOpenedAtPosition0)

Loading…
Cancel
Save