ninjudd-bdb 0.0.2

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/env_test.rb ADDED
@@ -0,0 +1,101 @@
1
+ require 'test_helper'
2
+
3
+ class EnvTest < Test::Unit::TestCase
4
+
5
+ def test_cachesize
6
+ env = Bdb::Env.new(0)
7
+ env.cachesize = 1024*1024*500
8
+ assert_equal 1024*1024*500, env.cachesize
9
+
10
+ env.cachesize = 1024*1024*1024*3
11
+ assert_equal 1024*1024*1024*3, env.cachesize
12
+
13
+ env.cachesize = 1024*1024*1024*3+1
14
+ assert_equal 1024*1024*1024*3+1, env.cachesize
15
+ end
16
+
17
+ def test_flags
18
+ env = Bdb::Env.new(0)
19
+
20
+ env.flags_on = Bdb::DB_AUTO_COMMIT | Bdb::DB_DSYNC_DB
21
+ assert_equal Bdb::DB_AUTO_COMMIT | Bdb::DB_DSYNC_DB, env.flags
22
+
23
+ env.flags_off = Bdb::DB_AUTO_COMMIT | Bdb::DB_DSYNC_DB
24
+ assert_equal 0, env.flags
25
+ end
26
+
27
+ def test_list_dbs
28
+ env = Bdb::Env.new(0)
29
+ assert env.list_dbs.empty?
30
+
31
+ db = env.db
32
+ assert_equal db, env.list_dbs.first
33
+ db.close(0)
34
+ end
35
+
36
+ def test_set_and_get_timeout
37
+ env = Bdb::Env.new(0)
38
+ env.set_timeout(10, Bdb::DB_SET_LOCK_TIMEOUT)
39
+ assert_equal 10, env.get_timeout(Bdb::DB_SET_LOCK_TIMEOUT)
40
+ end
41
+
42
+ def test_set_and_get_tx_max
43
+ env = Bdb::Env.new(0)
44
+ env.set_tx_max(100)
45
+ assert_equal 100, env.get_tx_max
46
+ end
47
+
48
+ def test_set_and_get_lk_detect
49
+ env = Bdb::Env.new(0)
50
+ env.set_lk_detect(Bdb::DB_LOCK_MAXWRITE)
51
+ assert_equal Bdb::DB_LOCK_MAXWRITE, env.get_lk_detect
52
+ end
53
+
54
+ def test_set_and_get_lk_max_locks
55
+ env = Bdb::Env.new(0)
56
+ env.set_lk_max_locks(10_000)
57
+ assert_equal 10_000, env.get_lk_max_locks
58
+ end
59
+
60
+ def test_set_and_get_lk_max_objects
61
+ env = Bdb::Env.new(0)
62
+ env.set_lk_max_objects(10_000)
63
+ assert_equal 10_000, env.get_lk_max_objects
64
+ end
65
+
66
+ def test_set_and_get_shm_key
67
+ env = Bdb::Env.new(0)
68
+ env.set_shm_key(2506400)
69
+ assert_equal 2506400, env.get_shm_key
70
+ end
71
+
72
+ def test_set_and_get_data_dir
73
+ env = Bdb::Env.new(0)
74
+ env.set_data_dir('/tmp')
75
+ assert_equal ['/tmp'], env.get_data_dirs
76
+ end
77
+
78
+ def test_set_lg_dir
79
+ env = Bdb::Env.new(0)
80
+ env.set_lg_dir('/tmp')
81
+ assert_equal '/tmp', env.get_lg_dir
82
+ end
83
+
84
+ def test_set_tmp_dir
85
+ env = Bdb::Env.new(0)
86
+ env.set_tmp_dir('/tmp')
87
+ assert_equal '/tmp', env.get_tmp_dir
88
+ end
89
+
90
+ def test_get_home
91
+ env = Bdb::Env.new(0)
92
+ tmp_dir = File.expand_path(File.join(File.dirname(__FILE__), 'tmp'))
93
+ mkdir_p tmp_dir
94
+ env.open(tmp_dir, Bdb::DB_CREATE, 0);
95
+ assert_equal tmp_dir, env.get_home
96
+ env.close
97
+ ensure
98
+ rm_rf tmp_dir
99
+ end
100
+
101
+ end
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,7 @@
1
+ require 'test/unit'
2
+ require 'fileutils'
3
+ require File.dirname(__FILE__) + '/../ext/bdb'
4
+
5
+ class Test::Unit::TestCase
6
+ include FileUtils
7
+ 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,67 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ninjudd-bdb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Matt Bauer
8
+ - Dan Janowski
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2009-05-16 00:00:00 -07: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
+ licenses:
36
+ post_install_message:
37
+ rdoc_options: []
38
+
39
+ require_paths:
40
+ - lib
41
+ - ext
42
+ required_ruby_version: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.8.4
47
+ version:
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: "0"
53
+ version:
54
+ requirements: []
55
+
56
+ rubyforge_project:
57
+ rubygems_version: 1.3.5
58
+ signing_key:
59
+ specification_version: 2
60
+ summary: A Ruby interface to BerkeleyDB
61
+ test_files:
62
+ - test/cursor_test.rb
63
+ - test/db_test.rb
64
+ - test/env_test.rb
65
+ - test/stat_test.rb
66
+ - test/test_helper.rb
67
+ - test/txn_test.rb