summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/leveldatabase/env_chromium_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/leveldatabase/env_chromium_unittest.cc')
-rw-r--r--chromium/third_party/leveldatabase/env_chromium_unittest.cc65
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(); }