leveldb-ruby 0.7 → 0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +1 -1
- data/leveldb/Makefile +70 -29
- data/leveldb/build_detect_platform +74 -0
- data/leveldb/db/builder.cc +2 -4
- data/leveldb/db/builder.h +4 -6
- data/leveldb/db/c.cc +471 -0
- data/leveldb/db/corruption_test.cc +21 -16
- data/leveldb/db/db_bench.cc +400 -200
- data/leveldb/db/db_impl.cc +276 -131
- data/leveldb/db/db_impl.h +22 -10
- data/leveldb/db/db_iter.cc +2 -1
- data/leveldb/db/db_test.cc +391 -43
- data/leveldb/db/dbformat.cc +31 -0
- data/leveldb/db/dbformat.h +51 -1
- data/leveldb/db/filename.h +1 -1
- data/leveldb/db/log_format.h +1 -1
- data/leveldb/db/log_reader.cc +16 -11
- data/leveldb/db/memtable.cc +37 -0
- data/leveldb/db/memtable.h +6 -0
- data/leveldb/db/repair.cc +17 -14
- data/leveldb/db/skiplist_test.cc +2 -2
- data/leveldb/db/version_edit.cc +7 -9
- data/leveldb/db/version_edit.h +2 -1
- data/leveldb/db/version_set.cc +416 -104
- data/leveldb/db/version_set.h +78 -14
- data/leveldb/db/version_set_test.cc +179 -0
- data/leveldb/db/write_batch_internal.h +2 -0
- data/leveldb/include/leveldb/c.h +246 -0
- data/leveldb/include/leveldb/db.h +14 -2
- data/leveldb/include/leveldb/env.h +31 -10
- data/leveldb/include/leveldb/options.h +7 -18
- data/leveldb/include/leveldb/slice.h +2 -2
- data/leveldb/include/leveldb/status.h +1 -1
- data/leveldb/port/atomic_pointer.h +144 -0
- data/leveldb/port/port.h +0 -2
- data/leveldb/port/port_android.h +7 -1
- data/leveldb/port/port_example.h +11 -1
- data/leveldb/port/port_posix.h +56 -38
- data/leveldb/table/format.cc +12 -8
- data/leveldb/table/table_test.cc +16 -7
- data/leveldb/util/cache.cc +173 -100
- data/leveldb/util/cache_test.cc +28 -11
- data/leveldb/util/coding.h +4 -4
- data/leveldb/util/comparator.cc +1 -0
- data/leveldb/util/env.cc +10 -5
- data/leveldb/util/env_posix.cc +48 -87
- data/leveldb/util/histogram.cc +11 -0
- data/leveldb/util/histogram.h +1 -0
- data/leveldb/util/posix_logger.h +98 -0
- data/leveldb/util/testharness.cc +12 -0
- data/leveldb/util/testharness.h +10 -1
- data/lib/leveldb.rb +11 -3
- metadata +41 -22
data/leveldb/util/testharness.cc
CHANGED
@@ -4,6 +4,8 @@
|
|
4
4
|
|
5
5
|
#include "util/testharness.h"
|
6
6
|
|
7
|
+
#include <string>
|
8
|
+
#include <stdlib.h>
|
7
9
|
#include <sys/stat.h>
|
8
10
|
#include <sys/types.h>
|
9
11
|
|
@@ -32,10 +34,20 @@ bool RegisterTest(const char* base, const char* name, void (*func)()) {
|
|
32
34
|
}
|
33
35
|
|
34
36
|
int RunAllTests() {
|
37
|
+
const char* matcher = getenv("LEVELDB_TESTS");
|
38
|
+
|
35
39
|
int num = 0;
|
36
40
|
if (tests != NULL) {
|
37
41
|
for (int i = 0; i < tests->size(); i++) {
|
38
42
|
const Test& t = (*tests)[i];
|
43
|
+
if (matcher != NULL) {
|
44
|
+
std::string name = t.base;
|
45
|
+
name.push_back('.');
|
46
|
+
name.append(t.name);
|
47
|
+
if (strstr(name.c_str(), matcher) == NULL) {
|
48
|
+
continue;
|
49
|
+
}
|
50
|
+
}
|
39
51
|
fprintf(stderr, "==== Test %s.%s\n", t.base, t.name);
|
40
52
|
(*t.func)();
|
41
53
|
++num;
|
data/leveldb/util/testharness.h
CHANGED
@@ -15,7 +15,16 @@
|
|
15
15
|
namespace leveldb {
|
16
16
|
namespace test {
|
17
17
|
|
18
|
-
// Run
|
18
|
+
// Run some of the tests registered by the TEST() macro. If the
|
19
|
+
// environment variable "LEVELDB_TESTS" is not set, runs all tests.
|
20
|
+
// Otherwise, runs only the tests whose name contains the value of
|
21
|
+
// "LEVELDB_TESTS" as a substring. E.g., suppose the tests are:
|
22
|
+
// TEST(Foo, Hello) { ... }
|
23
|
+
// TEST(Foo, World) { ... }
|
24
|
+
// LEVELDB_TESTS=Hello will run the first test
|
25
|
+
// LEVELDB_TESTS=o will run both tests
|
26
|
+
// LEVELDB_TESTS=Junk will run no tests
|
27
|
+
//
|
19
28
|
// Returns 0 if all tests pass.
|
20
29
|
// Dies or returns a non-zero value if some test fails.
|
21
30
|
extern int RunAllTests();
|
data/lib/leveldb.rb
CHANGED
@@ -8,20 +8,28 @@ class DB
|
|
8
8
|
## Loads or creates a LevelDB database as necessary, stored on disk at
|
9
9
|
## +pathname+.
|
10
10
|
def new pathname
|
11
|
-
make pathname, true, false
|
11
|
+
make path_string(pathname), true, false
|
12
12
|
end
|
13
13
|
|
14
14
|
## Creates a new LevelDB database stored on disk at +pathname+. Throws an
|
15
15
|
## exception if the database already exists.
|
16
16
|
def create pathname
|
17
|
-
make pathname, true, true
|
17
|
+
make path_string(pathname), true, true
|
18
18
|
end
|
19
19
|
|
20
20
|
## Loads a LevelDB database stored on disk at +pathname+. Throws an
|
21
21
|
## exception unless the database already exists.
|
22
22
|
def load pathname
|
23
|
-
make pathname, false, false
|
23
|
+
make path_string(pathname), false, false
|
24
24
|
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
## Coerces the argument into a String for use as a filename/-path
|
29
|
+
def path_string pathname
|
30
|
+
File.respond_to?(:path) ? File.path(pathname) : pathname.to_str
|
31
|
+
end
|
32
|
+
|
25
33
|
end
|
26
34
|
|
27
35
|
alias :includes? :exists?
|
metadata
CHANGED
@@ -1,33 +1,41 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: leveldb-ruby
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 8
|
8
|
+
version: "0.8"
|
6
9
|
platform: ruby
|
7
|
-
authors:
|
10
|
+
authors:
|
8
11
|
- William Morgan
|
9
12
|
autorequire:
|
10
13
|
bindir: bin
|
11
14
|
cert_chain: []
|
12
|
-
|
15
|
+
|
16
|
+
date: 2011-10-25 19:39:38 +00:00
|
13
17
|
default_executable:
|
14
18
|
dependencies: []
|
19
|
+
|
15
20
|
description: LevelDB-Ruby is a Ruby binding to LevelDB.
|
16
21
|
email: wmorgan-leveldb-ruby-gemspec@masanjin.net
|
17
22
|
executables: []
|
18
|
-
|
23
|
+
|
24
|
+
extensions:
|
19
25
|
- ext/leveldb/extconf.rb
|
20
|
-
extra_rdoc_files:
|
26
|
+
extra_rdoc_files:
|
21
27
|
- README
|
22
28
|
- ext/leveldb/leveldb.cc
|
23
|
-
files:
|
29
|
+
files:
|
24
30
|
- README
|
25
31
|
- ext/leveldb/extconf.rb
|
26
32
|
- lib/leveldb.rb
|
27
33
|
- ext/leveldb/leveldb.cc
|
28
34
|
- leveldb/Makefile
|
35
|
+
- leveldb/build_detect_platform
|
29
36
|
- leveldb/db/builder.cc
|
30
37
|
- leveldb/db/builder.h
|
38
|
+
- leveldb/db/c.cc
|
31
39
|
- leveldb/db/corruption_test.cc
|
32
40
|
- leveldb/db/db_bench.cc
|
33
41
|
- leveldb/db/db_impl.cc
|
@@ -60,9 +68,11 @@ files:
|
|
60
68
|
- leveldb/db/version_edit_test.cc
|
61
69
|
- leveldb/db/version_set.cc
|
62
70
|
- leveldb/db/version_set.h
|
71
|
+
- leveldb/db/version_set_test.cc
|
63
72
|
- leveldb/db/write_batch.cc
|
64
73
|
- leveldb/db/write_batch_internal.h
|
65
74
|
- leveldb/db/write_batch_test.cc
|
75
|
+
- leveldb/include/leveldb/c.h
|
66
76
|
- leveldb/include/leveldb/cache.h
|
67
77
|
- leveldb/include/leveldb/comparator.h
|
68
78
|
- leveldb/include/leveldb/db.h
|
@@ -74,6 +84,7 @@ files:
|
|
74
84
|
- leveldb/include/leveldb/table.h
|
75
85
|
- leveldb/include/leveldb/table_builder.h
|
76
86
|
- leveldb/include/leveldb/write_batch.h
|
87
|
+
- leveldb/port/atomic_pointer.h
|
77
88
|
- leveldb/port/port.h
|
78
89
|
- leveldb/port/port_android.cc
|
79
90
|
- leveldb/port/port_android.h
|
@@ -127,6 +138,7 @@ files:
|
|
127
138
|
- leveldb/util/logging.h
|
128
139
|
- leveldb/util/mutexlock.h
|
129
140
|
- leveldb/util/options.cc
|
141
|
+
- leveldb/util/posix_logger.h
|
130
142
|
- leveldb/util/random.h
|
131
143
|
- leveldb/util/status.cc
|
132
144
|
- leveldb/util/testharness.cc
|
@@ -136,32 +148,39 @@ files:
|
|
136
148
|
has_rdoc: true
|
137
149
|
homepage: http://github.com/wmorgan/leveldb-ruby
|
138
150
|
licenses: []
|
151
|
+
|
139
152
|
post_install_message:
|
140
|
-
rdoc_options:
|
153
|
+
rdoc_options:
|
141
154
|
- -c
|
142
155
|
- utf8
|
143
156
|
- --main
|
144
157
|
- README
|
145
158
|
- --title
|
146
159
|
- LevelDB
|
147
|
-
require_paths:
|
160
|
+
require_paths:
|
148
161
|
- lib
|
149
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
162
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
150
163
|
none: false
|
151
|
-
requirements:
|
152
|
-
- -
|
153
|
-
- !ruby/object:Gem::Version
|
154
|
-
|
155
|
-
|
164
|
+
requirements:
|
165
|
+
- - ">="
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
segments:
|
168
|
+
- 0
|
169
|
+
version: "0"
|
170
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
156
171
|
none: false
|
157
|
-
requirements:
|
158
|
-
- -
|
159
|
-
- !ruby/object:Gem::Version
|
160
|
-
|
172
|
+
requirements:
|
173
|
+
- - ">="
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
segments:
|
176
|
+
- 0
|
177
|
+
version: "0"
|
161
178
|
requirements: []
|
179
|
+
|
162
180
|
rubyforge_project:
|
163
|
-
rubygems_version: 1.
|
181
|
+
rubygems_version: 1.3.7
|
164
182
|
signing_key:
|
165
183
|
specification_version: 3
|
166
184
|
summary: a Ruby binding to LevelDB
|
167
185
|
test_files: []
|
186
|
+
|