| Index: third_party/leveldatabase/env_chromium_unittest.cc
|
| diff --git a/third_party/leveldatabase/env_chromium_unittest.cc b/third_party/leveldatabase/env_chromium_unittest.cc
|
| index 05669f1be011906d23017f8fd4f204d91e2fce1b..85767e646397c2936616ca734436d712c42552ef 100644
|
| --- a/third_party/leveldatabase/env_chromium_unittest.cc
|
| +++ b/third_party/leveldatabase/env_chromium_unittest.cc
|
| @@ -7,7 +7,10 @@
|
| #include "base/files/file_path.h"
|
| #include "base/files/scoped_temp_dir.h"
|
| #include "base/test/test_suite.h"
|
| -#include "env_chromium.h"
|
| +#if defined(OS_WIN)
|
| +#include "env_chromium_win32.h"
|
| +#endif
|
| +#include "env_chromium_posix.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "third_party/leveldatabase/env_idb.h"
|
| #include "third_party/leveldatabase/src/include/leveldb/db.h"
|
| @@ -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 =
|
| + MakeIOErrorWin32("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,23 +81,36 @@ TEST(ErrorEncoding, NoEncodedMessage) {
|
| EXPECT_EQ(4, error);
|
| }
|
|
|
| -class MyEnv : public ChromiumEnv {
|
| +class MyEnvDelegate : public ChromiumEnvDelegate {
|
| public:
|
| - MyEnv() : directory_syncs_(0) {}
|
| - int directory_syncs() { return directory_syncs_; }
|
| + MyEnvDelegate() : directory_syncs_(0) {}
|
| + int directory_syncs() const { return directory_syncs_; }
|
|
|
| - protected:
|
| virtual void DidSyncDir(const std::string& fname) {
|
| ++directory_syncs_;
|
| - ChromiumEnv::DidSyncDir(fname);
|
| }
|
|
|
| private:
|
| int directory_syncs_;
|
| };
|
|
|
| -TEST(ChromiumEnv, DirectorySyncing) {
|
| - MyEnv env;
|
| +template <typename T>
|
| +class ChromiumEnvMultiPlatformTests : public ::testing::Test {
|
| + public:
|
| +};
|
| +
|
| +#if defined(OS_WIN)
|
| +typedef ::testing::Types<ChromiumEnvPosix, ChromiumEnvWin32> ChromiumEnvMultiPlatformTestsTypes;
|
| +#else
|
| +typedef ::testing::Types<ChromiumEnvPosix> ChromiumEnvMultiPlatformTestsTypes;
|
| +#endif
|
| +TYPED_TEST_CASE(ChromiumEnvMultiPlatformTests, ChromiumEnvMultiPlatformTestsTypes);
|
| +
|
| +TYPED_TEST(ChromiumEnvMultiPlatformTests, DirectorySyncing) {
|
| + TypeParam env;
|
| + MyEnvDelegate* delegate(new MyEnvDelegate());
|
| + env.SetDelegate(delegate);
|
| +
|
| base::ScopedTempDir dir;
|
| dir.CreateUniqueTempDir();
|
| base::FilePath dir_path = dir.path();
|
| @@ -93,9 +124,9 @@ TEST(ChromiumEnv, DirectorySyncing) {
|
| EXPECT_TRUE(s.ok());
|
| scoped_ptr<WritableFile> manifest_file(manifest_file_ptr);
|
| manifest_file->Append(data);
|
| - EXPECT_EQ(0, env.directory_syncs());
|
| + EXPECT_EQ(0, delegate->directory_syncs());
|
| manifest_file->Append(data);
|
| - EXPECT_EQ(0, env.directory_syncs());
|
| + EXPECT_EQ(0, delegate->directory_syncs());
|
|
|
| std::string sst_file_name =
|
| FilePathToString(dir_path.Append(FILE_PATH_LITERAL("000003.sst")));
|
| @@ -104,12 +135,12 @@ TEST(ChromiumEnv, DirectorySyncing) {
|
| EXPECT_TRUE(s.ok());
|
| scoped_ptr<WritableFile> sst_file(sst_file_ptr);
|
| sst_file->Append(data);
|
| - EXPECT_EQ(0, env.directory_syncs());
|
| + EXPECT_EQ(0, delegate->directory_syncs());
|
|
|
| manifest_file->Append(data);
|
| - EXPECT_EQ(1, env.directory_syncs());
|
| + EXPECT_EQ(1, delegate->directory_syncs());
|
| manifest_file->Append(data);
|
| - EXPECT_EQ(1, env.directory_syncs());
|
| + EXPECT_EQ(1, delegate->directory_syncs());
|
| }
|
|
|
| int CountFilesWithExtension(const base::FilePath& dir,
|
| @@ -223,4 +254,6 @@ TEST(ChromiumEnv, GetChildrenPriorResults) {
|
| EXPECT_EQ(1, result.size());
|
| }
|
|
|
| -int main(int argc, char** argv) { return base::TestSuite(argc, argv).Run(); }
|
| +int main(int argc, char** argv) {
|
| + return base::TestSuite(argc, argv).Run();
|
| +}
|
|
|