diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2020-02-05 23:47:45 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2020-02-05 23:47:45 +0000 |
commit | a800e1ee9d069cbec93a819b75dba0fdedb99ed6 (patch) | |
tree | 8b82d9e3ac354d450e89358dcfdb1bbaa650be49 | |
parent | e6211eb978d4c66c61e113379f8e6315005258d3 (diff) | |
parent | c352179e10bb608c93165e0721cf959402803ac4 (diff) |
Merge changes I63b5e69b,I85c6af63
* changes:
fiemap: add image_test and writer_test tests to presubmit
fiemap: fix fiemap size and log message when last extent
-rw-r--r-- | fs_mgr/TEST_MAPPING | 6 | ||||
-rw-r--r-- | fs_mgr/libfiemap/Android.bp | 30 | ||||
-rw-r--r-- | fs_mgr/libfiemap/fiemap_writer.cpp | 14 | ||||
-rw-r--r-- | fs_mgr/libfiemap/image_test.cpp | 3 |
4 files changed, 45 insertions, 8 deletions
diff --git a/fs_mgr/TEST_MAPPING b/fs_mgr/TEST_MAPPING index de38ff6a2..60e32261d 100644 --- a/fs_mgr/TEST_MAPPING +++ b/fs_mgr/TEST_MAPPING @@ -5,6 +5,12 @@ }, { "name": "liblp_test" + }, + { + "name": "fiemap_image_test_presubmit" + }, + { + "name": "fiemap_writer_test" } ] } diff --git a/fs_mgr/libfiemap/Android.bp b/fs_mgr/libfiemap/Android.bp index 1bf457ff3..2fd463c3f 100644 --- a/fs_mgr/libfiemap/Android.bp +++ b/fs_mgr/libfiemap/Android.bp @@ -104,4 +104,34 @@ cc_test { srcs: [ "image_test.cpp", ], + test_suites: ["device-tests"], + auto_gen_config: true, + require_root: true, +} + +/* BUG(148874852) temporary test */ +cc_test { + name: "fiemap_image_test_presubmit", + cppflags: [ + "-DSKIP_TEST_IN_PRESUBMIT", + ], + static_libs: [ + "libdm", + "libext4_utils", + "libfs_mgr", + "liblp", + ], + shared_libs: [ + "libbase", + "libcrypto", + "libcrypto_utils", + "libcutils", + "liblog", + ], + srcs: [ + "image_test.cpp", + ], + test_suites: ["device-tests"], + auto_gen_config: true, + require_root: true, } diff --git a/fs_mgr/libfiemap/fiemap_writer.cpp b/fs_mgr/libfiemap/fiemap_writer.cpp index b911234c9..4dd4bcc14 100644 --- a/fs_mgr/libfiemap/fiemap_writer.cpp +++ b/fs_mgr/libfiemap/fiemap_writer.cpp @@ -526,11 +526,7 @@ static bool IsValidExtent(const fiemap_extent* extent, std::string_view file_pat } static bool IsLastExtent(const fiemap_extent* extent) { - if (!(extent->fe_flags & FIEMAP_EXTENT_LAST)) { - LOG(ERROR) << "Extents are being received out-of-order"; - return false; - } - return true; + return !!(extent->fe_flags & FIEMAP_EXTENT_LAST); } static bool FiemapToExtents(struct fiemap* fiemap, std::vector<struct fiemap_extent>* extents, @@ -552,7 +548,10 @@ static bool FiemapToExtents(struct fiemap* fiemap, std::vector<struct fiemap_ext fiemap_extent* next = &fiemap->fm_extents[i]; // Make sure extents are returned in order - if (next != last_extent && IsLastExtent(next)) return false; + if (next != last_extent && IsLastExtent(next)) { + LOG(ERROR) << "Extents are being received out-of-order"; + return false; + } // Check if extent's flags are valid if (!IsValidExtent(next, file_path)) return false; @@ -592,8 +591,7 @@ static bool ReadFiemap(int file_fd, const std::string& file_path, return false; } - uint64_t fiemap_size = - sizeof(struct fiemap_extent) + num_extents * sizeof(struct fiemap_extent); + uint64_t fiemap_size = sizeof(struct fiemap) + num_extents * sizeof(struct fiemap_extent); auto buffer = std::unique_ptr<void, decltype(&free)>(calloc(1, fiemap_size), free); if (buffer == nullptr) { LOG(ERROR) << "Failed to allocate memory for fiemap"; diff --git a/fs_mgr/libfiemap/image_test.cpp b/fs_mgr/libfiemap/image_test.cpp index 80c340fdc..5388b4478 100644 --- a/fs_mgr/libfiemap/image_test.cpp +++ b/fs_mgr/libfiemap/image_test.cpp @@ -212,6 +212,9 @@ TEST_F(ImageTest, DirectMount) { } TEST_F(ImageTest, IndirectMount) { +#ifdef SKIP_TEST_IN_PRESUBMIT + GTEST_SKIP() << "WIP failure b/148874852"; +#endif // Create a simple wrapper around the base device that we'll mount from // instead. This will simulate the code paths for dm-crypt/default-key/bow // and force us to use device-mapper rather than loop devices. |