diff options
Diffstat (limited to 'chromium/third_party/leveldatabase/env_chromium_unittest.cc')
-rw-r--r-- | chromium/third_party/leveldatabase/env_chromium_unittest.cc | 65 |
1 files changed, 48 insertions, 17 deletions
diff --git a/chromium/third_party/leveldatabase/env_chromium_unittest.cc b/chromium/third_party/leveldatabase/env_chromium_unittest.cc index 05669f1be01..a72620a09e0 100644 --- a/chromium/third_party/leveldatabase/env_chromium_unittest.cc +++ b/chromium/third_party/leveldatabase/env_chromium_unittest.cc @@ -3,11 +3,15 @@ // found in the LICENSE file. #include "base/file_util.h" +#include "base/files/file.h" #include "base/files/file_enumerator.h" #include "base/files/file_path.h" #include "base/files/scoped_temp_dir.h" #include "base/test/test_suite.h" -#include "env_chromium.h" +#include "env_chromium_stdio.h" +#if defined(OS_WIN) +#include "env_chromium_win.h" +#endif #include "testing/gtest/include/gtest/gtest.h" #include "third_party/leveldatabase/env_idb.h" #include "third_party/leveldatabase/src/include/leveldb/db.h" @@ -28,17 +32,16 @@ TEST(ErrorEncoding, OnlyAMethod) { EXPECT_EQ(-75, error); } -TEST(ErrorEncoding, PlatformFileError) { +TEST(ErrorEncoding, FileError) { const MethodID in_method = kWritableFileClose; - const base::PlatformFileError pfe = - base::PLATFORM_FILE_ERROR_INVALID_OPERATION; - const Status s = MakeIOError("Somefile.txt", "message", in_method, pfe); + const base::File::Error fe = base::File::FILE_ERROR_INVALID_OPERATION; + const Status s = MakeIOError("Somefile.txt", "message", in_method, fe); MethodID method; int error; EXPECT_EQ(METHOD_AND_PFE, ParseMethodAndError(s.ToString().c_str(), &method, &error)); EXPECT_EQ(in_method, method); - EXPECT_EQ(pfe, error); + EXPECT_EQ(fe, error); } TEST(ErrorEncoding, Errno) { @@ -54,6 +57,21 @@ TEST(ErrorEncoding, Errno) { EXPECT_EQ(some_errno, error); } +#if defined(OS_WIN) +TEST(ErrorEncoding, ErrnoWin32) { + const MethodID in_method = kWritableFileFlush; + const DWORD some_errno = ERROR_FILE_NOT_FOUND; + const Status s = + MakeIOErrorWin("Somefile.txt", "message", in_method, some_errno); + MethodID method; + int error; + EXPECT_EQ(METHOD_AND_ERRNO, + ParseMethodAndError(s.ToString().c_str(), &method, &error)); + EXPECT_EQ(in_method, method); + EXPECT_EQ(some_errno, error); +} +#endif + TEST(ErrorEncoding, NoEncodedMessage) { Status s = Status::IOError("Some message", "from leveldb itself"); MethodID method = kRandomAccessFileRead; @@ -63,7 +81,8 @@ TEST(ErrorEncoding, NoEncodedMessage) { EXPECT_EQ(4, error); } -class MyEnv : public ChromiumEnv { +template <typename T> +class MyEnv : public T { public: MyEnv() : directory_syncs_(0) {} int directory_syncs() { return directory_syncs_; } @@ -78,10 +97,23 @@ class MyEnv : public ChromiumEnv { int directory_syncs_; }; -TEST(ChromiumEnv, DirectorySyncing) { - MyEnv env; +template <typename T> +class ChromiumEnvMultiPlatformTests : public ::testing::Test { + public: +}; + +#if defined(OS_WIN) +typedef ::testing::Types<ChromiumEnvStdio, ChromiumEnvWin> ChromiumEnvMultiPlatformTestsTypes; +#else +typedef ::testing::Types<ChromiumEnvStdio> ChromiumEnvMultiPlatformTestsTypes; +#endif +TYPED_TEST_CASE(ChromiumEnvMultiPlatformTests, ChromiumEnvMultiPlatformTestsTypes); + +TYPED_TEST(ChromiumEnvMultiPlatformTests, DirectorySyncing) { + MyEnv<TypeParam> env; + base::ScopedTempDir dir; - dir.CreateUniqueTempDir(); + ASSERT_TRUE(dir.CreateUniqueTempDir()); base::FilePath dir_path = dir.path(); std::string some_data = "some data"; Slice data = some_data; @@ -144,7 +176,7 @@ TEST(ChromiumEnv, BackupTables) { options.env = IDBEnv(); base::ScopedTempDir scoped_temp_dir; - scoped_temp_dir.CreateUniqueTempDir(); + ASSERT_TRUE(scoped_temp_dir.CreateUniqueTempDir()); base::FilePath dir = scoped_temp_dir.path(); DB* db; @@ -176,7 +208,6 @@ TEST(ChromiumEnv, BackupTables) { // Ensure that deleting an ldb file also deletes its backup. int orig_ldb_files = CountFilesWithExtension(dir, FPL(".ldb")); - int orig_bak_files = CountFilesWithExtension(dir, FPL(".bak")); EXPECT_GT(ldb_files, 0); EXPECT_EQ(ldb_files, bak_files); EXPECT_TRUE(GetFirstLDBFile(dir, &ldb_file)); @@ -189,19 +220,19 @@ TEST(ChromiumEnv, BackupTables) { TEST(ChromiumEnv, GetChildrenEmptyDir) { base::ScopedTempDir scoped_temp_dir; - scoped_temp_dir.CreateUniqueTempDir(); + ASSERT_TRUE(scoped_temp_dir.CreateUniqueTempDir()); base::FilePath dir = scoped_temp_dir.path(); Env* env = IDBEnv(); std::vector<std::string> result; leveldb::Status status = env->GetChildren(dir.AsUTF8Unsafe(), &result); EXPECT_TRUE(status.ok()); - EXPECT_EQ(0, result.size()); + EXPECT_EQ(0U, result.size()); } TEST(ChromiumEnv, GetChildrenPriorResults) { base::ScopedTempDir scoped_temp_dir; - scoped_temp_dir.CreateUniqueTempDir(); + ASSERT_TRUE(scoped_temp_dir.CreateUniqueTempDir()); base::FilePath dir = scoped_temp_dir.path(); base::FilePath new_file_dir = dir.Append(FPL("tmp_file")); @@ -215,12 +246,12 @@ TEST(ChromiumEnv, GetChildrenPriorResults) { std::vector<std::string> result; leveldb::Status status = env->GetChildren(dir.AsUTF8Unsafe(), &result); EXPECT_TRUE(status.ok()); - EXPECT_EQ(1, result.size()); + EXPECT_EQ(1U, result.size()); // And a second time should also return one result status = env->GetChildren(dir.AsUTF8Unsafe(), &result); EXPECT_TRUE(status.ok()); - EXPECT_EQ(1, result.size()); + EXPECT_EQ(1U, result.size()); } int main(int argc, char** argv) { return base::TestSuite(argc, argv).Run(); } |