diff options
author | shess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-08 21:43:16 +0000 |
---|---|---|
committer | shess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-08 21:43:16 +0000 |
commit | 7b1e3710535c1bc6945ad170f667e0a1e9a88ef9 (patch) | |
tree | 2bd669956a242ac48e30093aeacf2d4a57f612da /chrome/browser/safe_browsing/protocol_parser_unittest.cc | |
parent | 16e70aeca7951680226d7ad461d5c21dadccc728 (diff) | |
download | chromium_src-7b1e3710535c1bc6945ad170f667e0a1e9a88ef9.zip chromium_src-7b1e3710535c1bc6945ad170f667e0a1e9a88ef9.tar.gz chromium_src-7b1e3710535c1bc6945ad170f667e0a1e9a88ef9.tar.bz2 |
Refactor chunk ownership in SafeBrowsing code.
This attempts to clean up ownership so that it's more clear who
creates and deletes the chunk data between parsing and storage in the
database. SBChunkList replaces std::deque<SBChunk>, mostly to add
correct cleanup in the destructor rather than requiring FreeChunks()
to be called manually. Additionally remove deletion of chunk info
from the database layer, now it processes const data.
Additionally remove the need for SafeBrowsingDatabase to have a
chunk-inserted callback by having the caller handle it directly.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/668123
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40942 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/safe_browsing/protocol_parser_unittest.cc')
-rw-r--r-- | chrome/browser/safe_browsing/protocol_parser_unittest.cc | 40 |
1 files changed, 9 insertions, 31 deletions
diff --git a/chrome/browser/safe_browsing/protocol_parser_unittest.cc b/chrome/browser/safe_browsing/protocol_parser_unittest.cc index 1796bd3..3aa5bd1 100644 --- a/chrome/browser/safe_browsing/protocol_parser_unittest.cc +++ b/chrome/browser/safe_browsing/protocol_parser_unittest.cc @@ -17,7 +17,7 @@ TEST(SafeBrowsingProtocolParsingTest, TestAddChunk) { // Run the parse. SafeBrowsingProtocolParser parser; bool re_key = false; - std::deque<SBChunk> chunks; + SBChunkList chunks; bool result = parser.ParseChunk(add_chunk.data(), static_cast<int>(add_chunk.length()), "", "", &re_key, &chunks); @@ -49,8 +49,6 @@ TEST(SafeBrowsingProtocolParsingTest, TestAddChunk) { EXPECT_EQ(entry->prefix_count(), 2); EXPECT_EQ(entry->PrefixAt(0), 0x38383838); EXPECT_EQ(entry->PrefixAt(1), 0x39393939); - - safe_browsing_util::FreeChunks(&chunks); } // Test parsing one add chunk with full hashes. @@ -70,7 +68,7 @@ TEST(SafeBrowsingProtocolParsingTest, TestAddFullChunk) { // Run the parse. SafeBrowsingProtocolParser parser; bool re_key = false; - std::deque<SBChunk> chunks; + SBChunkList chunks; bool result = parser.ParseChunk(add_chunk.data(), static_cast<int>(add_chunk.length()), "", "", &re_key, &chunks); @@ -87,8 +85,6 @@ TEST(SafeBrowsingProtocolParsingTest, TestAddFullChunk) { EXPECT_EQ(entry->prefix_count(), 2); EXPECT_TRUE(entry->FullHashAt(0) == full_hash1); EXPECT_TRUE(entry->FullHashAt(1) == full_hash2); - - safe_browsing_util::FreeChunks(&chunks); } // Test parsing multiple add chunks. We'll use the same chunk as above, and add @@ -101,7 +97,7 @@ TEST(SafeBrowsingProtocolParsingTest, TestAddChunks) { // Run the parse. SafeBrowsingProtocolParser parser; bool re_key = false; - std::deque<SBChunk> chunks; + SBChunkList chunks; bool result = parser.ParseChunk(add_chunk.data(), static_cast<int>(add_chunk.length()), "", "", &re_key, &chunks); @@ -145,8 +141,6 @@ TEST(SafeBrowsingProtocolParsingTest, TestAddChunks) { EXPECT_EQ(entry->prefix_count(), 2); EXPECT_EQ(entry->PrefixAt(0), 0x70707070); EXPECT_EQ(entry->PrefixAt(1), 0x67676767); - - safe_browsing_util::FreeChunks(&chunks); } // Test parsing one add chunk where a hostkey spans several entries. @@ -163,7 +157,7 @@ TEST(SafeBrowsingProtocolParsingTest, TestAddBigChunk) { SafeBrowsingProtocolParser parser; bool re_key = false; - std::deque<SBChunk> chunks; + SBChunkList chunks; bool result = parser.ParseChunk(add_chunk.data(), static_cast<int>(add_chunk.length()), "", "", &re_key, &chunks); @@ -177,8 +171,6 @@ TEST(SafeBrowsingProtocolParsingTest, TestAddBigChunk) { const SBChunkHost& host = chunks[0].hosts[0]; EXPECT_EQ(host.host, 0x61616161); EXPECT_EQ(host.entry->prefix_count(), 260); - - safe_browsing_util::FreeChunks(&chunks); } // Test parsing one sub chunk. @@ -191,7 +183,7 @@ TEST(SafeBrowsingProtocolParsingTest, TestSubChunk) { // Run the parse. SafeBrowsingProtocolParser parser; bool re_key = false; - std::deque<SBChunk> chunks; + SBChunkList chunks; bool result = parser.ParseChunk(sub_chunk.data(), static_cast<int>(sub_chunk.length()), "", "", &re_key, &chunks); @@ -229,8 +221,6 @@ TEST(SafeBrowsingProtocolParsingTest, TestSubChunk) { EXPECT_EQ(entry->PrefixAt(0), 0x38383838); EXPECT_EQ(entry->ChunkIdAtPrefix(1), 0x79797979); EXPECT_EQ(entry->PrefixAt(1), 0x39393939); - - safe_browsing_util::FreeChunks(&chunks); } // Test parsing one sub chunk with full hashes. @@ -252,7 +242,7 @@ TEST(SafeBrowsingProtocolParsingTest, TestSubFullChunk) { // Run the parse. SafeBrowsingProtocolParser parser; bool re_key = false; - std::deque<SBChunk> chunks; + SBChunkList chunks; bool result = parser.ParseChunk(sub_chunk.data(), static_cast<int>(sub_chunk.length()), "", "", &re_key, &chunks); @@ -271,8 +261,6 @@ TEST(SafeBrowsingProtocolParsingTest, TestSubFullChunk) { EXPECT_TRUE(entry->FullHashAt(0) == full_hash1); EXPECT_EQ(entry->ChunkIdAtPrefix(1), 0x7a7a7a7a); EXPECT_TRUE(entry->FullHashAt(1) == full_hash2); - - safe_browsing_util::FreeChunks(&chunks); } // Test parsing the SafeBrowsing update response. @@ -609,7 +597,7 @@ TEST(SafeBrowsingProtocolParsingTest, TestZeroSizeAddChunk) { std::string add_chunk("a:1:4:0\n"); SafeBrowsingProtocolParser parser; bool re_key = false; - std::deque<SBChunk> chunks; + SBChunkList chunks; bool result = parser.ParseChunk(add_chunk.data(), static_cast<int>(add_chunk.length()), @@ -619,8 +607,6 @@ TEST(SafeBrowsingProtocolParsingTest, TestZeroSizeAddChunk) { EXPECT_EQ(chunks[0].chunk_number, 1); EXPECT_EQ(chunks[0].hosts.size(), static_cast<size_t>(0)); - safe_browsing_util::FreeChunks(&chunks); - // Now test a zero size chunk in between normal chunks. chunks.clear(); std::string add_chunks("a:1:4:18\n1234\001abcd5678\001wxyz" @@ -647,8 +633,6 @@ TEST(SafeBrowsingProtocolParsingTest, TestZeroSizeAddChunk) { EXPECT_EQ(chunks[2].hosts.size(), static_cast<size_t>(1)); EXPECT_EQ(chunks[2].hosts[0].host, 0x65666163); EXPECT_EQ(chunks[2].hosts[0].entry->PrefixAt(0), 0x66656562); - - safe_browsing_util::FreeChunks(&chunks); } // Test parsing a zero sized sub chunk. @@ -656,7 +640,7 @@ TEST(SafeBrowsingProtocolParsingTest, TestZeroSizeSubChunk) { std::string sub_chunk("s:9:4:0\n"); SafeBrowsingProtocolParser parser; bool re_key = false; - std::deque<SBChunk> chunks; + SBChunkList chunks; bool result = parser.ParseChunk(sub_chunk.data(), static_cast<int>(sub_chunk.length()), @@ -665,8 +649,6 @@ TEST(SafeBrowsingProtocolParsingTest, TestZeroSizeSubChunk) { EXPECT_EQ(chunks.size(), static_cast<size_t>(1)); EXPECT_EQ(chunks[0].chunk_number, 9); EXPECT_EQ(chunks[0].hosts.size(), static_cast<size_t>(0)); - - safe_browsing_util::FreeChunks(&chunks); chunks.clear(); // Test parsing a zero sized sub chunk mixed in with content carrying chunks. @@ -698,8 +680,6 @@ TEST(SafeBrowsingProtocolParsingTest, TestZeroSizeSubChunk) { EXPECT_EQ(chunks[2].hosts[1].entry->prefix_count(), 1); EXPECT_EQ(chunks[2].hosts[1].entry->PrefixAt(0), 0x6f6e6d6c); EXPECT_EQ(chunks[2].hosts[1].entry->ChunkIdAtPrefix(0), 0x35363738); - - safe_browsing_util::FreeChunks(&chunks); } TEST(SafeBrowsingProtocolParsingTest, TestVerifyUpdateMac) { @@ -765,7 +745,7 @@ TEST(SafeBrowsingProtocolParsingTest, TestVerifyChunkMac) { }; bool re_key = false; - std::deque<SBChunk> chunks; + SBChunkList chunks; const std::string key("v_aDSz6jI92WeHCOoZ07QA=="); const std::string mac("W9Xp2fUcQ9V66If6Cvsrstpa4Kk="); @@ -773,6 +753,4 @@ TEST(SafeBrowsingProtocolParsingTest, TestVerifyChunkMac) { sizeof(chunk), key, mac, &re_key, &chunks)); EXPECT_FALSE(re_key); - - safe_browsing_util::FreeChunks(&chunks); } |