From 6a0cf6b8e32610c9c5fdebcaeee4023ce8e7ea70 Mon Sep 17 00:00:00 2001 From: Bowgo Tsai Date: Fri, 4 Jun 2021 14:45:52 +0800 Subject: [PATCH] Fixing flakiness in libfs_avb_internal_test Using multiple unique_fd() and also modifying the file might cause some races. Closing the fd when it's not needed. Bug: 187303962 Test: atest --host libfs_avb_internal_test -- --test-arg \ com.android.tradefed.testtype.HostGTest:native-test-timeout:5m Change-Id: I789f33b49e7cbdb22396e1df9a2694dce9f8a6f7 --- fs_mgr/libfs_avb/tests/avb_util_test.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fs_mgr/libfs_avb/tests/avb_util_test.cpp b/fs_mgr/libfs_avb/tests/avb_util_test.cpp index 18275665c..0288d85cd 100644 --- a/fs_mgr/libfs_avb/tests/avb_util_test.cpp +++ b/fs_mgr/libfs_avb/tests/avb_util_test.cpp @@ -755,6 +755,7 @@ TEST_F(AvbUtilTest, VerifyVBMetaDataError) { std::string out_public_key_data; std::unique_ptr vbmeta = VerifyVBMetaData( fd, "system", "" /*expected_public_key_blob */, &out_public_key_data, &verify_result); + ASSERT_EQ(0, close(fd.release())); EXPECT_NE(nullptr, vbmeta); EXPECT_EQ(VBMetaVerifyResult::kSuccess, verify_result); @@ -776,6 +777,7 @@ TEST_F(AvbUtilTest, VerifyVBMetaDataError) { // Should return ErrorVerification. vbmeta = VerifyVBMetaData(hash_modified_fd, "system", "" /*expected_public_key_blob */, nullptr /* out_public_key_data */, &verify_result); + ASSERT_EQ(0, close(hash_modified_fd.release())); EXPECT_NE(nullptr, vbmeta); EXPECT_TRUE(CompareVBMeta(system_path, *vbmeta)); EXPECT_EQ(VBMetaVerifyResult::kErrorVerification, verify_result); @@ -791,6 +793,7 @@ TEST_F(AvbUtilTest, VerifyVBMetaDataError) { // Should return ErrorVerification. vbmeta = VerifyVBMetaData(aux_modified_fd, "system", "" /*expected_public_key_blob */, nullptr /* out_public_key_data */, &verify_result); + ASSERT_EQ(0, close(aux_modified_fd.release())); EXPECT_NE(nullptr, vbmeta); EXPECT_TRUE(CompareVBMeta(system_path, *vbmeta)); EXPECT_EQ(VBMetaVerifyResult::kErrorVerification, verify_result); @@ -802,6 +805,7 @@ TEST_F(AvbUtilTest, VerifyVBMetaDataError) { // Should return ResultOK.. vbmeta = VerifyVBMetaData(ok_fd, "system", "" /*expected_public_key_blob */, nullptr /* out_public_key_data */, &verify_result); + ASSERT_EQ(0, close(ok_fd.release())); EXPECT_NE(nullptr, vbmeta); EXPECT_TRUE(CompareVBMeta(system_path, *vbmeta)); EXPECT_EQ(VBMetaVerifyResult::kSuccess, verify_result);