diff options
author | achuith@chromium.org <achuith@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-25 23:09:32 +0000 |
---|---|---|
committer | achuith@chromium.org <achuith@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-25 23:09:32 +0000 |
commit | 82c91e04bdfa264c9292eb398fa5fbbcf17abf7d (patch) | |
tree | 82750d057d466423ba7e7fb8be662979a2dd8d58 | |
parent | a86125a44116ecc5cb9647dca55ccf9ca9747f1d (diff) | |
download | chromium_src-82c91e04bdfa264c9292eb398fa5fbbcf17abf7d.zip chromium_src-82c91e04bdfa264c9292eb398fa5fbbcf17abf7d.tar.gz chromium_src-82c91e04bdfa264c9292eb398fa5fbbcf17abf7d.tar.bz2 |
Clean up leaks in gdata_db_unittest.cc
BUG=124961
TEST=valgrind should be pleased.
Review URL: https://chromiumcodereview.appspot.com/10151013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134005 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/chromeos/gdata/gdata_db_unittest.cc | 88 | ||||
-rw-r--r-- | tools/heapcheck/suppressions.txt | 6 | ||||
-rw-r--r-- | tools/valgrind/memcheck/suppressions.txt | 7 |
3 files changed, 49 insertions, 52 deletions
diff --git a/chrome/browser/chromeos/gdata/gdata_db_unittest.cc b/chrome/browser/chromeos/gdata/gdata_db_unittest.cc index f35db48..66844a0 100644 --- a/chrome/browser/chromeos/gdata/gdata_db_unittest.cc +++ b/chrome/browser/chromeos/gdata/gdata_db_unittest.cc @@ -47,8 +47,10 @@ class GDataDBTest : public testing::Test { void InitDB(); // Helper functions to add a directory/file, incrementing index. - GDataDirectory* AddDirectory(GDataDirectory* parent, int sequence_id); - GDataFile* AddFile(GDataDirectory* parent, int sequence_id); + GDataDirectory* AddDirectory(GDataDirectory* parent, + GDataRootDirectory* root, int sequence_id); + GDataFile* AddFile(GDataDirectory* parent, + GDataRootDirectory* root, int sequence_id); // Tests GDataDB::NewIterator and GDataDBIter::GetNext. // Creates an iterator with start at |parent|, and iterates comparing with @@ -59,7 +61,7 @@ class GDataDBTest : public testing::Test { scoped_ptr<TestingProfile> profile_; scoped_ptr<GDataDB> gdata_db_; - GDataRootDirectory root_; + std::set<GDataEntry*> entry_set_; }; void GDataDBTest::SetUp() { @@ -99,24 +101,28 @@ void GDataDBTest::TestGetFound(const GDataEntry& source) { void GDataDBTest::InitDB() { int sequence_id = 1; - GDataDirectory* dir1 = AddDirectory(NULL, sequence_id++); - GDataDirectory* dir2 = AddDirectory(NULL, sequence_id++); - GDataDirectory* dir3 = AddDirectory(dir1, sequence_id++); + GDataRootDirectory root; + GDataDirectory* dir1 = AddDirectory(NULL, &root, sequence_id++); + GDataDirectory* dir2 = AddDirectory(NULL, &root, sequence_id++); + GDataDirectory* dir3 = AddDirectory(dir1, &root, sequence_id++); - AddFile(dir1, sequence_id++); - AddFile(dir1, sequence_id++); + AddFile(dir1, &root, sequence_id++); + AddFile(dir1, &root, sequence_id++); - AddFile(dir2, sequence_id++); - AddFile(dir2, sequence_id++); - AddFile(dir2, sequence_id++); + AddFile(dir2, &root, sequence_id++); + AddFile(dir2, &root, sequence_id++); + AddFile(dir2, &root, sequence_id++); - AddFile(dir3, sequence_id++); - AddFile(dir3, sequence_id++); + AddFile(dir3, &root, sequence_id++); + AddFile(dir3, &root, sequence_id++); + + STLDeleteElements(&entry_set_); } GDataDirectory* GDataDBTest::AddDirectory(GDataDirectory* parent, + GDataRootDirectory* root, int sequence_id) { - GDataDirectory* dir = new GDataDirectory(parent ? parent : &root_, &root_); + GDataDirectory* dir = new GDataDirectory(parent ? parent : root, root); const std::string dir_name = "dir" + base::IntToString(sequence_id); const std::string resource_id = std::string("dir_resource_id:") + dir_name; @@ -126,12 +132,14 @@ GDataDirectory* GDataDBTest::AddDirectory(GDataDirectory* parent, EXPECT_EQ(GDataDB::DB_OK, status); DVLOG(1) << "AddDirectory " << dir->GetFilePath().value() << ", " << resource_id; + entry_set_.insert(dir); return dir; } GDataFile* GDataDBTest::AddFile(GDataDirectory* parent, + GDataRootDirectory* root, int sequence_id) { - GDataFile* file = new GDataFile(parent, &root_); + GDataFile* file = new GDataFile(parent, root); const std::string file_name = "file" + base::IntToString(sequence_id); const std::string resource_id = std::string("file_resource_id:") + file_name; @@ -141,6 +149,7 @@ GDataFile* GDataDBTest::AddFile(GDataDirectory* parent, EXPECT_EQ(GDataDB::DB_OK, status); DVLOG(1) << "AddFile " << file->GetFilePath().value() << ", " << resource_id; + entry_set_.insert(file); return file; } @@ -167,50 +176,51 @@ void GDataDBTest::TestIter(const std::string& parent, } // namespace TEST_F(GDataDBTest, PutTest) { - GDataDirectory* dir = new GDataDirectory(&root_, &root_); - dir->set_file_name("dir"); - dir->set_resource_id("dir_resource_id"); - dir->set_content_url(GURL("http://content/dir")); - dir->set_upload_url(GURL("http://upload/dir")); + GDataRootDirectory root; + GDataDirectory dir(&root, &root); + dir.set_file_name("dir"); + dir.set_resource_id("dir_resource_id"); + dir.set_content_url(GURL("http://content/dir")); + dir.set_upload_url(GURL("http://upload/dir")); - TestGetNotFound(*dir); + TestGetNotFound(dir); - GDataDB::Status status = gdata_db_->Put(*dir); + GDataDB::Status status = gdata_db_->Put(dir); EXPECT_EQ(GDataDB::DB_OK, status); - TestGetFound(*dir); + TestGetFound(dir); scoped_ptr<GDataEntry> entry; - gdata_db_->GetByPath(dir->GetFilePath(), &entry); - EXPECT_EQ(dir->upload_url(), entry->AsGDataDirectory()->upload_url()); + gdata_db_->GetByPath(dir.GetFilePath(), &entry); + EXPECT_EQ(dir.upload_url(), entry->AsGDataDirectory()->upload_url()); EXPECT_TRUE(entry->AsGDataDirectory()->file_info().is_directory); - status = gdata_db_->DeleteByPath(dir->GetFilePath()); + status = gdata_db_->DeleteByPath(dir.GetFilePath()); EXPECT_EQ(GDataDB::DB_OK, status); - TestGetNotFound(*dir); + TestGetNotFound(dir); - GDataFile* file = new GDataFile(dir, &root_); - file->set_file_name("file1"); - file->set_resource_id("file1_resource_id"); - file->set_content_url(GURL("http://content/dir1/file1")); - file->set_file_md5("file1_md5"); + GDataFile file(&dir, &root); + file.set_file_name("file"); + file.set_resource_id("file_resource_id"); + file.set_content_url(GURL("http://content/dir/file")); + file.set_file_md5("file_md5"); - TestGetNotFound(*file); + TestGetNotFound(file); - status = gdata_db_->Put(*file); + status = gdata_db_->Put(file); EXPECT_EQ(GDataDB::DB_OK, status); - TestGetFound(*file); + TestGetFound(file); - gdata_db_->GetByPath(file->GetFilePath(), &entry); - EXPECT_EQ(file->file_md5(), entry->AsGDataFile()->file_md5()); + gdata_db_->GetByPath(file.GetFilePath(), &entry); + EXPECT_EQ(file.file_md5(), entry->AsGDataFile()->file_md5()); EXPECT_FALSE(entry->AsGDataFile()->file_info().is_directory); - status = gdata_db_->DeleteByPath(file->GetFilePath()); + status = gdata_db_->DeleteByPath(file.GetFilePath()); EXPECT_EQ(GDataDB::DB_OK, status); - TestGetNotFound(*file); + TestGetNotFound(file); } TEST_F(GDataDBTest, IterTest) { diff --git a/tools/heapcheck/suppressions.txt b/tools/heapcheck/suppressions.txt index c504131..13d8b3d 100644 --- a/tools/heapcheck/suppressions.txt +++ b/tools/heapcheck/suppressions.txt @@ -1825,9 +1825,3 @@ ... fun:GoogleURLTrackerTest_InfobarShownAgainOnSearchAfterCommittedSearch_Test::TestBody } -{ - bug_124961 - Heapcheck:Leak - ... - fun:gdata::GDataDBTest_*Test_Test::TestBody -} diff --git a/tools/valgrind/memcheck/suppressions.txt b/tools/valgrind/memcheck/suppressions.txt index a4006c4..5e5aeb9 100644 --- a/tools/valgrind/memcheck/suppressions.txt +++ b/tools/valgrind/memcheck/suppressions.txt @@ -5816,13 +5816,6 @@ fun:_ZN20GoogleURLTrackerTest16SetSearchPendingERK4GURLi fun:_ZN71GoogleURLTrackerTest_InfobarShownAgainOnSearchAfterCommittedSearch_Test8TestBodyEv } -{ - bug_124961 - Memcheck:Leak - fun:_Znw* - ... - fun:_ZN5gdata*GDataDBTest_*Test_Test8TestBodyEv -} #----------------------------------------------------------------------- # 4. These only occur on our Google workstations |