bdb 0.1.0 → 0.2.0
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/VERSION +1 -1
- data/examples/replication.rb +29 -0
- data/ext/Makefile +157 -0
- data/ext/bdb.bundle +0 -0
- data/ext/bdb.c +225 -12
- data/ext/bdb.o +0 -0
- data/ext/bdb_aux._c +433 -0
- data/ext/extconf.rb +3 -35
- data/ext/mkmf.log +4766 -0
- data/lib/bdb/base.rb +11 -3
- data/lib/bdb/database.rb +27 -4
- data/lib/bdb/environment.rb +21 -5
- data/lib/bdb/replication.rb +68 -0
- data/test/database_test.rb +18 -0
- data/test/database_test_helper.rb +37 -0
- data/test/deadlock_test.rb +125 -0
- data/test/replication_test.rb +47 -0
- data/test/test_helper.rb +8 -1
- metadata +17 -4
- data/test/simple_test.rb +0 -93
data/test/test_helper.rb
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
require 'test/unit'
|
2
2
|
require 'fileutils'
|
3
|
-
require
|
3
|
+
require 'pp'
|
4
|
+
|
5
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__) + '/../ext')
|
6
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib')
|
7
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../tuple/ext')
|
8
|
+
|
9
|
+
require 'bdb'
|
10
|
+
require 'bdb/database'
|
4
11
|
|
5
12
|
class Test::Unit::TestCase
|
6
13
|
include FileUtils
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bdb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Balthrop
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-11-
|
12
|
+
date: 2009-11-24 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -24,19 +24,28 @@ extra_rdoc_files:
|
|
24
24
|
- README.textile
|
25
25
|
files:
|
26
26
|
- VERSION
|
27
|
+
- ext/Makefile
|
28
|
+
- ext/bdb.bundle
|
27
29
|
- ext/bdb.c
|
28
30
|
- ext/bdb.h
|
31
|
+
- ext/bdb.o
|
32
|
+
- ext/bdb_aux._c
|
29
33
|
- ext/extconf.rb
|
34
|
+
- ext/mkmf.log
|
30
35
|
- lib/bdb/base.rb
|
31
36
|
- lib/bdb/database.rb
|
32
37
|
- lib/bdb/environment.rb
|
33
38
|
- lib/bdb/partitioned_database.rb
|
39
|
+
- lib/bdb/replication.rb
|
34
40
|
- lib/bdb/result_set.rb
|
35
41
|
- test/benchmark.rb
|
36
42
|
- test/cursor_test.rb
|
43
|
+
- test/database_test.rb
|
44
|
+
- test/database_test_helper.rb
|
37
45
|
- test/db_test.rb
|
46
|
+
- test/deadlock_test.rb
|
38
47
|
- test/env_test.rb
|
39
|
-
- test/
|
48
|
+
- test/replication_test.rb
|
40
49
|
- test/stat_test.rb
|
41
50
|
- test/test_helper.rb
|
42
51
|
- test/txn_test.rb
|
@@ -74,9 +83,13 @@ summary: Ruby Berkeley DB
|
|
74
83
|
test_files:
|
75
84
|
- test/benchmark.rb
|
76
85
|
- test/cursor_test.rb
|
86
|
+
- test/database_test.rb
|
87
|
+
- test/database_test_helper.rb
|
77
88
|
- test/db_test.rb
|
89
|
+
- test/deadlock_test.rb
|
78
90
|
- test/env_test.rb
|
79
|
-
- test/
|
91
|
+
- test/replication_test.rb
|
80
92
|
- test/stat_test.rb
|
81
93
|
- test/test_helper.rb
|
82
94
|
- test/txn_test.rb
|
95
|
+
- examples/replication.rb
|
data/test/simple_test.rb
DELETED
@@ -1,93 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
require File.dirname(__FILE__) + '/../lib/bdb/simple'
|
3
|
-
|
4
|
-
class SimpleTest < Test::Unit::TestCase
|
5
|
-
def setup
|
6
|
-
@path = File.join(File.dirname(__FILE__), 'tmp')
|
7
|
-
rm_rf @path
|
8
|
-
mkdir @path
|
9
|
-
open
|
10
|
-
end
|
11
|
-
|
12
|
-
def teardown
|
13
|
-
close
|
14
|
-
rm_rf @path
|
15
|
-
end
|
16
|
-
|
17
|
-
def open
|
18
|
-
@db = Bdb::Simple.new(@path)
|
19
|
-
@dbd = Bdb::Simple.new(@path, :name => 'dup', :dup => true)
|
20
|
-
end
|
21
|
-
|
22
|
-
def close
|
23
|
-
@db.close
|
24
|
-
@dbd.close
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_put_and_get
|
28
|
-
@db['key'] = 'data'
|
29
|
-
assert_equal 'data', @db['key']
|
30
|
-
|
31
|
-
@dbd['key'] = 'data1'
|
32
|
-
@dbd['key'] = 'data2'
|
33
|
-
assert_equal ['data1', 'data2'], @dbd['key'].to_a
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_update
|
37
|
-
@db[:key] = 0
|
38
|
-
close
|
39
|
-
|
40
|
-
pids = []
|
41
|
-
5.times do
|
42
|
-
pids << Process.fork do
|
43
|
-
db = Bdb::Simple.new(@path)
|
44
|
-
10.times do
|
45
|
-
db.update(:key) do |v|
|
46
|
-
sleep(0.1)
|
47
|
-
v + 1
|
48
|
-
end
|
49
|
-
end
|
50
|
-
db.close
|
51
|
-
end
|
52
|
-
end
|
53
|
-
pids.each {|pid| Process.wait(pid)}
|
54
|
-
|
55
|
-
open
|
56
|
-
assert_equal 50, @db[:key]
|
57
|
-
end
|
58
|
-
|
59
|
-
|
60
|
-
def test_delete
|
61
|
-
@db['key'] = 'data'
|
62
|
-
assert_equal 'data', @db['key']
|
63
|
-
|
64
|
-
@db.delete('key')
|
65
|
-
assert_nil @db['key']
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_range
|
69
|
-
(1..10).each {|i| @db[i] = "data#{i}"}
|
70
|
-
|
71
|
-
assert_equal (3..7).collect {|i| "data#{i}"}, @db[3..7].to_a
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_compare_absolute
|
75
|
-
list = [5, 6, "foo", :bar, "bar", :foo, [1,2,4], true, [1,2,3], false, [1], [2], nil, {}, {:b => 1, :a => 1}, {:b => 2, :a => 1}]
|
76
|
-
|
77
|
-
expected = [nil, false, true, 5, 6, :bar, :foo, "bar", "foo", [1], [1, 2, 3], [1, 2, 4], [2], {}, {:a=>1, :b=>1}, {:a=>1, :b=>2}]
|
78
|
-
assert_equal expected, list.sort {|a,b| Bdb::Simple.compare_absolute(a,b)}
|
79
|
-
100.times do
|
80
|
-
assert_equal expected, list.shuffle.sort {|a,b| Bdb::Simple.compare_absolute(a,b)}
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
def parallel(n)
|
85
|
-
threads = []
|
86
|
-
n.times do |i|
|
87
|
-
threads << Thread.new do
|
88
|
-
yield(i)
|
89
|
-
end
|
90
|
-
end
|
91
|
-
threads.each { |thread| thread.join }
|
92
|
-
end
|
93
|
-
end
|