Index: net/disk_cache/simple/simple_version_upgrade_unittest.cc |
diff --git a/net/disk_cache/simple/simple_version_upgrade_unittest.cc b/net/disk_cache/simple/simple_version_upgrade_unittest.cc |
deleted file mode 100644 |
index fab2a4c1eb20721fad9ec08817ce660743393439..0000000000000000000000000000000000000000 |
--- a/net/disk_cache/simple/simple_version_upgrade_unittest.cc |
+++ /dev/null |
@@ -1,140 +0,0 @@ |
-// Copyright 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "net/disk_cache/simple/simple_version_upgrade.h" |
- |
-#include "base/basictypes.h" |
-#include "base/files/file_path.h" |
-#include "base/files/file_util.h" |
-#include "base/files/scoped_temp_dir.h" |
-#include "base/format_macros.h" |
-#include "base/strings/stringprintf.h" |
-#include "net/base/net_errors.h" |
-#include "net/disk_cache/simple/simple_backend_version.h" |
-#include "net/disk_cache/simple/simple_entry_format_history.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-// The migration process relies on ability to rename newly created files, which |
-// could be problematic on Windows XP. |
-#if defined(OS_POSIX) |
- |
-namespace { |
- |
-// Same as |disk_cache::kSimpleInitialMagicNumber|. |
-const uint64 kSimpleInitialMagicNumber = GG_UINT64_C(0xfcfb6d1ba7725c30); |
- |
-// The "fake index" file that cache backends use to distinguish whether the |
-// cache belongs to one backend or another. |
-const char kFakeIndexFileName[] = "index"; |
- |
-// Same as |SimpleIndexFile::kIndexFileName|. |
-const char kIndexFileName[] = "the-real-index"; |
- |
-bool WriteFakeIndexFileV5(const base::FilePath& cache_path) { |
- disk_cache::FakeIndexData data; |
- data.version = 5; |
- data.initial_magic_number = kSimpleInitialMagicNumber; |
- data.unused_must_be_zero1 = 0; |
- data.unused_must_be_zero2 = 0; |
- const base::FilePath file_name = cache_path.AppendASCII("index"); |
- return sizeof(data) == |
- base::WriteFile( |
- file_name, reinterpret_cast<const char*>(&data), sizeof(data)); |
-} |
- |
-TEST(SimpleVersionUpgradeTest, FailsToMigrateBackwards) { |
- base::ScopedTempDir cache_dir; |
- ASSERT_TRUE(cache_dir.CreateUniqueTempDir()); |
- const base::FilePath cache_path = cache_dir.path(); |
- |
- disk_cache::FakeIndexData data; |
- data.version = 100500; |
- data.initial_magic_number = kSimpleInitialMagicNumber; |
- data.unused_must_be_zero1 = 0; |
- data.unused_must_be_zero2 = 0; |
- const base::FilePath file_name = cache_path.AppendASCII(kFakeIndexFileName); |
- ASSERT_EQ(implicit_cast<int>(sizeof(data)), |
- base::WriteFile( |
- file_name, reinterpret_cast<const char*>(&data), sizeof(data))); |
- EXPECT_FALSE(disk_cache::UpgradeSimpleCacheOnDisk(cache_dir.path())); |
-} |
- |
-TEST(SimpleVersionUpgradeTest, FakeIndexVersionGetsUpdated) { |
- base::ScopedTempDir cache_dir; |
- ASSERT_TRUE(cache_dir.CreateUniqueTempDir()); |
- const base::FilePath cache_path = cache_dir.path(); |
- |
- WriteFakeIndexFileV5(cache_path); |
- const std::string file_contents("incorrectly serialized data"); |
- const base::FilePath index_file = cache_path.AppendASCII(kIndexFileName); |
- ASSERT_EQ(implicit_cast<int>(file_contents.size()), |
- base::WriteFile( |
- index_file, file_contents.data(), file_contents.size())); |
- |
- // Upgrade. |
- ASSERT_TRUE(disk_cache::UpgradeSimpleCacheOnDisk(cache_path)); |
- |
- // Check that the version in the fake index file is updated. |
- std::string new_fake_index_contents; |
- ASSERT_TRUE(base::ReadFileToString(cache_path.AppendASCII(kFakeIndexFileName), |
- &new_fake_index_contents)); |
- const disk_cache::FakeIndexData* fake_index_header; |
- EXPECT_EQ(sizeof(*fake_index_header), new_fake_index_contents.size()); |
- fake_index_header = reinterpret_cast<const disk_cache::FakeIndexData*>( |
- new_fake_index_contents.data()); |
- EXPECT_EQ(disk_cache::kSimpleVersion, fake_index_header->version); |
- EXPECT_EQ(kSimpleInitialMagicNumber, fake_index_header->initial_magic_number); |
-} |
- |
-TEST(SimpleVersionUpgradeTest, UpgradeV5V6IndexMustDisappear) { |
- base::ScopedTempDir cache_dir; |
- ASSERT_TRUE(cache_dir.CreateUniqueTempDir()); |
- const base::FilePath cache_path = cache_dir.path(); |
- |
- WriteFakeIndexFileV5(cache_path); |
- const std::string file_contents("incorrectly serialized data"); |
- const base::FilePath index_file = cache_path.AppendASCII(kIndexFileName); |
- ASSERT_EQ(implicit_cast<int>(file_contents.size()), |
- base::WriteFile( |
- index_file, file_contents.data(), file_contents.size())); |
- |
- // Create a few entry-like files. |
- const uint64 kEntries = 5; |
- for (uint64 entry_hash = 0; entry_hash < kEntries; ++entry_hash) { |
- for (int index = 0; index < 3; ++index) { |
- std::string file_name = |
- base::StringPrintf("%016" PRIx64 "_%1d", entry_hash, index); |
- std::string entry_contents = |
- file_contents + |
- base::StringPrintf(" %" PRIx64, implicit_cast<uint64>(entry_hash)); |
- ASSERT_EQ(implicit_cast<int>(entry_contents.size()), |
- base::WriteFile(cache_path.AppendASCII(file_name), |
- entry_contents.data(), |
- entry_contents.size())); |
- } |
- } |
- |
- // Upgrade. |
- ASSERT_TRUE(disk_cache::UpgradeIndexV5V6(cache_path)); |
- |
- // Check that the old index disappeared but the files remain unchanged. |
- EXPECT_FALSE(base::PathExists(index_file)); |
- for (uint64 entry_hash = 0; entry_hash < kEntries; ++entry_hash) { |
- for (int index = 0; index < 3; ++index) { |
- std::string file_name = |
- base::StringPrintf("%016" PRIx64 "_%1d", entry_hash, index); |
- std::string expected_contents = |
- file_contents + |
- base::StringPrintf(" %" PRIx64, implicit_cast<uint64>(entry_hash)); |
- std::string real_contents; |
- EXPECT_TRUE(base::ReadFileToString(cache_path.AppendASCII(file_name), |
- &real_contents)); |
- EXPECT_EQ(expected_contents, real_contents); |
- } |
- } |
-} |
- |
-} // namespace |
- |
-#endif // defined(OS_POSIX) |