dk-bdb 0.2.4

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/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
@@ -0,0 +1,14 @@
1
+ require 'test/unit'
2
+ require 'fileutils'
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'
11
+
12
+ class Test::Unit::TestCase
13
+ include FileUtils
14
+ end
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,92 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dk-bdb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.4
5
+ platform: ruby
6
+ authors:
7
+ - Justin Balthrop
8
+ - Denis Knauf
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2010-03-10 00:00:00 +01:00
14
+ default_executable:
15
+ dependencies: []
16
+
17
+ description: Advanced Ruby Berkeley DB library.
18
+ email:
19
+ - code@justinbalthrop.com
20
+ - Denis.Knauf@gmail.com
21
+ executables: []
22
+
23
+ extensions:
24
+ - ext/extconf.rb
25
+ extra_rdoc_files:
26
+ - LICENSE
27
+ - README.md
28
+ files:
29
+ - README.md
30
+ - VERSION
31
+ - ext/bdb.c
32
+ - ext/bdb.h
33
+ - lib/bdb/base.rb
34
+ - lib/bdb/database.rb
35
+ - lib/bdb/environment.rb
36
+ - lib/bdb/partitioned_database.rb
37
+ - lib/bdb/replication.rb
38
+ - lib/bdb/result_set.rb
39
+ - test/benchmark.rb
40
+ - test/cursor_test.rb
41
+ - test/database_test.rb
42
+ - test/database_test_helper.rb
43
+ - test/db_test.rb
44
+ - test/deadlock_test.rb
45
+ - test/env_test.rb
46
+ - test/replication_test.rb
47
+ - test/stat_test.rb
48
+ - test/test_helper.rb
49
+ - test/txn_test.rb
50
+ - LICENSE
51
+ has_rdoc: true
52
+ homepage: http://github.com/denis.knauf/bdb
53
+ licenses: []
54
+
55
+ post_install_message:
56
+ rdoc_options:
57
+ - --charset=UTF-8
58
+ require_paths:
59
+ - ext
60
+ - lib
61
+ required_ruby_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: "0"
66
+ version:
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: "0"
72
+ version:
73
+ requirements: []
74
+
75
+ rubyforge_project:
76
+ rubygems_version: 1.3.5
77
+ signing_key:
78
+ specification_version: 3
79
+ summary: Ruby Berkeley DB
80
+ test_files:
81
+ - test/txn_test.rb
82
+ - test/database_test.rb
83
+ - test/deadlock_test.rb
84
+ - test/test_helper.rb
85
+ - test/database_test_helper.rb
86
+ - test/benchmark.rb
87
+ - test/db_test.rb
88
+ - test/env_test.rb
89
+ - test/stat_test.rb
90
+ - test/cursor_test.rb
91
+ - test/replication_test.rb
92
+ - examples/replication.rb