mattbauer-bdb 0.0.1
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/LICENSE +19 -0
- data/README.textile +83 -0
- data/Rakefile +41 -0
- data/bdb.gemspec +28 -0
- data/ext/bdb.c +2855 -0
- data/ext/bdb.h +102 -0
- data/ext/extconf.rb +91 -0
- data/test/cursor_test.rb +103 -0
- data/test/db_test.rb +133 -0
- data/test/env_test.rb +90 -0
- data/test/stat_test.rb +22 -0
- data/test/test_helper.rb +7 -0
- data/test/txn_test.rb +74 -0
- metadata +66 -0
data/test/stat_test.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class DbStat < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
mkdir File.join(File.dirname(__FILE__), 'tmp')
|
7
|
+
end
|
8
|
+
|
9
|
+
def teardown
|
10
|
+
rm_rf File.join(File.dirname(__FILE__), 'tmp')
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_stat
|
14
|
+
@db = Bdb::Db.new
|
15
|
+
@db.open(nil, File.join(File.dirname(__FILE__), 'tmp', 'test.db'), nil, Bdb::Db::BTREE, Bdb::DB_CREATE, 0)
|
16
|
+
@db.put(nil, 'key', 'data', 0)
|
17
|
+
stats = @db.stat(nil, 0)
|
18
|
+
assert_equal 1, stats['bt_nkeys']
|
19
|
+
@db.close(0)
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
data/test/test_helper.rb
ADDED
data/test/txn_test.rb
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TxnTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
mkdir File.join(File.dirname(__FILE__), 'tmp')
|
7
|
+
@env = Bdb::Env.new(0)
|
8
|
+
env_flags = Bdb::DB_CREATE | # Create the environment if it does not already exist.
|
9
|
+
Bdb::DB_INIT_TXN | # Initialize transactions
|
10
|
+
Bdb::DB_INIT_LOCK | # Initialize locking.
|
11
|
+
Bdb::DB_INIT_LOG | # Initialize logging
|
12
|
+
Bdb::DB_INIT_MPOOL # Initialize the in-memory cache.
|
13
|
+
@env.open(File.join(File.dirname(__FILE__), 'tmp'), env_flags, 0);
|
14
|
+
|
15
|
+
@db = @env.db
|
16
|
+
@db.open(nil, 'db1.db', nil, Bdb::Db::BTREE, Bdb::DB_CREATE | Bdb::DB_AUTO_COMMIT, 0)
|
17
|
+
end
|
18
|
+
|
19
|
+
def teardown
|
20
|
+
@db.close(0)
|
21
|
+
@env.close
|
22
|
+
rm_rf File.join(File.dirname(__FILE__), 'tmp')
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_commit
|
26
|
+
txn = @env.txn_begin(nil, 0)
|
27
|
+
@db.put(txn, 'key', 'value', 0)
|
28
|
+
txn.commit(0)
|
29
|
+
assert_equal 'value', @db.get(nil, 'key', nil, 0)
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_abort
|
33
|
+
txn = @env.txn_begin(nil, 0)
|
34
|
+
@db.put(txn, 'key', 'value', 0)
|
35
|
+
txn.abort
|
36
|
+
assert_nil @db.get(nil, 'key', nil, 0)
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_id
|
40
|
+
txn = @env.txn_begin(nil, 0)
|
41
|
+
@db.put(txn, 'key', 'value', 0)
|
42
|
+
assert txn.tid
|
43
|
+
txn.commit(0)
|
44
|
+
assert_equal 'value', @db.get(nil, 'key', nil, 0)
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_timeout
|
48
|
+
txn = @env.txn_begin(nil, 0)
|
49
|
+
txn.set_timeout(10, Bdb::DB_SET_TXN_TIMEOUT)
|
50
|
+
@db.put(txn, 'key', 'value', 0)
|
51
|
+
txn.commit(0)
|
52
|
+
assert_equal 'value', @db.get(nil, 'key', nil, 0)
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_stat
|
56
|
+
txn = @env.txn_begin(nil, 0)
|
57
|
+
@db.put(txn, 'key', 'value', 0)
|
58
|
+
txn.commit(0)
|
59
|
+
txn_stat = @env.txn_stat(0)
|
60
|
+
assert txn_stat
|
61
|
+
assert txn_stat['st_ncommits'] > 0
|
62
|
+
assert_equal 'value', @db.get(nil, 'key', nil, 0)
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_stat_active
|
66
|
+
txn = @env.txn_begin(nil, 0)
|
67
|
+
@db.put(txn, 'key', 'value', 0)
|
68
|
+
txn_stat = @env.txn_stat(0)
|
69
|
+
txn.commit(0)
|
70
|
+
assert_equal 1, txn_stat['st_txnarray'].length
|
71
|
+
assert_equal 'value', @db.get(nil, 'key', nil, 0)
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
metadata
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mattbauer-bdb
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Matt Bauer
|
8
|
+
- Dan Janowski
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2008-12-22 00:00:00 -08:00
|
14
|
+
default_executable:
|
15
|
+
dependencies: []
|
16
|
+
|
17
|
+
description:
|
18
|
+
email: bauer@pedalbrain.com
|
19
|
+
executables: []
|
20
|
+
|
21
|
+
extensions:
|
22
|
+
- ext/extconf.rb
|
23
|
+
extra_rdoc_files: []
|
24
|
+
|
25
|
+
files:
|
26
|
+
- bdb.gemspec
|
27
|
+
- ext/bdb.c
|
28
|
+
- ext/bdb.h
|
29
|
+
- ext/extconf.rb
|
30
|
+
- LICENSE
|
31
|
+
- README.textile
|
32
|
+
- Rakefile
|
33
|
+
has_rdoc: false
|
34
|
+
homepage: http://github.com/mattbauer/bdb
|
35
|
+
post_install_message:
|
36
|
+
rdoc_options: []
|
37
|
+
|
38
|
+
require_paths:
|
39
|
+
- lib
|
40
|
+
- ext
|
41
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.8.4
|
46
|
+
version:
|
47
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - ">="
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: "0"
|
52
|
+
version:
|
53
|
+
requirements: []
|
54
|
+
|
55
|
+
rubyforge_project:
|
56
|
+
rubygems_version: 1.2.0
|
57
|
+
signing_key:
|
58
|
+
specification_version: 2
|
59
|
+
summary: A Ruby interface to BerkeleyDB
|
60
|
+
test_files:
|
61
|
+
- test/cursor_test.rb
|
62
|
+
- test/db_test.rb
|
63
|
+
- test/env_test.rb
|
64
|
+
- test/stat_test.rb
|
65
|
+
- test/test_helper.rb
|
66
|
+
- test/txn_test.rb
|