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.
@@ -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,7 @@
1
+ require "test/unit"
2
+ require 'fileutils'
3
+ require "bdb"
4
+
5
+ class Test::Unit::TestCase
6
+ include FileUtils
7
+ end
@@ -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