diff options
Diffstat (limited to 'base/mapped_file_test.cpp')
-rw-r--r-- | base/mapped_file_test.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/base/mapped_file_test.cpp b/base/mapped_file_test.cpp index 7e89723c6..cfde73c74 100644 --- a/base/mapped_file_test.cpp +++ b/base/mapped_file_test.cpp @@ -25,7 +25,6 @@ #include <string> #include "android-base/file.h" -#include "android-base/unique_fd.h" TEST(mapped_file, smoke) { TemporaryFile tf; @@ -37,3 +36,13 @@ TEST(mapped_file, smoke) { ASSERT_EQ('l', m->data()[0]); ASSERT_EQ('o', m->data()[1]); } + +TEST(mapped_file, zero_length_mapping) { + // http://b/119818070 "app crashes when reading asset of zero length". + // mmap fails with EINVAL for a zero length region. + TemporaryFile tf; + ASSERT_TRUE(tf.fd != -1); + + auto m = android::base::MappedFile::FromFd(tf.fd, 4096, 0, PROT_READ); + ASSERT_EQ(0u, m->size()); +} |