Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(449)

Unified Diff: chrome/browser/safe_browsing/safe_browsing_database_unittest.cc

Issue 3846004: Delete safe_browsing_database tests and test data. (Closed) Base URL: http://git.chromium.org/git/chromium.git
Patch Set: Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/test/data/safe_browsing/download_update.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/safe_browsing/safe_browsing_database_unittest.cc
diff --git a/chrome/browser/safe_browsing/safe_browsing_database_unittest.cc b/chrome/browser/safe_browsing/safe_browsing_database_unittest.cc
index 6407e534eec1d7a421cca0e974014b9db92c4bdb..0095efb04e3ec3f2179823db10655596408d80f1 100644
--- a/chrome/browser/safe_browsing/safe_browsing_database_unittest.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_database_unittest.cc
@@ -7,17 +7,11 @@
#include "app/sql/connection.h"
#include "app/sql/statement.h"
#include "base/file_util.h"
-#include "base/format_macros.h"
#include "base/logging.h"
#include "base/message_loop.h"
-#include "base/metrics/stats_counters.h"
-#include "base/path_service.h"
-#include "base/process_util.h"
#include "base/scoped_temp_dir.h"
#include "base/sha2.h"
-#include "base/string_util.h"
#include "base/time.h"
-#include "chrome/browser/safe_browsing/protocol_parser.h"
#include "chrome/browser/safe_browsing/safe_browsing_database.h"
#include "chrome/browser/safe_browsing/safe_browsing_store_file.h"
#include "chrome/browser/safe_browsing/safe_browsing_store_sqlite.h"
@@ -1164,234 +1158,3 @@ TEST_F(SafeBrowsingDatabaseTest, DISABLED_FileCorruptionHandling) {
database_.reset();
}
-
-namespace {
-
-void PrintStat(const char* name) {
- int value = base::StatsTable::current()->GetCounterValue(name);
- SB_DLOG(INFO) << StringPrintf("%s %d", name, value);
-}
-
-FilePath GetFullSBDataPath(const FilePath& path) {
- FilePath full_path;
- if (!PathService::Get(base::DIR_SOURCE_ROOT, &full_path)) {
- ADD_FAILURE() << "Unable to find test DIR_SOURCE_ROOT for test data.";
- return FilePath();
- }
- full_path = full_path.AppendASCII("chrome");
- full_path = full_path.AppendASCII("test");
- full_path = full_path.AppendASCII("data");
- full_path = full_path.AppendASCII("safe_browsing");
- full_path = full_path.Append(path);
- return full_path;
-}
-
-// TODO(shess): The clients of this structure manually manage
-// |chunks|. Improve this code to apply the RAII idiom to manage
-// |chunks|.
-struct ChunksInfo {
- SBChunkList* chunks; // weak
- std::string listname;
-};
-
-// TODO(shess): Move this into SafeBrowsingDatabaseTest.
-void PerformUpdate(SafeBrowsingDatabaseNew* database,
- const FilePath& database_filename,
- const FilePath& initial_db,
- const std::vector<ChunksInfo>& chunks,
- const std::vector<SBChunkDelete>& deletes) {
- base::IoCounters before, after;
-
- if (!initial_db.empty()) {
- FilePath full_initial_db = GetFullSBDataPath(initial_db);
- ASSERT_FALSE(full_initial_db.empty());
- ASSERT_TRUE(file_util::PathExists(full_initial_db));
- ASSERT_TRUE(file_util::CopyFile(full_initial_db, database_filename));
- }
-
- Time before_time = Time::Now();
- base::ProcessHandle handle = base::Process::Current().handle();
- scoped_ptr<base::ProcessMetrics> metric(
-#if !defined(OS_MACOSX)
- base::ProcessMetrics::CreateProcessMetrics(handle));
-#else
- // Getting stats only for the current process is enough, so NULL is fine.
- base::ProcessMetrics::CreateProcessMetrics(handle, NULL));
-#endif
- // Get IO stats. These are currently not supported on Mac, and may not be
- // available for Linux, so we check the result and only show IO stats if
- // they are available.
- bool gotIOCounters = metric->GetIOCounters(&before);
-
- std::vector<SBListChunkRanges> lists;
- EXPECT_TRUE(database->UpdateStarted(&lists));
- database->DeleteChunks(deletes);
- for (size_t i = 0; i < chunks.size(); ++i)
- database->InsertChunks(chunks[i].listname, *chunks[i].chunks);
-
- database->UpdateFinished(true);
-
- gotIOCounters = gotIOCounters && metric->GetIOCounters(&after);
-
- if (gotIOCounters) {
- SB_DLOG(INFO) << StringPrintf("I/O Read Bytes: %" PRIu64,
- after.ReadTransferCount - before.ReadTransferCount);
- SB_DLOG(INFO) << StringPrintf("I/O Write Bytes: %" PRIu64,
- after.WriteTransferCount - before.WriteTransferCount);
- SB_DLOG(INFO) << StringPrintf("I/O Reads: %" PRIu64,
- after.ReadOperationCount - before.ReadOperationCount);
- SB_DLOG(INFO) << StringPrintf("I/O Writes: %" PRIu64,
- after.WriteOperationCount - before.WriteOperationCount);
- }
- SB_DLOG(INFO) << StringPrintf("Finished in %" PRId64 " ms",
- (Time::Now() - before_time).InMilliseconds());
-
- PrintStat("c:SB.HostSelect");
- PrintStat("c:SB.HostSelectForBloomFilter");
- PrintStat("c:SB.HostReplace");
- PrintStat("c:SB.HostInsert");
- PrintStat("c:SB.HostDelete");
- PrintStat("c:SB.ChunkSelect");
- PrintStat("c:SB.ChunkInsert");
- PrintStat("c:SB.ChunkDelete");
- PrintStat("c:SB.TransactionCommit");
-}
-
-void UpdateDatabase(SafeBrowsingDatabaseNew* database,
- const FilePath& database_filename,
- const FilePath& initial_db,
- const FilePath& response_path,
- const FilePath& updates_path) {
- // First we read the chunks from disk, so that this isn't counted in IO bytes.
- std::vector<ChunksInfo> chunks;
-
- SafeBrowsingProtocolParser parser;
- if (!updates_path.empty()) {
- FilePath data_dir = GetFullSBDataPath(updates_path);
- ASSERT_FALSE(data_dir.empty());
- ASSERT_TRUE(file_util::PathExists(data_dir));
- file_util::FileEnumerator file_enum(data_dir, false,
- file_util::FileEnumerator::FILES);
- while (true) {
- FilePath file = file_enum.Next();
- if (file.empty())
- break;
-
- int64 size64;
- bool result = file_util::GetFileSize(file, &size64);
- ASSERT_TRUE(result);
-
- int size = static_cast<int>(size64);
- scoped_array<char> data(new char[size]);
- file_util::ReadFile(file, data.get(), size);
-
- ChunksInfo info;
- info.chunks = new SBChunkList;
-
- bool re_key;
- result = parser.ParseChunk(data.get(), size, "", "",
- &re_key, info.chunks);
- ASSERT_TRUE(result);
-
- info.listname = WideToASCII(file.BaseName().ToWStringHack());
- size_t index = info.listname.find('_'); // Get rid fo the _s or _a.
- info.listname.resize(index);
- info.listname.erase(0, 3); // Get rid of the 000 etc.
-
- chunks.push_back(info);
- }
- }
-
- std::vector<SBChunkDelete> deletes;
- if (!response_path.empty()) {
- std::string update;
- FilePath full_response_path = GetFullSBDataPath(response_path);
- ASSERT_FALSE(full_response_path.empty());
- ASSERT_TRUE(file_util::PathExists(full_response_path));
- if (file_util::ReadFileToString(full_response_path, &update)) {
- int next_update;
- bool result, rekey, reset;
- std::vector<ChunkUrl> urls;
- result = parser.ParseUpdate(update.c_str(),
- static_cast<int>(update.length()),
- "",
- &next_update,
- &rekey,
- &reset,
- &deletes,
- &urls);
- ASSERT_TRUE(result);
- if (!updates_path.empty())
- ASSERT_EQ(urls.size(), chunks.size());
- }
- }
-
- PerformUpdate(database, database_filename, initial_db, chunks, deletes);
-
- // TODO(shess): Make ChunksInfo handle this via scoping.
- for (std::vector<ChunksInfo>::iterator iter = chunks.begin();
- iter != chunks.end(); ++iter) {
- delete iter->chunks;
- iter->chunks = NULL;
- }
-}
-
-// Construct the shared base path used by the GetOld* functions.
-FilePath BasePath() {
- return FilePath(FILE_PATH_LITERAL("old"));
-}
-
-FilePath GetOldSafeBrowsingPath() {
- return BasePath().AppendASCII("SafeBrowsing");
-}
-
-FilePath GetOldResponsePath() {
- return BasePath().AppendASCII("response");
-}
-
-FilePath GetOldUpdatesPath() {
- return BasePath().AppendASCII("updates");
-}
-
-} // namespace
-
-// Counts the IO needed for the initial update of a database.
-// test\data\safe_browsing\download_update.py was used to fetch the add/sub
-// chunks that are read, in order to get repeatable runs.
-TEST_F(SafeBrowsingDatabaseTest, DatabaseInitialIO) {
- UpdateDatabase(database_.get(), database_filename_,
- FilePath(), FilePath(), FilePath().AppendASCII("initial"));
-}
-
-// Counts the IO needed to update a month old database.
-// The data files were generated by running "..\download_update.py postdata"
-// in the "safe_browsing\old" directory.
-TEST_F(SafeBrowsingDatabaseTest, DatabaseOldIO) {
- UpdateDatabase(database_.get(), database_filename_, GetOldSafeBrowsingPath(),
- GetOldResponsePath(), GetOldUpdatesPath());
-}
-
-// Like DatabaseOldIO but only the deletes.
-TEST_F(SafeBrowsingDatabaseTest, DatabaseOldDeletesIO) {
- UpdateDatabase(database_.get(), database_filename_,
- GetOldSafeBrowsingPath(), GetOldResponsePath(), FilePath());
-}
-
-// Like DatabaseOldIO but only the updates.
-TEST_F(SafeBrowsingDatabaseTest, DatabaseOldUpdatesIO) {
- UpdateDatabase(database_.get(), database_filename_,
- GetOldSafeBrowsingPath(), FilePath(), GetOldUpdatesPath());
-}
-
-// Does a a lot of addel's on very large chunks.
-TEST_F(SafeBrowsingDatabaseTest, DatabaseOldLotsofDeletesIO) {
- std::vector<ChunksInfo> chunks;
- std::vector<SBChunkDelete> deletes;
- SBChunkDelete del;
- del.is_sub_del = false;
- del.list_name = safe_browsing_util::kMalwareList;
- del.chunk_del.push_back(ChunkRange(3539, 3579));
- deletes.push_back(del);
- PerformUpdate(database_.get(), database_filename_,
- GetOldSafeBrowsingPath(), chunks, deletes);
-}
« no previous file with comments | « no previous file | chrome/test/data/safe_browsing/download_update.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698