OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cstring> | 8 #include <cstring> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 30 matching lines...) Expand all Loading... |
41 base::ScopedTempDir temp_directory; | 41 base::ScopedTempDir temp_directory; |
42 ASSERT_TRUE(temp_directory.CreateUniqueTempDir()); | 42 ASSERT_TRUE(temp_directory.CreateUniqueTempDir()); |
43 | 43 |
44 const std::string key("key"); | 44 const std::string key("key"); |
45 const std::string value("value"); | 45 const std::string value("value"); |
46 std::string put_value; | 46 std::string put_value; |
47 std::string got_value; | 47 std::string got_value; |
48 SimpleComparator comparator; | 48 SimpleComparator comparator; |
49 | 49 |
50 std::unique_ptr<LevelDBDatabase> leveldb; | 50 std::unique_ptr<LevelDBDatabase> leveldb; |
51 LevelDBDatabase::Open(temp_directory.path(), &comparator, &leveldb); | 51 LevelDBDatabase::Open(temp_directory.GetPath(), &comparator, &leveldb); |
52 EXPECT_TRUE(leveldb); | 52 EXPECT_TRUE(leveldb); |
53 put_value = value; | 53 put_value = value; |
54 leveldb::Status status = leveldb->Put(key, &put_value); | 54 leveldb::Status status = leveldb->Put(key, &put_value); |
55 EXPECT_TRUE(status.ok()); | 55 EXPECT_TRUE(status.ok()); |
56 leveldb.reset(); | 56 leveldb.reset(); |
57 EXPECT_FALSE(leveldb); | 57 EXPECT_FALSE(leveldb); |
58 | 58 |
59 LevelDBDatabase::Open(temp_directory.path(), &comparator, &leveldb); | 59 LevelDBDatabase::Open(temp_directory.GetPath(), &comparator, &leveldb); |
60 EXPECT_TRUE(leveldb); | 60 EXPECT_TRUE(leveldb); |
61 bool found = false; | 61 bool found = false; |
62 status = leveldb->Get(key, &got_value, &found); | 62 status = leveldb->Get(key, &got_value, &found); |
63 EXPECT_TRUE(status.ok()); | 63 EXPECT_TRUE(status.ok()); |
64 EXPECT_TRUE(found); | 64 EXPECT_TRUE(found); |
65 EXPECT_EQ(value, got_value); | 65 EXPECT_EQ(value, got_value); |
66 leveldb.reset(); | 66 leveldb.reset(); |
67 EXPECT_FALSE(leveldb); | 67 EXPECT_FALSE(leveldb); |
68 | 68 |
69 base::FilePath file_path = temp_directory.path().AppendASCII("CURRENT"); | 69 base::FilePath file_path = temp_directory.GetPath().AppendASCII("CURRENT"); |
70 base::File file(file_path, base::File::FLAG_OPEN | base::File::FLAG_WRITE); | 70 base::File file(file_path, base::File::FLAG_OPEN | base::File::FLAG_WRITE); |
71 file.SetLength(0); | 71 file.SetLength(0); |
72 file.Close(); | 72 file.Close(); |
73 | 73 |
74 status = LevelDBDatabase::Open(temp_directory.path(), &comparator, &leveldb); | 74 status = |
| 75 LevelDBDatabase::Open(temp_directory.GetPath(), &comparator, &leveldb); |
75 EXPECT_FALSE(leveldb); | 76 EXPECT_FALSE(leveldb); |
76 EXPECT_FALSE(status.ok()); | 77 EXPECT_FALSE(status.ok()); |
77 EXPECT_TRUE(status.IsCorruption()); | 78 EXPECT_TRUE(status.IsCorruption()); |
78 | 79 |
79 status = LevelDBDatabase::Destroy(temp_directory.path()); | 80 status = LevelDBDatabase::Destroy(temp_directory.GetPath()); |
80 EXPECT_TRUE(status.ok()); | 81 EXPECT_TRUE(status.ok()); |
81 | 82 |
82 status = LevelDBDatabase::Open(temp_directory.path(), &comparator, &leveldb); | 83 status = |
| 84 LevelDBDatabase::Open(temp_directory.GetPath(), &comparator, &leveldb); |
83 EXPECT_TRUE(status.ok()); | 85 EXPECT_TRUE(status.ok()); |
84 EXPECT_TRUE(leveldb); | 86 EXPECT_TRUE(leveldb); |
85 status = leveldb->Get(key, &got_value, &found); | 87 status = leveldb->Get(key, &got_value, &found); |
86 EXPECT_TRUE(status.ok()); | 88 EXPECT_TRUE(status.ok()); |
87 EXPECT_FALSE(found); | 89 EXPECT_FALSE(found); |
88 } | 90 } |
89 | 91 |
90 TEST(LevelDBDatabaseTest, Transaction) { | 92 TEST(LevelDBDatabaseTest, Transaction) { |
91 base::ScopedTempDir temp_directory; | 93 base::ScopedTempDir temp_directory; |
92 ASSERT_TRUE(temp_directory.CreateUniqueTempDir()); | 94 ASSERT_TRUE(temp_directory.CreateUniqueTempDir()); |
93 | 95 |
94 const std::string key("key"); | 96 const std::string key("key"); |
95 std::string got_value; | 97 std::string got_value; |
96 std::string put_value; | 98 std::string put_value; |
97 SimpleComparator comparator; | 99 SimpleComparator comparator; |
98 | 100 |
99 std::unique_ptr<LevelDBDatabase> leveldb; | 101 std::unique_ptr<LevelDBDatabase> leveldb; |
100 LevelDBDatabase::Open(temp_directory.path(), &comparator, &leveldb); | 102 LevelDBDatabase::Open(temp_directory.GetPath(), &comparator, &leveldb); |
101 EXPECT_TRUE(leveldb); | 103 EXPECT_TRUE(leveldb); |
102 | 104 |
103 const std::string old_value("value"); | 105 const std::string old_value("value"); |
104 put_value = old_value; | 106 put_value = old_value; |
105 leveldb::Status status = leveldb->Put(key, &put_value); | 107 leveldb::Status status = leveldb->Put(key, &put_value); |
106 EXPECT_TRUE(status.ok()); | 108 EXPECT_TRUE(status.ok()); |
107 | 109 |
108 scoped_refptr<LevelDBTransaction> transaction = | 110 scoped_refptr<LevelDBTransaction> transaction = |
109 new LevelDBTransaction(leveldb.get()); | 111 new LevelDBTransaction(leveldb.get()); |
110 | 112 |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 ASSERT_TRUE(temp_directory.CreateUniqueTempDir()); | 158 ASSERT_TRUE(temp_directory.CreateUniqueTempDir()); |
157 | 159 |
158 const std::string key1("key1"); | 160 const std::string key1("key1"); |
159 const std::string value1("value1"); | 161 const std::string value1("value1"); |
160 const std::string key2("key2"); | 162 const std::string key2("key2"); |
161 const std::string value2("value2"); | 163 const std::string value2("value2"); |
162 std::string put_value; | 164 std::string put_value; |
163 SimpleComparator comparator; | 165 SimpleComparator comparator; |
164 | 166 |
165 std::unique_ptr<LevelDBDatabase> leveldb; | 167 std::unique_ptr<LevelDBDatabase> leveldb; |
166 LevelDBDatabase::Open(temp_directory.path(), &comparator, &leveldb); | 168 LevelDBDatabase::Open(temp_directory.GetPath(), &comparator, &leveldb); |
167 EXPECT_TRUE(leveldb); | 169 EXPECT_TRUE(leveldb); |
168 | 170 |
169 put_value = value1; | 171 put_value = value1; |
170 leveldb::Status s = leveldb->Put(key1, &put_value); | 172 leveldb::Status s = leveldb->Put(key1, &put_value); |
171 EXPECT_TRUE(s.ok()); | 173 EXPECT_TRUE(s.ok()); |
172 put_value = value2; | 174 put_value = value2; |
173 s = leveldb->Put(key2, &put_value); | 175 s = leveldb->Put(key2, &put_value); |
174 EXPECT_TRUE(s.ok()); | 176 EXPECT_TRUE(s.ok()); |
175 | 177 |
176 scoped_refptr<LevelDBTransaction> transaction = | 178 scoped_refptr<LevelDBTransaction> transaction = |
(...skipping 30 matching lines...) Expand all Loading... |
207 const std::string value1("value1"); | 209 const std::string value1("value1"); |
208 const std::string value2("value2"); | 210 const std::string value2("value2"); |
209 const std::string value3("value3"); | 211 const std::string value3("value3"); |
210 | 212 |
211 std::string put_value; | 213 std::string put_value; |
212 std::string got_value; | 214 std::string got_value; |
213 SimpleComparator comparator; | 215 SimpleComparator comparator; |
214 bool found; | 216 bool found; |
215 | 217 |
216 std::unique_ptr<LevelDBDatabase> leveldb; | 218 std::unique_ptr<LevelDBDatabase> leveldb; |
217 LevelDBDatabase::Open(temp_directory.path(), &comparator, &leveldb); | 219 LevelDBDatabase::Open(temp_directory.GetPath(), &comparator, &leveldb); |
218 EXPECT_TRUE(leveldb); | 220 EXPECT_TRUE(leveldb); |
219 | 221 |
220 scoped_refptr<LevelDBTransaction> transaction = | 222 scoped_refptr<LevelDBTransaction> transaction = |
221 new LevelDBTransaction(leveldb.get()); | 223 new LevelDBTransaction(leveldb.get()); |
222 | 224 |
223 put_value = value1; | 225 put_value = value1; |
224 transaction->Put(key1, &put_value); | 226 transaction->Put(key1, &put_value); |
225 | 227 |
226 put_value = value2; | 228 put_value = value2; |
227 transaction->Put(key2, &put_value); | 229 transaction->Put(key2, &put_value); |
(...skipping 13 matching lines...) Expand all Loading... |
241 EXPECT_TRUE(status.ok()); | 243 EXPECT_TRUE(status.ok()); |
242 EXPECT_TRUE(found); | 244 EXPECT_TRUE(found); |
243 EXPECT_EQ(value3, got_value); | 245 EXPECT_EQ(value3, got_value); |
244 } | 246 } |
245 | 247 |
246 TEST(LevelDB, Locking) { | 248 TEST(LevelDB, Locking) { |
247 base::ScopedTempDir temp_directory; | 249 base::ScopedTempDir temp_directory; |
248 ASSERT_TRUE(temp_directory.CreateUniqueTempDir()); | 250 ASSERT_TRUE(temp_directory.CreateUniqueTempDir()); |
249 | 251 |
250 leveldb::Env* env = LevelDBEnv::Get(); | 252 leveldb::Env* env = LevelDBEnv::Get(); |
251 base::FilePath file = temp_directory.path().AppendASCII("LOCK"); | 253 base::FilePath file = temp_directory.GetPath().AppendASCII("LOCK"); |
252 leveldb::FileLock* lock; | 254 leveldb::FileLock* lock; |
253 leveldb::Status status = env->LockFile(file.AsUTF8Unsafe(), &lock); | 255 leveldb::Status status = env->LockFile(file.AsUTF8Unsafe(), &lock); |
254 EXPECT_TRUE(status.ok()); | 256 EXPECT_TRUE(status.ok()); |
255 | 257 |
256 status = env->UnlockFile(lock); | 258 status = env->UnlockFile(lock); |
257 EXPECT_TRUE(status.ok()); | 259 EXPECT_TRUE(status.ok()); |
258 | 260 |
259 status = env->LockFile(file.AsUTF8Unsafe(), &lock); | 261 status = env->LockFile(file.AsUTF8Unsafe(), &lock); |
260 EXPECT_TRUE(status.ok()); | 262 EXPECT_TRUE(status.ok()); |
261 | 263 |
262 leveldb::FileLock* lock2; | 264 leveldb::FileLock* lock2; |
263 status = env->LockFile(file.AsUTF8Unsafe(), &lock2); | 265 status = env->LockFile(file.AsUTF8Unsafe(), &lock2); |
264 EXPECT_FALSE(status.ok()); | 266 EXPECT_FALSE(status.ok()); |
265 | 267 |
266 status = env->UnlockFile(lock); | 268 status = env->UnlockFile(lock); |
267 EXPECT_TRUE(status.ok()); | 269 EXPECT_TRUE(status.ok()); |
268 } | 270 } |
269 | 271 |
270 } // namespace content | 272 } // namespace content |
OLD | NEW |