higgs 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +28 -1
- data/Rakefile +80 -0
- data/bin/higgs_apply_jlog +1 -1
- data/bin/higgs_backup +1 -1
- data/bin/higgs_dump_index +1 -1
- data/bin/higgs_dump_jlog +1 -1
- data/bin/higgs_ping +1 -1
- data/bin/higgs_verify +1 -1
- data/{LICENSE → lib/LICENSE} +1 -1
- data/lib/cgi/session/higgs.rb +3 -3
- data/lib/higgs/block.rb +4 -4
- data/lib/higgs/cache.rb +5 -5
- data/lib/higgs/dbm.rb +4 -4
- data/lib/higgs/exceptions.rb +4 -4
- data/lib/higgs/flock.rb +4 -4
- data/lib/higgs/index.rb +9 -9
- data/lib/higgs/jcompat.rb +102 -0
- data/lib/higgs/jlog.rb +4 -4
- data/lib/higgs/lock.rb +6 -6
- data/lib/higgs/services.rb +4 -4
- data/lib/higgs/sman.rb +4 -4
- data/lib/higgs/storage.rb +6 -7
- data/lib/higgs/store.rb +4 -4
- data/lib/higgs/tar.rb +10 -4
- data/lib/higgs/thread.rb +58 -90
- data/lib/higgs/tman.rb +5 -5
- data/lib/higgs/utils/bman.rb +4 -4
- data/lib/higgs/utils.rb +4 -4
- data/lib/higgs/version.rb +5 -5
- data/lib/higgs.rb +4 -3
- data/misc/cache_bench/cache_bench.rb +1 -1
- data/misc/dbm_bench/.strc +1 -1
- data/misc/dbm_bench/Rakefile +1 -1
- data/misc/dbm_bench/dbm_multi_thread.rb +1 -1
- data/misc/dbm_bench/dbm_rnd_delete.rb +1 -1
- data/misc/dbm_bench/dbm_rnd_read.rb +1 -1
- data/misc/dbm_bench/dbm_rnd_update.rb +1 -1
- data/misc/dbm_bench/dbm_seq_read.rb +1 -1
- data/misc/dbm_bench/dbm_seq_write.rb +1 -1
- data/misc/dbm_bench/run.rb +1 -1
- data/misc/dbm_bench/st_verify.rb +1 -1
- data/misc/io_bench/cksum_bench.rb +1 -1
- data/misc/io_bench/jlog_bench.rb +1 -1
- data/misc/io_bench/write_bench.rb +1 -1
- data/misc/thread_bench/lock_bench.rb +1 -1
- data/mkrdoc.rb +11 -0
- data/rdoc.yml +9 -0
- data/test/Rakefile +1 -1
- data/test/run.rb +3 -1
- data/test/test_block.rb +1 -1
- data/test/test_cache.rb +3 -3
- data/test/test_cache_mvcc.rb +5 -5
- data/test/test_cgi_session.rb +3 -3
- data/test/test_dbm.rb +7 -7
- data/test/test_flock.rb +1 -1
- data/test/test_index.rb +5 -5
- data/test/test_jlog.rb +1 -1
- data/test/test_lock.rb +3 -3
- data/test/test_online_backup.rb +1 -1
- data/test/test_replication.rb +3 -3
- data/test/test_services.rb +1 -1
- data/test/test_storage.rb +78 -66
- data/test/test_storage_conf.rb +1 -1
- data/test/test_storage_init_opts.rb +1 -1
- data/test/test_store.rb +7 -7
- data/test/test_tar.rb +11 -11
- data/test/test_thread.rb +6 -6
- data/test/test_tman.rb +4 -4
- data/test/test_tman_init_opts.rb +1 -1
- data/test/test_tman_mvcc.rb +2 -2
- data/test/test_utils_bman.rb +1 -1
- metadata +7 -5
data/test/test_cgi_session.rb
CHANGED
@@ -9,7 +9,7 @@ require 'test/unit'
|
|
9
9
|
module Higgs::Test
|
10
10
|
module CGISessionTest
|
11
11
|
# for ident(1)
|
12
|
-
CVS_ID = '$Id: test_cgi_session.rb
|
12
|
+
CVS_ID = '$Id: test_cgi_session.rb 562 2007-09-25 15:34:24Z toki $'
|
13
13
|
|
14
14
|
def new_store(session, options={})
|
15
15
|
options.update('tmpdir' => @tmpdir, :logger => @logger)
|
@@ -119,7 +119,7 @@ module Higgs::Test
|
|
119
119
|
include CGISessionTest
|
120
120
|
|
121
121
|
# for ident(1)
|
122
|
-
CVS_ID = '$Id: test_cgi_session.rb
|
122
|
+
CVS_ID = '$Id: test_cgi_session.rb 562 2007-09-25 15:34:24Z toki $'
|
123
123
|
|
124
124
|
def store_type
|
125
125
|
CGI::Session::PStore
|
@@ -133,7 +133,7 @@ module Higgs::Test
|
|
133
133
|
include CGISessionTest
|
134
134
|
|
135
135
|
# for ident(1)
|
136
|
-
CVS_ID = '$Id: test_cgi_session.rb
|
136
|
+
CVS_ID = '$Id: test_cgi_session.rb 562 2007-09-25 15:34:24Z toki $'
|
137
137
|
|
138
138
|
def store_type
|
139
139
|
CGI::Session::HiggsStore
|
data/test/test_dbm.rb
CHANGED
@@ -10,14 +10,14 @@ module Higgs::Test
|
|
10
10
|
include Higgs
|
11
11
|
|
12
12
|
# for ident(1)
|
13
|
-
CVS_ID = '$Id: test_dbm.rb
|
13
|
+
CVS_ID = '$Id: test_dbm.rb 1609 2009-05-09 11:39:26Z toki $'
|
14
14
|
|
15
15
|
def setup
|
16
16
|
@test_dir = 'dbm_test'
|
17
17
|
FileUtils.rm_rf(@test_dir) # for debug
|
18
18
|
FileUtils.mkdir_p(@test_dir)
|
19
|
-
@
|
20
|
-
@db = DBM.new(@
|
19
|
+
@st_name = File.join(@test_dir, 'foo')
|
20
|
+
@db = DBM.new(@st_name,
|
21
21
|
:logger => proc{|path|
|
22
22
|
logger = Logger.new(path, 1)
|
23
23
|
logger.level = Logger::DEBUG
|
@@ -137,13 +137,13 @@ module Higgs::Test
|
|
137
137
|
include Higgs
|
138
138
|
|
139
139
|
# for ident(1)
|
140
|
-
CVS_ID = '$Id: test_dbm.rb
|
140
|
+
CVS_ID = '$Id: test_dbm.rb 1609 2009-05-09 11:39:26Z toki $'
|
141
141
|
|
142
142
|
def setup
|
143
143
|
@test_dir = 'dbm_test'
|
144
144
|
FileUtils.rm_rf(@test_dir) # for debug
|
145
145
|
FileUtils.mkdir_p(@test_dir)
|
146
|
-
@
|
146
|
+
@st_name = File.join(@test_dir, 'foo')
|
147
147
|
end
|
148
148
|
|
149
149
|
def teardown
|
@@ -151,13 +151,13 @@ module Higgs::Test
|
|
151
151
|
end
|
152
152
|
|
153
153
|
def test_open
|
154
|
-
DBM.open(@
|
154
|
+
DBM.open(@st_name) {|db|
|
155
155
|
db.transaction{|tx|
|
156
156
|
tx['foo'] = 'apple'
|
157
157
|
}
|
158
158
|
}
|
159
159
|
|
160
|
-
DBM.open(@
|
160
|
+
DBM.open(@st_name, :read_only => true) {|db|
|
161
161
|
db.transaction{|tx|
|
162
162
|
assert_equal('apple', tx['foo'])
|
163
163
|
}
|
data/test/test_flock.rb
CHANGED
data/test/test_index.rb
CHANGED
@@ -10,7 +10,7 @@ module Higgs::Test
|
|
10
10
|
include Higgs
|
11
11
|
|
12
12
|
# for ident(1)
|
13
|
-
CVS_ID = '$Id: test_index.rb
|
13
|
+
CVS_ID = '$Id: test_index.rb 770 2008-02-13 11:26:09Z toki $'
|
14
14
|
|
15
15
|
def setup
|
16
16
|
@idx = Index.new
|
@@ -45,7 +45,7 @@ module Higgs::Test
|
|
45
45
|
include Higgs
|
46
46
|
|
47
47
|
# for ident(1)
|
48
|
-
CVS_ID = '$Id: test_index.rb
|
48
|
+
CVS_ID = '$Id: test_index.rb 770 2008-02-13 11:26:09Z toki $'
|
49
49
|
|
50
50
|
def setup
|
51
51
|
@idx = Index.new
|
@@ -91,7 +91,7 @@ module Higgs::Test
|
|
91
91
|
include Higgs
|
92
92
|
|
93
93
|
# for ident(1)
|
94
|
-
CVS_ID = '$Id: test_index.rb
|
94
|
+
CVS_ID = '$Id: test_index.rb 770 2008-02-13 11:26:09Z toki $'
|
95
95
|
|
96
96
|
def setup
|
97
97
|
@idx = Index.new
|
@@ -164,7 +164,7 @@ module Higgs::Test
|
|
164
164
|
include Higgs
|
165
165
|
|
166
166
|
# for ident(1)
|
167
|
-
CVS_ID = '$Id: test_index.rb
|
167
|
+
CVS_ID = '$Id: test_index.rb 770 2008-02-13 11:26:09Z toki $'
|
168
168
|
|
169
169
|
def setup
|
170
170
|
@idx = Index.new
|
@@ -203,7 +203,7 @@ module Higgs::Test
|
|
203
203
|
include Higgs
|
204
204
|
|
205
205
|
# for ident(1)
|
206
|
-
CVS_ID = '$Id: test_index.rb
|
206
|
+
CVS_ID = '$Id: test_index.rb 770 2008-02-13 11:26:09Z toki $'
|
207
207
|
|
208
208
|
def setup
|
209
209
|
@path = 'test.idx'
|
data/test/test_jlog.rb
CHANGED
data/test/test_lock.rb
CHANGED
@@ -11,7 +11,7 @@ module Higgs::Test
|
|
11
11
|
include Higgs
|
12
12
|
|
13
13
|
# for ident(1)
|
14
|
-
CVS_ID = '$Id: test_lock.rb
|
14
|
+
CVS_ID = '$Id: test_lock.rb 752 2008-01-23 16:46:25Z toki $'
|
15
15
|
|
16
16
|
WORK_COUNT = 1000
|
17
17
|
THREAD_COUNT = 10
|
@@ -306,7 +306,7 @@ module Higgs::Test
|
|
306
306
|
include LockManagerTest
|
307
307
|
|
308
308
|
# for ident(1)
|
309
|
-
CVS_ID = '$Id: test_lock.rb
|
309
|
+
CVS_ID = '$Id: test_lock.rb 752 2008-01-23 16:46:25Z toki $'
|
310
310
|
|
311
311
|
def setup
|
312
312
|
@lock_manager = GiantLockManager.new
|
@@ -324,7 +324,7 @@ module Higgs::Test
|
|
324
324
|
include LockManagerTest
|
325
325
|
|
326
326
|
# for ident(1)
|
327
|
-
CVS_ID = '$Id: test_lock.rb
|
327
|
+
CVS_ID = '$Id: test_lock.rb 752 2008-01-23 16:46:25Z toki $'
|
328
328
|
|
329
329
|
def setup
|
330
330
|
@lock_manager = OptimisticLockManager.new
|
data/test/test_online_backup.rb
CHANGED
data/test/test_replication.rb
CHANGED
@@ -26,15 +26,15 @@ module Higgs::Test
|
|
26
26
|
def setup
|
27
27
|
srand(0)
|
28
28
|
|
29
|
-
@
|
29
|
+
@st_name = 'foo'
|
30
30
|
|
31
31
|
@src_dir = 'rep_src'
|
32
|
-
@src_name = File.join(@src_dir, @
|
32
|
+
@src_name = File.join(@src_dir, @st_name)
|
33
33
|
FileUtils.rm_rf(@src_dir)
|
34
34
|
FileUtils.mkdir_p(@src_dir)
|
35
35
|
|
36
36
|
@dst_dir = 'rep_dst'
|
37
|
-
@dst_name = File.join(@dst_dir, @
|
37
|
+
@dst_name = File.join(@dst_dir, @st_name)
|
38
38
|
FileUtils.rm_rf(@dst_dir)
|
39
39
|
FileUtils.mkdir_p(@dst_dir)
|
40
40
|
|
data/test/test_services.rb
CHANGED
@@ -10,7 +10,7 @@ module Higgs::Test
|
|
10
10
|
include Higgs
|
11
11
|
|
12
12
|
# for ident(1)
|
13
|
-
CVS_ID = '$Id: test_services.rb
|
13
|
+
CVS_ID = '$Id: test_services.rb 678 2007-11-08 16:09:51Z toki $'
|
14
14
|
|
15
15
|
STORAGE_DIR = 'remote_storage'
|
16
16
|
REMOTE_SERVICES_URI = 'druby://localhost:31415'
|
data/test/test_storage.rb
CHANGED
@@ -11,14 +11,14 @@ module Higgs::Test
|
|
11
11
|
include Higgs
|
12
12
|
|
13
13
|
# for ident(1)
|
14
|
-
CVS_ID = '$Id: test_storage.rb
|
14
|
+
CVS_ID = '$Id: test_storage.rb 1609 2009-05-09 11:39:26Z toki $'
|
15
15
|
|
16
16
|
def setup
|
17
17
|
srand(0) # preset for rand
|
18
18
|
@test_dir = 'st_test'
|
19
19
|
FileUtils.rm_rf(@test_dir) # for debug
|
20
20
|
FileUtils.mkdir_p(@test_dir)
|
21
|
-
@
|
21
|
+
@st_name = File.join(@test_dir, 'foo')
|
22
22
|
@logger = proc{|path|
|
23
23
|
logger = Logger.new(path, 1)
|
24
24
|
logger.level = Logger::DEBUG
|
@@ -37,10 +37,10 @@ module Higgs::Test
|
|
37
37
|
include StorageTestCase
|
38
38
|
|
39
39
|
# for ident(1)
|
40
|
-
CVS_ID = '$Id: test_storage.rb
|
40
|
+
CVS_ID = '$Id: test_storage.rb 1609 2009-05-09 11:39:26Z toki $'
|
41
41
|
|
42
42
|
def new_storage
|
43
|
-
Storage.new(@
|
43
|
+
Storage.new(@st_name, :logger => @logger)
|
44
44
|
end
|
45
45
|
|
46
46
|
def test_raw_write_and_commit
|
@@ -132,7 +132,7 @@ module Higgs::Test
|
|
132
132
|
def test_write_and_commit_read_only_NotWritableError
|
133
133
|
@st.shutdown
|
134
134
|
@st = nil
|
135
|
-
@st = Storage.new(@
|
135
|
+
@st = Storage.new(@st_name, :read_only => true, :logger => @logger)
|
136
136
|
assert_raise(Storage::NotWritableError) {
|
137
137
|
@st.write_and_commit([ [ :write, 'foo', "Hello world.\n" ] ])
|
138
138
|
}
|
@@ -141,7 +141,7 @@ module Higgs::Test
|
|
141
141
|
def test_write_and_commit_standby_NotWritableError
|
142
142
|
@st.shutdown
|
143
143
|
@st = nil
|
144
|
-
@st = Storage.new(@
|
144
|
+
@st = Storage.new(@st_name, :read_only => :standby, :logger => @logger)
|
145
145
|
assert_raise(Storage::NotWritableError) {
|
146
146
|
@st.write_and_commit([ [ :write, 'foo', "Hello world.\n" ] ])
|
147
147
|
}
|
@@ -268,7 +268,7 @@ module Higgs::Test
|
|
268
268
|
@st.write_and_commit([ [ :write, 'foo', "Hello world.\n" ] ])
|
269
269
|
@st.shutdown
|
270
270
|
@st = nil
|
271
|
-
@st = Storage.new(@
|
271
|
+
@st = Storage.new(@st_name, :read_only => true, :logger => @logger)
|
272
272
|
|
273
273
|
assert_equal(true, (@st.key? 'foo'))
|
274
274
|
assert_equal(false, (@st.key? 'bar'))
|
@@ -278,7 +278,7 @@ module Higgs::Test
|
|
278
278
|
@st.write_and_commit([ [ :write, 'foo', "Hello world.\n" ] ])
|
279
279
|
@st.shutdown
|
280
280
|
@st = nil
|
281
|
-
@st = Storage.new(@
|
281
|
+
@st = Storage.new(@st_name, :read_only => :standby, :logger => @logger)
|
282
282
|
|
283
283
|
assert_equal(true, (@st.key? 'foo'))
|
284
284
|
assert_equal(false, (@st.key? 'bar'))
|
@@ -316,7 +316,7 @@ module Higgs::Test
|
|
316
316
|
])
|
317
317
|
@st.shutdown
|
318
318
|
@st = nil
|
319
|
-
@st = Storage.new(@
|
319
|
+
@st = Storage.new(@st_name, :read_only => true, :logger => @logger)
|
320
320
|
|
321
321
|
expected_keys = %w[ foo bar baz ]
|
322
322
|
@st.each_key do |key|
|
@@ -332,7 +332,7 @@ module Higgs::Test
|
|
332
332
|
])
|
333
333
|
@st.shutdown
|
334
334
|
@st = nil
|
335
|
-
@st = Storage.new(@
|
335
|
+
@st = Storage.new(@st_name, :read_only => :standby, :logger => @logger)
|
336
336
|
|
337
337
|
expected_keys = %w[ foo bar baz ]
|
338
338
|
@st.each_key do |key|
|
@@ -348,7 +348,7 @@ module Higgs::Test
|
|
348
348
|
|
349
349
|
def test_verify_BrokenError_mismatch_content_hash
|
350
350
|
@st.write_and_commit([ [ :write, 'foo', "Hello world.\n" ] ])
|
351
|
-
File.open(@
|
351
|
+
File.open(@st_name + '.tar', File::WRONLY) {|w|
|
352
352
|
size = w.stat.size
|
353
353
|
|
354
354
|
data_body_offset = size - Tar::Block::BLKSIZ * 5
|
@@ -368,7 +368,7 @@ module Higgs::Test
|
|
368
368
|
|
369
369
|
def test_verify_BrokenError_failed_to_read_data
|
370
370
|
@st.write_and_commit([ [ :write, 'foo', "Hello world.\n" ] ])
|
371
|
-
File.open(@
|
371
|
+
File.open(@st_name + '.tar', File::WRONLY) {|w|
|
372
372
|
size = w.stat.size
|
373
373
|
|
374
374
|
data_head_offset = size - Tar::Block::BLKSIZ * 6
|
@@ -391,7 +391,7 @@ module Higgs::Test
|
|
391
391
|
|
392
392
|
def test_verify_BrokenError_failed_to_read_properties
|
393
393
|
@st.write_and_commit([ [ :write, 'foo', "Hello world.\n" ] ])
|
394
|
-
File.open(@
|
394
|
+
File.open(@st_name + '.tar', File::WRONLY) {|w|
|
395
395
|
size = w.stat.size
|
396
396
|
|
397
397
|
props_head_offset = size - Tar::Block::BLKSIZ * 4
|
@@ -439,7 +439,7 @@ module Higgs::Test
|
|
439
439
|
def test_switch_to_write_RuntimeError_not_standby_mode_on_read_only_mode
|
440
440
|
@st.shutdown
|
441
441
|
@st = nil
|
442
|
-
@st = Storage.new(@
|
442
|
+
@st = Storage.new(@st_name, :read_only => true, :logger => @logger)
|
443
443
|
|
444
444
|
assert_equal(true, @st.read_only)
|
445
445
|
assert_raise(RuntimeError) {
|
@@ -450,7 +450,7 @@ module Higgs::Test
|
|
450
450
|
|
451
451
|
class StorageSwitchToWriteTest < StorageTest
|
452
452
|
def new_storage
|
453
|
-
st = Storage.new(@
|
453
|
+
st = Storage.new(@st_name, :logger => @logger, :read_only => :standby)
|
454
454
|
assert_equal(:standby, st.read_only)
|
455
455
|
st.switch_to_write
|
456
456
|
assert_equal(false, st.read_only)
|
@@ -469,10 +469,10 @@ module Higgs::Test
|
|
469
469
|
include StorageTestCase
|
470
470
|
|
471
471
|
# for ident(1)
|
472
|
-
CVS_ID = '$Id: test_storage.rb
|
472
|
+
CVS_ID = '$Id: test_storage.rb 1609 2009-05-09 11:39:26Z toki $'
|
473
473
|
|
474
474
|
def new_storage
|
475
|
-
Storage.new(@
|
475
|
+
Storage.new(@st_name,
|
476
476
|
:jlog_rotate_max => 0, # unlimited rotation
|
477
477
|
:logger => @logger)
|
478
478
|
end
|
@@ -500,8 +500,8 @@ module Higgs::Test
|
|
500
500
|
|
501
501
|
def test_manual_recovery
|
502
502
|
other_name = File.join(@test_dir, 'bar')
|
503
|
-
FileUtils.cp("#{@
|
504
|
-
FileUtils.cp("#{@
|
503
|
+
FileUtils.cp("#{@st_name}.tar", "#{other_name}.tar", :preserve => true)
|
504
|
+
FileUtils.cp("#{@st_name}.idx", "#{other_name}.idx", :preserve => true)
|
505
505
|
|
506
506
|
write_data
|
507
507
|
|
@@ -514,14 +514,14 @@ module Higgs::Test
|
|
514
514
|
|
515
515
|
@st.shutdown
|
516
516
|
|
517
|
-
for name in Storage.rotated_entries("#{@
|
517
|
+
for name in Storage.rotated_entries("#{@st_name}.jlog")
|
518
518
|
name =~ /\.jlog.*$/ or raise 'mismatch'
|
519
519
|
FileUtils.cp(name, other_name + $&, :preserve => true)
|
520
520
|
end
|
521
521
|
Storage.recover(other_name)
|
522
522
|
|
523
|
-
assert(FileUtils.cmp("#{@
|
524
|
-
assert(Index.new.load("#{@
|
523
|
+
assert(FileUtils.cmp("#{@st_name}.tar", "#{other_name}.tar"), 'DATA should be same.')
|
524
|
+
assert(Index.new.load("#{@st_name}.idx").to_h ==
|
525
525
|
Index.new.load("#{other_name}.idx").to_h, 'INDEX should be same.')
|
526
526
|
end
|
527
527
|
|
@@ -541,7 +541,7 @@ module Higgs::Test
|
|
541
541
|
|
542
542
|
@st.shutdown
|
543
543
|
|
544
|
-
for name in Storage.rotated_entries("#{@
|
544
|
+
for name in Storage.rotated_entries("#{@st_name}.jlog")
|
545
545
|
name =~ /\.jlog.*$/ or raise 'mismatch'
|
546
546
|
FileUtils.cp(name, other_name + $&, :preserve => true)
|
547
547
|
end
|
@@ -556,14 +556,14 @@ module Higgs::Test
|
|
556
556
|
@st.rotate_journal_log(true)
|
557
557
|
|
558
558
|
other_name = File.join(@test_dir, 'bar')
|
559
|
-
FileUtils.cp("#{@
|
560
|
-
FileUtils.cp("#{@
|
559
|
+
FileUtils.cp("#{@st_name}.tar", "#{other_name}.tar", :preserve => true)
|
560
|
+
FileUtils.cp("#{@st_name}.idx", "#{other_name}.idx", :preserve => true)
|
561
561
|
|
562
562
|
# write_data(10 * 10 * 256) < jlog_rotate_size(256 * 1024)
|
563
563
|
write_data(10, 10, 256)
|
564
564
|
|
565
565
|
# not closed journal log for other storage.
|
566
|
-
FileUtils.cp("#{@
|
566
|
+
FileUtils.cp("#{@st_name}.jlog", "#{other_name}.jlog", :preserve => true)
|
567
567
|
|
568
568
|
@st.shutdown
|
569
569
|
|
@@ -571,10 +571,10 @@ module Higgs::Test
|
|
571
571
|
st2 = Storage.new(other_name, :logger => @logger)
|
572
572
|
st2.shutdown
|
573
573
|
|
574
|
-
assert(FileUtils.cmp("#{@
|
575
|
-
assert(Index.new.load("#{@
|
574
|
+
assert(FileUtils.cmp("#{@st_name}.tar", "#{other_name}.tar"), 'DATA should be same.')
|
575
|
+
assert(Index.new.load("#{@st_name}.idx").to_h ==
|
576
576
|
Index.new.load("#{other_name}.idx").to_h, 'INDEX should be same.')
|
577
|
-
assert(FileUtils.cmp("#{@
|
577
|
+
assert(FileUtils.cmp("#{@st_name}.jlog", "#{other_name}.jlog"), 'JOURNAL LOG should be same.')
|
578
578
|
end
|
579
579
|
|
580
580
|
def test_auto_recovery_on_standby_mode
|
@@ -582,14 +582,14 @@ module Higgs::Test
|
|
582
582
|
@st.rotate_journal_log(true)
|
583
583
|
|
584
584
|
other_name = File.join(@test_dir, 'bar')
|
585
|
-
FileUtils.cp("#{@
|
586
|
-
FileUtils.cp("#{@
|
585
|
+
FileUtils.cp("#{@st_name}.tar", "#{other_name}.tar", :preserve => true)
|
586
|
+
FileUtils.cp("#{@st_name}.idx", "#{other_name}.idx", :preserve => true)
|
587
587
|
|
588
588
|
# write_data(10 * 10 * 256) < jlog_rotate_size(256 * 1024)
|
589
589
|
write_data(10, 10, 256)
|
590
590
|
|
591
591
|
# not closed journal log for other storage.
|
592
|
-
FileUtils.cp("#{@
|
592
|
+
FileUtils.cp("#{@st_name}.jlog", "#{other_name}.jlog", :preserve => true)
|
593
593
|
|
594
594
|
@st.shutdown
|
595
595
|
|
@@ -597,10 +597,10 @@ module Higgs::Test
|
|
597
597
|
st2 = Storage.new(other_name, :logger => @logger, :read_only => :standby)
|
598
598
|
st2.shutdown
|
599
599
|
|
600
|
-
assert(FileUtils.cmp("#{@
|
601
|
-
assert(Index.new.load("#{@
|
600
|
+
assert(FileUtils.cmp("#{@st_name}.tar", "#{other_name}.tar"), 'DATA should be same.')
|
601
|
+
assert(Index.new.load("#{@st_name}.idx").to_h ==
|
602
602
|
Index.new.load("#{other_name}.idx").to_h, 'INDEX should be same.')
|
603
|
-
assert(FileUtils.cmp("#{@
|
603
|
+
assert(FileUtils.cmp("#{@st_name}.jlog", "#{other_name}.jlog"), 'JOURNAL LOG should be same.')
|
604
604
|
end
|
605
605
|
|
606
606
|
def test_auto_recovery_NotWritableError
|
@@ -608,14 +608,14 @@ module Higgs::Test
|
|
608
608
|
@st.rotate_journal_log(true)
|
609
609
|
|
610
610
|
other_name = File.join(@test_dir, 'bar')
|
611
|
-
FileUtils.cp("#{@
|
612
|
-
FileUtils.cp("#{@
|
611
|
+
FileUtils.cp("#{@st_name}.tar", "#{other_name}.tar", :preserve => true)
|
612
|
+
FileUtils.cp("#{@st_name}.idx", "#{other_name}.idx", :preserve => true)
|
613
613
|
|
614
614
|
# write_data(10 * 10 * 256) < jlog_rotate_size(256 * 1024)
|
615
615
|
write_data(10, 10, 256)
|
616
616
|
|
617
617
|
# not closed journal log for other storage.
|
618
|
-
FileUtils.cp("#{@
|
618
|
+
FileUtils.cp("#{@st_name}.jlog", "#{other_name}.jlog", :preserve => true)
|
619
619
|
|
620
620
|
@st.shutdown
|
621
621
|
|
@@ -632,14 +632,14 @@ module Higgs::Test
|
|
632
632
|
@st.rotate_journal_log(true)
|
633
633
|
|
634
634
|
other_name = File.join(@test_dir, 'bar')
|
635
|
-
FileUtils.cp("#{@
|
636
|
-
FileUtils.cp("#{@
|
635
|
+
FileUtils.cp("#{@st_name}.tar", "#{other_name}.tar", :preserve => true)
|
636
|
+
FileUtils.cp("#{@st_name}.idx", "#{other_name}.idx", :preserve => true)
|
637
637
|
|
638
638
|
write_data
|
639
639
|
@st.rotate_journal_log(true)
|
640
640
|
write_data
|
641
641
|
|
642
|
-
FileUtils.cp("#{@
|
642
|
+
FileUtils.cp("#{@st_name}.jlog", "#{other_name}.jlog", :preserve => true)
|
643
643
|
|
644
644
|
assert_raise(Storage::PanicError) {
|
645
645
|
st2 = Storage.new(other_name, :logger => @logger)
|
@@ -648,8 +648,8 @@ module Higgs::Test
|
|
648
648
|
|
649
649
|
def test_apply_journal_log
|
650
650
|
other_name = File.join(@test_dir, 'bar')
|
651
|
-
FileUtils.cp("#{@
|
652
|
-
FileUtils.cp("#{@
|
651
|
+
FileUtils.cp("#{@st_name}.tar", "#{other_name}.tar", :preserve => true)
|
652
|
+
FileUtils.cp("#{@st_name}.idx", "#{other_name}.idx", :preserve => true)
|
653
653
|
|
654
654
|
write_data
|
655
655
|
@st.rotate_journal_log(true)
|
@@ -657,22 +657,22 @@ module Higgs::Test
|
|
657
657
|
|
658
658
|
st2 = Storage.new(other_name, :jlog_rotate_size => 1024 * 8)
|
659
659
|
begin
|
660
|
-
for path in Storage.rotated_entries("#{@
|
660
|
+
for path in Storage.rotated_entries("#{@st_name}.jlog")
|
661
661
|
st2.apply_journal_log(path)
|
662
662
|
end
|
663
663
|
ensure
|
664
664
|
st2.shutdown
|
665
665
|
end
|
666
666
|
|
667
|
-
assert(FileUtils.cmp("#{@
|
668
|
-
assert(Index.new.load("#{@
|
667
|
+
assert(FileUtils.cmp("#{@st_name}.tar", "#{other_name}.tar"), 'DATA should be same.')
|
668
|
+
assert(Index.new.load("#{@st_name}.idx").to_h ==
|
669
669
|
Index.new.load("#{other_name}.idx").to_h, 'INDEX should be same.')
|
670
670
|
end
|
671
671
|
|
672
672
|
def test_apply_journal_log_on_standby_mode
|
673
673
|
other_name = File.join(@test_dir, 'bar')
|
674
|
-
FileUtils.cp("#{@
|
675
|
-
FileUtils.cp("#{@
|
674
|
+
FileUtils.cp("#{@st_name}.tar", "#{other_name}.tar", :preserve => true)
|
675
|
+
FileUtils.cp("#{@st_name}.idx", "#{other_name}.idx", :preserve => true)
|
676
676
|
|
677
677
|
write_data
|
678
678
|
@st.rotate_journal_log(true)
|
@@ -680,15 +680,15 @@ module Higgs::Test
|
|
680
680
|
|
681
681
|
st2 = Storage.new(other_name, :jlog_rotate_size => 1024 * 8, :read_only => :standby)
|
682
682
|
begin
|
683
|
-
for path in Storage.rotated_entries("#{@
|
683
|
+
for path in Storage.rotated_entries("#{@st_name}.jlog")
|
684
684
|
st2.apply_journal_log(path)
|
685
685
|
end
|
686
686
|
ensure
|
687
687
|
st2.shutdown
|
688
688
|
end
|
689
689
|
|
690
|
-
assert(FileUtils.cmp("#{@
|
691
|
-
assert(Index.new.load("#{@
|
690
|
+
assert(FileUtils.cmp("#{@st_name}.tar", "#{other_name}.tar"), 'DATA should be same.')
|
691
|
+
assert(Index.new.load("#{@st_name}.idx").to_h ==
|
692
692
|
Index.new.load("#{other_name}.idx").to_h, 'INDEX should be same.')
|
693
693
|
end
|
694
694
|
|
@@ -703,7 +703,7 @@ module Higgs::Test
|
|
703
703
|
assert_equal(false, st2.shutdown?)
|
704
704
|
|
705
705
|
begin
|
706
|
-
for path in Storage.rotated_entries("#{@
|
706
|
+
for path in Storage.rotated_entries("#{@st_name}.jlog")
|
707
707
|
assert_raise(Storage::PanicError) {
|
708
708
|
st2.apply_journal_log(path)
|
709
709
|
}
|
@@ -720,8 +720,8 @@ module Higgs::Test
|
|
720
720
|
|
721
721
|
def test_apply_journal_log_PanicError_lost_journal_log
|
722
722
|
other_name = File.join(@test_dir, 'bar')
|
723
|
-
FileUtils.cp("#{@
|
724
|
-
FileUtils.cp("#{@
|
723
|
+
FileUtils.cp("#{@st_name}.tar", "#{other_name}.tar", :preserve => true)
|
724
|
+
FileUtils.cp("#{@st_name}.idx", "#{other_name}.idx", :preserve => true)
|
725
725
|
|
726
726
|
write_data
|
727
727
|
write_data
|
@@ -734,7 +734,7 @@ module Higgs::Test
|
|
734
734
|
assert_equal(false, st2.shutdown?)
|
735
735
|
|
736
736
|
begin
|
737
|
-
entries = Storage.rotated_entries("#{@
|
737
|
+
entries = Storage.rotated_entries("#{@st_name}.jlog")
|
738
738
|
entries.shift # skip first journal log
|
739
739
|
for path in entries
|
740
740
|
assert_raise(Storage::PanicError) {
|
@@ -756,11 +756,11 @@ module Higgs::Test
|
|
756
756
|
@st.rotate_journal_log(true)
|
757
757
|
|
758
758
|
other_name = File.join(@test_dir, 'bar')
|
759
|
-
FileUtils.cp("#{@
|
760
|
-
FileUtils.cp("#{@
|
759
|
+
FileUtils.cp("#{@st_name}.tar", "#{other_name}.tar", :preserve => true)
|
760
|
+
FileUtils.cp("#{@st_name}.idx", "#{other_name}.idx", :preserve => true)
|
761
761
|
|
762
762
|
other_name = File.join(@test_dir, 'bar')
|
763
|
-
for name in Storage.rotated_entries("#{@
|
763
|
+
for name in Storage.rotated_entries("#{@st_name}.jlog")
|
764
764
|
name =~ /\.jlog.*$/ or raise 'mismatch'
|
765
765
|
FileUtils.cp(name, other_name + $&, :preserve => true)
|
766
766
|
FileUtils.rm(name)
|
@@ -774,15 +774,15 @@ module Higgs::Test
|
|
774
774
|
other_name = File.join(@test_dir, 'bar')
|
775
775
|
st2 = Storage.new(other_name, :jlog_rotate_size => 1024 * 8)
|
776
776
|
begin
|
777
|
-
for path in Storage.rotated_entries("#{@
|
777
|
+
for path in Storage.rotated_entries("#{@st_name}.jlog")
|
778
778
|
st2.apply_journal_log(path)
|
779
779
|
end
|
780
780
|
ensure
|
781
781
|
st2.shutdown
|
782
782
|
end
|
783
783
|
|
784
|
-
assert(FileUtils.cmp("#{@
|
785
|
-
assert(Index.new.load("#{@
|
784
|
+
assert(FileUtils.cmp("#{@st_name}.tar", "#{other_name}.tar"), 'DATA should be same.')
|
785
|
+
assert(Index.new.load("#{@st_name}.idx").to_h ==
|
786
786
|
Index.new.load("#{other_name}.idx").to_h, 'INDEX should be same.')
|
787
787
|
end
|
788
788
|
end
|
@@ -791,13 +791,13 @@ module Higgs::Test
|
|
791
791
|
include Higgs
|
792
792
|
|
793
793
|
# for ident(1)
|
794
|
-
CVS_ID = '$Id: test_storage.rb
|
794
|
+
CVS_ID = '$Id: test_storage.rb 1609 2009-05-09 11:39:26Z toki $'
|
795
795
|
|
796
796
|
def setup
|
797
797
|
@test_dir = 'st_test'
|
798
798
|
FileUtils.rm_rf(@test_dir) # for debug
|
799
799
|
FileUtils.mkdir_p(@test_dir)
|
800
|
-
@
|
800
|
+
@st_name = File.join(@test_dir, 'foo')
|
801
801
|
@logger = proc{|path|
|
802
802
|
logger = Logger.new(path, 1)
|
803
803
|
logger.level = Logger::DEBUG
|
@@ -810,9 +810,21 @@ module Higgs::Test
|
|
810
810
|
end
|
811
811
|
|
812
812
|
def test_read_only_first_open_error
|
813
|
-
|
814
|
-
Storage.new(@
|
815
|
-
|
813
|
+
begin
|
814
|
+
Storage.new(@st_name, :read_only => true, :logger => @logger)
|
815
|
+
rescue Errno::ENOENT
|
816
|
+
return
|
817
|
+
rescue java.io.FileNotFoundException
|
818
|
+
return
|
819
|
+
ensure
|
820
|
+
error = $!
|
821
|
+
end
|
822
|
+
|
823
|
+
if (error) then
|
824
|
+
flunk("unexpected error: #{error}")
|
825
|
+
else
|
826
|
+
flunk('no raise!')
|
827
|
+
end
|
816
828
|
end
|
817
829
|
end
|
818
830
|
end
|
data/test/test_storage_conf.rb
CHANGED
@@ -7,7 +7,7 @@ require 'test/unit'
|
|
7
7
|
module Higgs::Test
|
8
8
|
class StorageConfTest < Test::Unit::TestCase
|
9
9
|
# for ident(1)
|
10
|
-
CVS_ID = '$Id: test_storage_conf.rb
|
10
|
+
CVS_ID = '$Id: test_storage_conf.rb 638 2007-10-14 09:43:23Z toki $'
|
11
11
|
|
12
12
|
include Higgs
|
13
13
|
|
@@ -6,7 +6,7 @@ require 'test/unit'
|
|
6
6
|
module Higgs::Test
|
7
7
|
class StorageInitOptionsTest < Test::Unit::TestCase
|
8
8
|
# for ident(1)
|
9
|
-
CVS_ID = '$Id: test_storage_init_opts.rb
|
9
|
+
CVS_ID = '$Id: test_storage_init_opts.rb 638 2007-10-14 09:43:23Z toki $'
|
10
10
|
|
11
11
|
include Higgs::Storage::InitOptions
|
12
12
|
|