Index: content/browser/fileapi/blob_storage_context_unittest.cc |
diff --git a/content/browser/fileapi/blob_storage_context_unittest.cc b/content/browser/fileapi/blob_storage_context_unittest.cc |
index fd588801532f10b9062662e7197ddf2a0b8a3485..823679e585caf0f97f7fb0efbbff872e8e438e10 100644 |
--- a/content/browser/fileapi/blob_storage_context_unittest.cc |
+++ b/content/browser/fileapi/blob_storage_context_unittest.cc |
@@ -6,6 +6,7 @@ |
#include "base/memory/ref_counted.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/message_loop/message_loop.h" |
+#include "base/run_loop.h" |
#include "base/time/time.h" |
#include "content/browser/fileapi/blob_storage_host.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -41,6 +42,10 @@ TEST(BlobStorageContextTest, IncrementDecrementRef) { |
blob_data_handle = context.GetBlobDataFromUUID(kId); |
EXPECT_TRUE(blob_data_handle); |
blob_data_handle.reset(); |
+ { // Clean up for ASAN |
+ base::RunLoop run_loop; |
+ run_loop.RunUntilIdle(); |
+ } |
// Make sure its still there after inc/dec. |
EXPECT_TRUE(host.IncrementBlobRefCount(kId)); |
@@ -48,6 +53,10 @@ TEST(BlobStorageContextTest, IncrementDecrementRef) { |
blob_data_handle = context.GetBlobDataFromUUID(kId); |
EXPECT_TRUE(blob_data_handle); |
blob_data_handle.reset(); |
+ { // Clean up for ASAN |
+ base::RunLoop run_loop; |
+ run_loop.RunUntilIdle(); |
+ } |
// Make sure it goes away in the end. |
EXPECT_TRUE(host.DecrementBlobRefCount(kId)); |
@@ -82,6 +91,10 @@ TEST(BlobStorageContextTest, BlobDataHandle) { |
// Should disappear after dropping both handles. |
blob_data_handle.reset(); |
another_handle.reset(); |
+ { // Clean up for ASAN |
+ base::RunLoop run_loop; |
+ run_loop.RunUntilIdle(); |
+ } |
blob_data_handle = context.GetBlobDataFromUUID(kId); |
EXPECT_FALSE(blob_data_handle); |
} |
@@ -131,6 +144,12 @@ TEST(BlobStorageContextTest, CompoundBlobs) { |
blob_data_handle = context.AddFinishedBlob(blob_data2.get()); |
ASSERT_TRUE(blob_data_handle.get()); |
EXPECT_TRUE(*(blob_data_handle->data()) == *canonicalized_blob_data2.get()); |
+ |
+ blob_data_handle.reset(); |
+ { // Clean up for ASAN |
+ base::RunLoop run_loop; |
+ run_loop.RunUntilIdle(); |
+ } |
} |
TEST(BlobStorageContextTest, PublicBlobUrls) { |
@@ -150,6 +169,10 @@ TEST(BlobStorageContextTest, PublicBlobUrls) { |
ASSERT_TRUE(blob_data_handle.get()); |
EXPECT_EQ(kId, blob_data_handle->data()->uuid()); |
blob_data_handle.reset(); |
+ { // Clean up for ASAN |
+ base::RunLoop run_loop; |
+ run_loop.RunUntilIdle(); |
+ } |
// The url registration should keep the blob alive even after |
// explicit references are dropped. |
@@ -157,6 +180,10 @@ TEST(BlobStorageContextTest, PublicBlobUrls) { |
blob_data_handle = context.GetBlobDataFromPublicURL(kUrl); |
EXPECT_TRUE(blob_data_handle); |
blob_data_handle.reset(); |
+ { // Clean up for ASAN |
+ base::RunLoop run_loop; |
+ run_loop.RunUntilIdle(); |
+ } |
// Finally get rid of the url registration and the blob. |
EXPECT_TRUE(host.RevokePublicBlobURL(kUrl)); |