ninjudd-bdb 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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