Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 // | 4 // |
| 5 // Unit tests for the SafeBrowsing storage system. | 5 // Unit tests for the SafeBrowsing storage system. |
| 6 | 6 |
| 7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
| 8 #include "base/format_macros.h" | |
| 8 #include "base/logging.h" | 9 #include "base/logging.h" |
| 9 #include "base/path_service.h" | 10 #include "base/path_service.h" |
| 10 #include "base/process_util.h" | 11 #include "base/process_util.h" |
| 11 #include "base/sha2.h" | 12 #include "base/sha2.h" |
| 12 #include "base/stats_counters.h" | 13 #include "base/stats_counters.h" |
| 13 #include "base/string_util.h" | 14 #include "base/string_util.h" |
| 14 #include "base/time.h" | 15 #include "base/time.h" |
| 15 #include "chrome/browser/safe_browsing/protocol_parser.h" | 16 #include "chrome/browser/safe_browsing/protocol_parser.h" |
| 16 #include "chrome/browser/safe_browsing/safe_browsing_database.h" | 17 #include "chrome/browser/safe_browsing/safe_browsing_database.h" |
| 17 #include "chrome/test/file_test_utils.h" | 18 #include "chrome/test/file_test_utils.h" |
| (...skipping 1033 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1051 } | 1052 } |
| 1052 | 1053 |
| 1053 struct ChunksInfo { | 1054 struct ChunksInfo { |
| 1054 std::deque<SBChunk>* chunks; | 1055 std::deque<SBChunk>* chunks; |
| 1055 std::string listname; | 1056 std::string listname; |
| 1056 }; | 1057 }; |
| 1057 | 1058 |
| 1058 void PeformUpdate(const std::wstring& initial_db, | 1059 void PeformUpdate(const std::wstring& initial_db, |
| 1059 const std::vector<ChunksInfo>& chunks, | 1060 const std::vector<ChunksInfo>& chunks, |
| 1060 std::vector<SBChunkDelete>* deletes) { | 1061 std::vector<SBChunkDelete>* deletes) { |
| 1061 // TODO(pinkerton): I don't think posix has any concept of IO counters, but | |
| 1062 // we can uncomment this when we implement ProcessMetrics::GetIOCounters | |
| 1063 IoCounters before, after; | 1062 IoCounters before, after; |
| 1064 | 1063 |
| 1065 FilePath path; | 1064 FilePath path; |
| 1066 PathService::Get(base::DIR_TEMP, &path); | 1065 PathService::Get(base::DIR_TEMP, &path); |
| 1067 path = path.AppendASCII("SafeBrowsingTestDatabase"); | 1066 path = path.AppendASCII("SafeBrowsingTestDatabase"); |
| 1068 | 1067 |
| 1069 // In case it existed from a previous run. | 1068 // In case it existed from a previous run. |
| 1070 file_util::Delete(path, false); | 1069 file_util::Delete(path, false); |
| 1071 | 1070 |
| 1072 if (!initial_db.empty()) { | 1071 if (!initial_db.empty()) { |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 1089 database->GetListsInfo(&lists); | 1088 database->GetListsInfo(&lists); |
| 1090 database->DeleteChunks(deletes); | 1089 database->DeleteChunks(deletes); |
| 1091 for (size_t i = 0; i < chunks.size(); ++i) | 1090 for (size_t i = 0; i < chunks.size(); ++i) |
| 1092 database->InsertChunks(chunks[i].listname, chunks[i].chunks); | 1091 database->InsertChunks(chunks[i].listname, chunks[i].chunks); |
| 1093 | 1092 |
| 1094 database->UpdateFinished(true); | 1093 database->UpdateFinished(true); |
| 1095 lists.clear(); | 1094 lists.clear(); |
| 1096 | 1095 |
| 1097 CHECK(metric->GetIOCounters(&after)); | 1096 CHECK(metric->GetIOCounters(&after)); |
| 1098 | 1097 |
| 1099 LOG(INFO) << StringPrintf("I/O Read Bytes: %d", | 1098 LOG(INFO) << StringPrintf("I/O Read Bytes: %"PRIu64, |
|
Mark Mentovai
2009/11/18 20:55:27
"I/O Read Bytes: %" PRIu64,
(with the space)
| |
| 1100 after.ReadTransferCount - before.ReadTransferCount); | 1099 after.ReadTransferCount - before.ReadTransferCount); |
| 1101 LOG(INFO) << StringPrintf("I/O Write Bytes: %d", | 1100 LOG(INFO) << StringPrintf("I/O Write Bytes: %"PRIu64, |
| 1102 after.WriteTransferCount - before.WriteTransferCount); | 1101 after.WriteTransferCount - before.WriteTransferCount); |
| 1103 LOG(INFO) << StringPrintf("I/O Reads: %d", | 1102 LOG(INFO) << StringPrintf("I/O Reads: %"PRIu64, |
| 1104 after.ReadOperationCount - before.ReadOperationCount); | 1103 after.ReadOperationCount - before.ReadOperationCount); |
| 1105 LOG(INFO) << StringPrintf("I/O Writes: %d", | 1104 LOG(INFO) << StringPrintf("I/O Writes: %"PRIu64, |
| 1106 after.WriteOperationCount - before.WriteOperationCount); | 1105 after.WriteOperationCount - before.WriteOperationCount); |
| 1107 LOG(INFO) << StringPrintf("Finished in %d ms", | 1106 LOG(INFO) << StringPrintf("Finished in %"PRId64" ms", |
| 1108 (Time::Now() - before_time).InMilliseconds()); | 1107 (Time::Now() - before_time).InMilliseconds()); |
| 1109 | 1108 |
| 1110 PrintStat("c:SB.HostSelect"); | 1109 PrintStat("c:SB.HostSelect"); |
| 1111 PrintStat("c:SB.HostSelectForBloomFilter"); | 1110 PrintStat("c:SB.HostSelectForBloomFilter"); |
| 1112 PrintStat("c:SB.HostReplace"); | 1111 PrintStat("c:SB.HostReplace"); |
| 1113 PrintStat("c:SB.HostInsert"); | 1112 PrintStat("c:SB.HostInsert"); |
| 1114 PrintStat("c:SB.HostDelete"); | 1113 PrintStat("c:SB.HostDelete"); |
| 1115 PrintStat("c:SB.ChunkSelect"); | 1114 PrintStat("c:SB.ChunkSelect"); |
| 1116 PrintStat("c:SB.ChunkInsert"); | 1115 PrintStat("c:SB.ChunkInsert"); |
| 1117 PrintStat("c:SB.ChunkDelete"); | 1116 PrintStat("c:SB.ChunkDelete"); |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1249 TEST(SafeBrowsingDatabase, DISABLED_DatabaseOldLotsofDeletesIO) { | 1248 TEST(SafeBrowsingDatabase, DISABLED_DatabaseOldLotsofDeletesIO) { |
| 1250 std::vector<ChunksInfo> chunks; | 1249 std::vector<ChunksInfo> chunks; |
| 1251 std::vector<SBChunkDelete>* deletes = new std::vector<SBChunkDelete>; | 1250 std::vector<SBChunkDelete>* deletes = new std::vector<SBChunkDelete>; |
| 1252 SBChunkDelete del; | 1251 SBChunkDelete del; |
| 1253 del.is_sub_del = false; | 1252 del.is_sub_del = false; |
| 1254 del.list_name = safe_browsing_util::kMalwareList; | 1253 del.list_name = safe_browsing_util::kMalwareList; |
| 1255 del.chunk_del.push_back(ChunkRange(3539, 3579)); | 1254 del.chunk_del.push_back(ChunkRange(3539, 3579)); |
| 1256 deletes->push_back(del); | 1255 deletes->push_back(del); |
| 1257 PeformUpdate(GetOldSafeBrowsingPath(), chunks, deletes); | 1256 PeformUpdate(GetOldSafeBrowsingPath(), chunks, deletes); |
| 1258 } | 1257 } |
| OLD | NEW |