roma 1.1.0 → 1.2.0

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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +21 -0
  3. data/Gemfile.lock +47 -0
  4. data/bin/check_tc_flag +39 -0
  5. data/bin/roma-adm +43 -0
  6. data/bin/ssroute +0 -3
  7. data/lib/roma/async_process.rb +203 -208
  8. data/lib/roma/command/sys_command_receiver.rb +52 -10
  9. data/lib/roma/config.rb +3 -0
  10. data/lib/roma/event/handler.rb +11 -4
  11. data/lib/roma/event/jaro_winkler.rb +23 -0
  12. data/lib/roma/event/levenshtein.rb +23 -0
  13. data/lib/roma/plugin/plugin_cmd_aliases.rb +1 -32
  14. data/lib/roma/romad.rb +23 -0
  15. data/lib/roma/routing/cb_rttable.rb +2 -0
  16. data/lib/roma/routing/random_partitioner.rb +43 -36
  17. data/lib/roma/routing/rttable.rb +5 -3
  18. data/lib/roma/stats.rb +4 -1
  19. data/lib/roma/tools/check_tc_flag.rb +25 -0
  20. data/lib/roma/tools/cpdb.rb +3 -2
  21. data/lib/roma/tools/mkconfig.rb +22 -13
  22. data/lib/roma/tools/roma-adm.rb +82 -0
  23. data/lib/roma/version.rb +1 -1
  24. data/test/config4mhash.rb +2 -0
  25. data/test/config4storage_error.rb +2 -0
  26. data/test/config4test.rb +2 -0
  27. data/test/cpdbtest/config4cpdb_base.rb +67 -0
  28. data/test/cpdbtest/config4cpdb_dbm.rb +9 -0
  29. data/test/cpdbtest/config4cpdb_groonga.rb +9 -0
  30. data/test/cpdbtest/config4cpdb_rh.rb +9 -0
  31. data/test/cpdbtest/config4cpdb_sqlite3.rb +9 -0
  32. data/test/cpdbtest/config4cpdb_tc.rb +9 -0
  33. data/test/cpdbtest/config4cpdb_tcmem.rb +9 -0
  34. data/test/roma-test-utils.rb +140 -40
  35. data/test/t_cpdata.rb +76 -80
  36. data/test/t_cpdb.rb +95 -0
  37. data/test/t_logshift.rb +86 -0
  38. data/test/t_mhash.rb +56 -54
  39. data/test/t_routing_logic.rb +121 -0
  40. data/test/t_writebehind.rb +202 -207
  41. metadata +25 -8
  42. data/bin/tc_data_restore.rb +0 -123
@@ -3,31 +3,31 @@ require 'roma/client/rclient'
3
3
  require 'roma/messaging/con_pool'
4
4
  require 'roma/config'
5
5
 
6
- Roma::Client::RomaClient.class_eval{
6
+ Roma::Client::RomaClient.class_eval do
7
7
  def init_sync_routing_proc
8
8
  end
9
- }
9
+ end
10
10
 
11
11
  class MHashTest < Test::Unit::TestCase
12
12
  include RomaTestUtils
13
13
 
14
14
  def setup
15
15
  start_roma 'config4mhash.rb'
16
- @rc=Roma::Client::RomaClient.new(["localhost_11211","localhost_11212"])
16
+ @rc = Roma::Client::RomaClient.new(%w(localhost_11211 localhost_11212))
17
17
  end
18
18
 
19
19
  def teardown
20
20
  stop_roma
21
- Roma::Messaging::ConPool::instance.close_all
21
+ Roma::Messaging::ConPool.instance.close_all
22
22
  rescue => e
23
- puts "#{e} #{$@}"
23
+ puts "#{e} #{$ERROR_POSITION}"
24
24
  end
25
25
 
26
26
  def test_createhash
27
- con = Roma::Messaging::ConPool.instance.get_connection("localhost_11211")
27
+ con = Roma::Messaging::ConPool.instance.get_connection('localhost_11211')
28
28
  con.write("hashlist\r\n")
29
29
  ret = con.gets
30
- assert_equal("roma", ret.chomp )
30
+ assert_equal('roma', ret.chomp)
31
31
 
32
32
  con.write("createhash test\r\n")
33
33
  ret = eval con.gets.chomp
@@ -41,28 +41,28 @@ class MHashTest < Test::Unit::TestCase
41
41
 
42
42
  con.write("hashlist\r\n")
43
43
  ret = con.gets
44
- assert_equal("roma test", ret.chomp )
45
-
46
- assert_equal("STORED", @rc.set("roma","hname=roma"))
47
- assert_equal("hname=roma", @rc.get("roma"))
48
- @rc.default_hash_name='test'
49
- assert_nil( @rc.get("roma") )
50
- assert_equal("STORED", @rc.set("roma","hname=test"))
51
- assert_equal("hname=test", @rc.get("roma"))
52
- @rc.default_hash_name='roma'
53
- assert_equal("hname=roma", @rc.get("roma"))
54
- assert_equal("DELETED", @rc.delete("roma"))
55
-
56
- @rc.default_hash_name='not_exist_hash'
44
+ assert_equal('roma test', ret.chomp)
45
+
46
+ assert_equal('STORED', @rc.set('roma', 'hname=roma'))
47
+ assert_equal('hname=roma', @rc.get('roma'))
48
+ @rc.default_hash_name = 'test'
49
+ assert_nil(@rc.get('roma'))
50
+ assert_equal('STORED', @rc.set('roma', 'hname=test'))
51
+ assert_equal('hname=test', @rc.get('roma'))
52
+ @rc.default_hash_name = 'roma'
53
+ assert_equal('hname=roma', @rc.get('roma'))
54
+ assert_equal('DELETED', @rc.delete('roma'))
55
+
56
+ @rc.default_hash_name = 'not_exist_hash'
57
57
  [:get, :delete, :incr, :decr].each do |m|
58
- assert_raise(RuntimeError,'SERVER_ERROR not_exist_hash does not exists.') do
59
- @rc.send m, "key"
58
+ assert_raise(RuntimeError, 'SERVER_ERROR not_exist_hash does not exists.') do
59
+ @rc.send m, 'key'
60
60
  end
61
61
  end
62
62
 
63
63
  [:set, :add, :replace, :append, :prepend].each do |m|
64
- assert_raise(RuntimeError,'SERVER_ERROR not_exist_hash does not exists.') do
65
- @rc.send m, "key","value"
64
+ assert_raise(RuntimeError, 'SERVER_ERROR not_exist_hash does not exists.') do
65
+ @rc.send m, 'key', 'value'
66
66
  end
67
67
  end
68
68
 
@@ -76,16 +76,16 @@ class MHashTest < Test::Unit::TestCase
76
76
  con.close
77
77
 
78
78
  # file check
79
- assert( File.directory?('./localhost_11211/test') == false)
80
- assert( File.directory?('./localhost_11212/test') == false)
79
+ assert(File.directory?('./localhost_11211/test') == false)
80
+ assert(File.directory?('./localhost_11212/test') == false)
81
81
  end
82
82
 
83
83
  def test_createhash2
84
84
  # add 'test' hash
85
- con = Roma::Messaging::ConPool.instance.get_connection("localhost_11211")
85
+ con = Roma::Messaging::ConPool.instance.get_connection('localhost_11211')
86
86
  con.write("hashlist\r\n")
87
87
  ret = con.gets
88
- assert_equal("roma", ret.chomp)
88
+ assert_equal('roma', ret.chomp)
89
89
 
90
90
  con.write("createhash test\r\n")
91
91
  ret = eval con.gets.chomp
@@ -93,35 +93,37 @@ class MHashTest < Test::Unit::TestCase
93
93
  assert_equal 'CREATED', ret['localhost_11211']
94
94
  assert_equal 'CREATED', ret['localhost_11212']
95
95
 
96
- assert_equal("STORED", @rc.set("roma","hname=roma"))
97
- assert_equal("hname=roma", @rc.get("roma"))
98
- @rc.default_hash_name='test'
99
- assert_equal("STORED", @rc.set("roma","hname=test"))
100
- assert_equal("hname=test", @rc.get("roma"))
96
+ assert_equal('STORED', @rc.set('roma', 'hname=roma'))
97
+ assert_equal('hname=roma', @rc.get('roma'))
98
+ @rc.default_hash_name = 'test'
99
+ assert_equal('STORED', @rc.set('roma', 'hname=test'))
100
+ assert_equal('hname=test', @rc.get('roma'))
101
101
 
102
102
  # stop roam
103
103
  stop_roma
104
104
 
105
105
  # restart roma
106
106
  sleep 1
107
- do_command_romad 'config4mhash.rb'
107
+ DEFAULT_NODES.each do |node|
108
+ do_command_romad(node, 'config4mhash.rb')
109
+ end
108
110
  sleep 1
109
111
 
110
112
  Roma::Messaging::ConPool.instance.close_all
111
113
  Roma::Client::ConPool.instance.close_all
112
114
 
113
- @rc=Roma::Client::RomaClient.new(["localhost_11211","localhost_11212"])
114
-
115
- @rc.default_hash_name='test'
116
- con = Roma::Messaging::ConPool.instance.get_connection("localhost_11211")
115
+ @rc = Roma::Client::RomaClient.new(%w(localhost_11211 localhost_11212))
116
+
117
+ @rc.default_hash_name = 'test'
118
+ con = Roma::Messaging::ConPool.instance.get_connection('localhost_11211')
117
119
  con.write("hashlist\r\n")
118
120
  ret = con.gets
119
121
 
120
- assert_equal("hname=test", @rc.get("roma"))
122
+ assert_equal('hname=test', @rc.get('roma'))
121
123
  end
122
-
124
+
123
125
  def test_createhash3
124
- con = Roma::Messaging::ConPool.instance.get_connection("localhost_11211")
126
+ con = Roma::Messaging::ConPool.instance.get_connection('localhost_11211')
125
127
 
126
128
  # delete hash to a nothing hash
127
129
  con.write("deletehash test\r\n")
@@ -129,7 +131,7 @@ class MHashTest < Test::Unit::TestCase
129
131
  assert_equal 2, ret.length
130
132
  assert_equal 'SERVER_ERROR test does not exists.', ret['localhost_11211']
131
133
  assert_equal 'SERVER_ERROR test does not exists.', ret['localhost_11212']
132
-
134
+
133
135
  # delete hash to default
134
136
  con.write("deletehash roma\r\n")
135
137
  ret = eval con.gets.chomp
@@ -139,36 +141,36 @@ class MHashTest < Test::Unit::TestCase
139
141
  end
140
142
 
141
143
  def test_defhash
142
- con = Roma::Messaging::ConPool.instance.get_connection("localhost_11211")
144
+ con = Roma::Messaging::ConPool.instance.get_connection('localhost_11211')
143
145
  con.write("defhash\r\n")
144
146
  ret = eval con.gets.chomp
145
147
  assert_equal 2, ret.length
146
148
  assert_equal 'roma', ret['localhost_11212']
147
149
  assert_equal 'roma', ret['localhost_11211']
148
-
150
+
149
151
  con.write("rdefhash not_exist_hash\r\n")
150
152
  ret = con.gets.chomp
151
- assert_equal("CLIENT_ERROR not_exist_hash does not find.", ret)
153
+ assert_equal('CLIENT_ERROR not_exist_hash does not find.', ret)
152
154
 
153
155
  con.write("createhash test\r\n")
154
156
  con.gets
155
157
 
156
158
  con.write("rdefhash test\r\n")
157
159
  ret = con.gets.chomp
158
- assert_equal("STORED", ret)
160
+ assert_equal('STORED', ret)
159
161
  end
160
162
 
161
163
  def test_mounthash
162
- con = Roma::Messaging::ConPool.instance.get_connection("localhost_11211")
164
+ con = Roma::Messaging::ConPool.instance.get_connection('localhost_11211')
163
165
 
164
166
  # file check
165
- assert( File.directory?('./localhost_11211/test') == false)
166
- assert( File.directory?('./localhost_11212/test') == false)
167
+ assert(File.directory?('./localhost_11211/test') == false)
168
+ assert(File.directory?('./localhost_11212/test') == false)
167
169
 
168
170
  # umount
169
171
  con.write("umounthash test\r\n")
170
172
  ret = con.gets.chomp
171
- assert_equal("SERVER_ERROR test does not find.", ret)
173
+ assert_equal('SERVER_ERROR test does not find.', ret)
172
174
 
173
175
  # add 'test' hash
174
176
  con.write("createhash test\r\n")
@@ -188,9 +190,9 @@ class MHashTest < Test::Unit::TestCase
188
190
  assert_equal 'UNMOUNTED', ret['localhost_11211']
189
191
  assert_equal 'UNMOUNTED', ret['localhost_11212']
190
192
 
191
- @rc.default_hash_name='test'
192
- assert_raise(RuntimeError,'SERVER_ERROR test does not exists.') do
193
- @rc.set "key", "value"
193
+ @rc.default_hash_name = 'test'
194
+ assert_raise(RuntimeError, 'SERVER_ERROR test does not exists.') do
195
+ @rc.set 'key', 'value'
194
196
  end
195
197
 
196
198
  # mount
@@ -200,6 +202,6 @@ class MHashTest < Test::Unit::TestCase
200
202
  assert_equal 'MOUNTED', ret['localhost_11211']
201
203
  assert_equal 'MOUNTED', ret['localhost_11212']
202
204
 
203
- assert_equal("STORED", @rc.set("key", "value"))
205
+ assert_equal('STORED', @rc.set('key', 'value'))
204
206
  end
205
207
  end
@@ -0,0 +1,121 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ class RoutingLogicTest < Test::Unit::TestCase
4
+ include RomaTestUtils
5
+
6
+ NEW_PORTS = %w(11213 11214)
7
+
8
+ def teardown
9
+ stop_roma
10
+ rescue => e
11
+ puts "#{e} #{$ERROR_POSITION}"
12
+ end
13
+
14
+ def test_join_single_host
15
+ join_test(true, NEW_PORTS.map { |port| "#{DEFAULT_HOST}_#{port}" })
16
+ end
17
+
18
+ def test_join_multiple_hosts
19
+ join_test(false, NEW_PORTS.map { |port| "#{DEFAULT_IP}_#{port}" })
20
+ end
21
+
22
+ def multiple_hosts_include_some_hosts
23
+ join_test(false, ["#{DEFAULT_IP}_#{NEW_PORTS[0]}", "#{DEFAULT_HOST}_#{NEW_PORTS[1]}"])
24
+ end
25
+
26
+ def join_test(replication_in_host, new_nodes)
27
+ start_roma(div_bits: 6, replication_in_host: replication_in_host)
28
+ sleep 12 # Wait cluster starting, otherwise join will never finish
29
+ client = get_client
30
+
31
+ # Join nodes
32
+ assert_equal(DEFAULT_NODES.size, client.rttable.nodes.size)
33
+ new_nodes.each do |new_node|
34
+ join_roma(new_node, replication_in_host: replication_in_host)
35
+ wait_join(new_node)
36
+ stats = client.stats(node: new_node)
37
+ assert_match(/#{new_node}/, stats['routing.nodes'])
38
+ assert_not_equal(0, stats['routing.secondary1'].to_i)
39
+ end
40
+
41
+ new_node = new_nodes.last
42
+
43
+ # Release and stop a node
44
+ release_roma_node(new_node)
45
+ wait_release(new_node)
46
+ stop_roma_node(new_node)
47
+ wait_failover(new_node)
48
+ stats = client.stats
49
+ assert_no_match(/#{new_node}/, stats['routing.nodes'])
50
+ assert_equal(0, stats['routing.short_vnodes'].to_i)
51
+
52
+ # Join a node without short vnodes
53
+ join_roma(new_node, replication_in_host: replication_in_host)
54
+ wait_join(new_node)
55
+ stats = client.stats(node: new_node)
56
+ assert_match(/#{new_node}/, stats['routing.nodes'])
57
+ assert_not_equal(0, stats['routing.secondary1'].to_i)
58
+
59
+ # Stop a node and generate short vnodes
60
+ stop_roma_node(new_node)
61
+ wait_failover(new_node)
62
+ stats = client.stats
63
+ assert_no_match(/#{new_node}/, stats['routing.nodes'])
64
+ assert_not_equal(0, stats['routing.short_vnodes'].to_i)
65
+
66
+ # Join a node with short vnodes
67
+ join_roma(new_node, replication_in_host: replication_in_host)
68
+ wait_join(new_node)
69
+ stats = client.stats(node: new_node)
70
+ assert_match(/#{new_node}/, stats['routing.nodes'])
71
+ assert_not_equal(0, stats['routing.secondary1'].to_i)
72
+ end
73
+ private :join_test
74
+
75
+ def test_routing_logic_join_when_num_of_hosts_changing
76
+ replication_in_host = false
77
+ same_host_node = "#{DEFAULT_HOST}_#{NEW_PORTS[0]}"
78
+ other_host_node = "#{DEFAULT_IP}_#{NEW_PORTS[1]}"
79
+
80
+ start_roma(div_bits: 6, replication_in_host: replication_in_host)
81
+ sleep 12 # Wait cluster starting, otherwise join will never finish
82
+ client = get_client
83
+
84
+ # Join other_host_node
85
+ join_roma(other_host_node, replication_in_host: replication_in_host)
86
+ wait_join(other_host_node)
87
+ stats = client.stats(node: other_host_node)
88
+ assert_match(/#{other_host_node}/, stats['routing.nodes'])
89
+ assert_not_equal(0, stats['routing.secondary1'].to_i)
90
+
91
+ # Stop other_host_node and generate short vnodes
92
+ stop_roma_node(other_host_node)
93
+ wait_failover(other_host_node)
94
+ stats = client.stats
95
+ assert_no_match(/#{other_host_node}/, stats['routing.nodes'])
96
+ assert_not_equal(0, stats['routing.short_vnodes'].to_i)
97
+
98
+ # Join other_host_node
99
+ join_roma(other_host_node, replication_in_host: replication_in_host)
100
+ wait_join(other_host_node)
101
+ stats = client.stats(node: other_host_node)
102
+ assert_match(/#{other_host_node}/, stats['routing.nodes'])
103
+ assert_not_equal(0, stats['routing.secondary1'].to_i)
104
+
105
+ # Stop other_host_node and generate short vnodes
106
+ stop_roma_node(other_host_node)
107
+ wait_failover(other_host_node)
108
+ stats = client.stats
109
+ assert_no_match(/#{other_host_node}/, stats['routing.nodes'])
110
+ assert_not_equal(0, stats['routing.short_vnodes'].to_i)
111
+
112
+ # Join same_host_node (secondary will be 0 in this case)
113
+ join_roma(same_host_node, replication_in_host: replication_in_host)
114
+ wait_join(same_host_node)
115
+ stats = client.stats(node: same_host_node)
116
+ assert_match(/#{same_host_node}/, stats['routing.nodes'])
117
+ assert_equal(0, stats['routing.secondary1'].to_i)
118
+ end
119
+
120
+ # TODO: recover, balance command tests
121
+ end
@@ -8,49 +8,48 @@ require 'roma/client/plugin/alist'
8
8
  require 'roma/client/plugin/map'
9
9
 
10
10
  module FileWriterTests
11
-
12
11
  # making and writing test
13
12
  def test_wb_write
14
13
  system('rm -rf wb_test')
15
- fw = Roma::WriteBehind::FileWriter.new("wb_test", 1024 * 1024, Logger.new(nil))
14
+ fw = Roma::WriteBehind::FileWriter.new('wb_test', 1024 * 1024, Logger.new(nil))
16
15
  path = "wb_test/roma0_11211/roma/#{Time.now.strftime('%Y%m%d')}/"
17
16
 
18
17
  assert(!File.exist?("#{path}/0.wb"))
19
- 100.times{|i|
20
- fw.write('roma',i,"key-#{i}","val-#{i}")
21
- }
18
+ 100.times do |i|
19
+ fw.write('roma', i, "key-#{i}", "val-#{i}")
20
+ end
22
21
  assert(File.exist?("#{path}/0.wb"))
23
22
  assert(!File.exist?("#{path}/1.wb"))
24
23
 
25
24
  fw.rotate('roma')
26
25
 
27
26
  i = 100
28
- fw.write('roma',i,"key-#{i}","val-#{i}")
27
+ fw.write('roma', i, "key-#{i}", "val-#{i}")
29
28
  assert(File.exist?("#{path}/1.wb"))
30
29
 
31
30
  fw.close_all
32
31
 
33
32
  wb0 = read_wb("#{path}/0.wb")
34
- assert_equal(100,wb0.length )
35
- wb0.each{|last, cmd, key, val|
36
- assert_equal( "key-#{cmd}",key)
37
- assert_equal( "val-#{cmd}",val)
38
- }
33
+ assert_equal(100, wb0.length)
34
+ wb0.each do |_last, cmd, key, val|
35
+ assert_equal("key-#{cmd}", key)
36
+ assert_equal("val-#{cmd}", val)
37
+ end
39
38
  wb1 = read_wb("#{path}/1.wb")
40
- assert_equal(1,wb1.length )
39
+ assert_equal(1, wb1.length)
41
40
  end
42
41
 
43
42
  # rotation test per data
44
43
  def test_wb_rotation
45
44
  system('rm -rf wb_test')
46
- fw = Roma::WriteBehind::FileWriter.new("wb_test", 900, Logger.new(nil))
45
+ fw = Roma::WriteBehind::FileWriter.new('wb_test', 900, Logger.new(nil))
47
46
  path = "wb_test/roma0_11211/roma/#{Time.now.strftime('%Y%m%d')}/"
48
47
 
49
- 100.times{|i|
50
- fw.write('roma',0,
51
- sprintf("key-%04d",i),
52
- sprintf("val-%04d",i))
53
- }
48
+ 100.times do |i|
49
+ fw.write('roma', 0,
50
+ sprintf('key-%04d', i),
51
+ sprintf('val-%04d', i))
52
+ end
54
53
 
55
54
  assert(File.exist?("#{path}/0.wb"))
56
55
  assert(File.exist?("#{path}/1.wb"))
@@ -62,60 +61,60 @@ module FileWriterTests
62
61
  # rotation test per time
63
62
  def test_rotation2
64
63
  system('rm -rf wb_test')
65
- fw = Roma::WriteBehind::FileWriter.new("wb_test", 1024 * 1024, Logger.new(nil))
64
+ fw = Roma::WriteBehind::FileWriter.new('wb_test', 1024 * 1024, Logger.new(nil))
66
65
  path = "wb_test/roma0_11211/roma/#{Time.now.strftime('%Y%m%d')}/"
67
66
 
68
67
  # rottime's usec have some value,from instance was created
69
- rt = fw.instance_eval{ @rottime }
70
- assert_not_equal(0, rt.hour + rt.min + rt.sec+ rt.usec)
68
+ rt = fw.instance_eval { @rottime }
69
+ assert_not_equal(0, rt.hour + rt.min + rt.sec + rt.usec)
71
70
  # formatting execute in today's date
72
71
  assert_equal(Time.now.day, rt.day)
73
72
  # confirming the file do not exist
74
73
  assert(!File.exist?("#{path}/0.wb"))
75
- fw.write('roma',1,"key","val")
74
+ fw.write('roma', 1, 'key', 'val')
76
75
  # Open when somenthing to write,and in same timing rottime is updated
77
- rt = fw.instance_eval{ @rottime }
76
+ rt = fw.instance_eval { @rottime }
78
77
  # In this time, under of date become "0"
79
- assert_equal(0, rt.hour + rt.min + rt.sec+ rt.usec)
78
+ assert_equal(0, rt.hour + rt.min + rt.sec + rt.usec)
80
79
  # date become tomorrow
81
80
  assert_not_equal(Time.now.day, rt.day)
82
- 10.times{|i|
83
- fw.write('roma',i,"key-#{i}","val-#{i}")
84
- }
81
+ 10.times do |i|
82
+ fw.write('roma', i, "key-#{i}", "val-#{i}")
83
+ end
85
84
  # confirming file is only 1 not over 2
86
85
  assert(File.exist?("#{path}/0.wb"))
87
86
  assert(!File.exist?("#{path}/1.wb"))
88
87
 
89
88
  # set rottime to now forcibly
90
- fw.instance_eval{ @rottime=Time.now }
89
+ fw.instance_eval { @rottime = Time.now }
91
90
  # confriming to change rottime
92
- assert_not_equal(rt, fw.instance_eval{ @rottime })
91
+ assert_not_equal(rt, fw.instance_eval { @rottime })
93
92
  # When something write, rotation is occured
94
- fw.write('roma',1,"key","val")
93
+ fw.write('roma', 1, 'key', 'val')
95
94
  assert(File.exist?("#{path}/1.wb"))
96
95
  # rottime turn back because of test shold not step over the day.
97
- assert_equal(rt, fw.instance_eval{ @rottime })
96
+ assert_equal(rt, fw.instance_eval { @rottime })
98
97
  end
99
98
 
100
99
  # rotation test from outside
101
100
  def test_wb_rotation3
102
101
  system('rm -rf wb_test')
103
- fw = Roma::WriteBehind::FileWriter.new("wb_test", 1024 * 1024, Logger.new(nil))
102
+ fw = Roma::WriteBehind::FileWriter.new('wb_test', 1024 * 1024, Logger.new(nil))
104
103
  path = "wb_test/roma0_11211/roma/#{Time.now.strftime('%Y%m%d')}/"
105
104
 
106
105
  # confirming file don't exist
107
106
  assert(!File.exist?("#{path}/0.wb"))
108
- 10.times{|i|
109
- fw.write('roma',i,"key-#{i}","val-#{i}")
110
- }
107
+ 10.times do |i|
108
+ fw.write('roma', i, "key-#{i}", "val-#{i}")
109
+ end
111
110
  # confirming file is only 1 not over 2
112
111
  assert(File.exist?("#{path}/0.wb"))
113
112
  assert(!File.exist?("#{path}/1.wb"))
114
113
 
115
114
  fw.rotate('roma')
116
- 10.times{|i|
117
- fw.write('roma',i,"key-#{i}","val-#{i}")
118
- }
115
+ 10.times do |i|
116
+ fw.write('roma', i, "key-#{i}", "val-#{i}")
117
+ end
119
118
  # confirming files are 2 not over 3
120
119
  assert(File.exist?("#{path}/0.wb"))
121
120
  assert(File.exist?("#{path}/1.wb"))
@@ -129,9 +128,9 @@ module FileWriterTests
129
128
  assert(File.exist?("#{path}/0.wb"))
130
129
  assert(File.exist?("#{path}/1.wb"))
131
130
  assert(!File.exist?("#{path}/2.wb"))
132
- 10.times{|i|
133
- fw.write('roma',i,"key-#{i}","val-#{i}")
134
- }
131
+ 10.times do |i|
132
+ fw.write('roma', i, "key-#{i}", "val-#{i}")
133
+ end
135
134
  # confirming files are 3 not over 4
136
135
  assert(File.exist?("#{path}/0.wb"))
137
136
  assert(File.exist?("#{path}/1.wb"))
@@ -139,48 +138,46 @@ module FileWriterTests
139
138
  assert(!File.exist?("#{path}/3.wb"))
140
139
  end
141
140
 
142
-
143
141
  def test_wb_get_current_file_path
144
142
  system('rm -rf wb_test')
145
- fw = Roma::WriteBehind::FileWriter.new("wb_test", 900, Logger.new(nil))
143
+ fw = Roma::WriteBehind::FileWriter.new('wb_test', 900, Logger.new(nil))
146
144
 
147
- assert_nil( fw.get_current_file_path('roma') )
145
+ assert_nil(fw.get_current_file_path('roma'))
148
146
 
149
- fw.write('roma',0,"key","val")
147
+ fw.write('roma', 0, 'key', 'val')
150
148
 
151
149
  path = File.expand_path("./wb_test/roma0_11211/roma/#{Time.now.strftime('%Y%m%d')}/")
152
- assert_equal( File.join(path,"0.wb"), fw.get_current_file_path('roma'))
150
+ assert_equal(File.join(path, '0.wb'), fw.get_current_file_path('roma'))
153
151
 
154
152
  fw.rotate('roma')
155
- assert_nil( fw.get_current_file_path('roma'))
153
+ assert_nil(fw.get_current_file_path('roma'))
156
154
 
157
- fw.write('roma',0,"key","val")
158
- assert_equal( File.join(path,"1.wb"), fw.get_current_file_path('roma') )
155
+ fw.write('roma', 0, 'key', 'val')
156
+ assert_equal(File.join(path, '1.wb'), fw.get_current_file_path('roma'))
159
157
  end
160
158
 
161
159
  def test_wb_get_path
162
160
  system('rm -rf wb_test')
163
- fw = Roma::WriteBehind::FileWriter.new("wb_test", 900, Logger.new(nil))
164
- path = File.expand_path("./wb_test/roma0_11211/roma")
165
- assert_equal( path, fw.wb_get_path('roma'))
161
+ fw = Roma::WriteBehind::FileWriter.new('wb_test', 900, Logger.new(nil))
162
+ path = File.expand_path('./wb_test/roma0_11211/roma')
163
+ assert_equal(path, fw.wb_get_path('roma'))
166
164
  end
167
165
 
168
166
  def read_wb(fname)
169
167
  ret = []
170
- open(fname,'rb'){|f|
171
- until(f.eof?)
168
+ open(fname, 'rb') do |f|
169
+ until f.eof?
172
170
  b1 = f.read(10)
173
171
  last, cmd, klen = b1.unpack('NnN')
174
172
  key = f.read(klen)
175
173
  b2 = f.read(4)
176
174
  vlen = b2.unpack('N')[0]
177
175
  val = f.read(vlen)
178
- ret << [last,cmd,key,val]
176
+ ret << [last, cmd, key, val]
179
177
  end
180
- }
178
+ end
181
179
  ret
182
180
  end
183
-
184
181
  end
185
182
 
186
183
  class FileWriterTest < Test::Unit::TestCase
@@ -189,7 +186,7 @@ class FileWriterTest < Test::Unit::TestCase
189
186
  def setup
190
187
  @stats = Roma::Stats.instance
191
188
  @stats.address = 'roma0'
192
- @stats.port = 11211
189
+ @stats.port = 11_211
193
190
  end
194
191
 
195
192
  def teardown
@@ -203,89 +200,87 @@ class WriteBehindTest < Test::Unit::TestCase
203
200
 
204
201
  def setup
205
202
  start_roma
206
- @rc=Roma::Client::RomaClient.new(["localhost_11211","localhost_11212"],
207
- [Roma::Client::Plugin::Alist,
208
- Roma::Client::Plugin::Map])
203
+ @rc = Roma::Client::RomaClient.new(%w(localhost_11211 localhost_11212),
204
+ [Roma::Client::Plugin::Alist,
205
+ Roma::Client::Plugin::Map])
209
206
  system('rm -rf wb')
210
207
  end
211
208
 
212
209
  def teardown
213
210
  stop_roma
214
- Roma::Messaging::ConPool::instance.close_all
211
+ Roma::Messaging::ConPool.instance.close_all
215
212
  rescue => e
216
- puts "#{e} #{$@}"
213
+ puts "#{e} #{$ERROR_POSITION}"
217
214
  end
218
215
 
219
216
  def test_wb2_stat
220
- ret = send_cmd("localhost_11211", "stat wb_command_map")
217
+ ret = send_cmd('localhost_11211', 'stat wb_command_map')
221
218
  assert_equal("stats.wb_command_map {}\r\n", ret)
222
219
  end
223
220
 
224
221
  def test_wb2_command_map
225
- send_cmd("localhost_11211", "wb_command_map {:set=>1}")
226
- ret = send_cmd("localhost_11211", "stat wb_command_map")
222
+ send_cmd('localhost_11211', 'wb_command_map {:set=>1}')
223
+ ret = send_cmd('localhost_11211', 'stat wb_command_map')
227
224
  assert_equal("stats.wb_command_map {:set=>1}\r\n", ret)
228
225
  end
229
226
 
230
227
  def test_wb2_set
231
- send_cmd("localhost_11211", "wb_command_map {:set=>1}")
232
- assert_equal("STORED", @rc.set("abc","value abc",0,true))
233
- send_cmd("localhost_11211", "writebehind_rotate roma")
228
+ send_cmd('localhost_11211', 'wb_command_map {:set=>1}')
229
+ assert_equal('STORED', @rc.set('abc', 'value abc', 0, true))
230
+ send_cmd('localhost_11211', 'writebehind_rotate roma')
234
231
 
235
232
  wb0 = read_wb("#{wb_path}/0.wb")
236
233
  assert_equal(1, wb0.length)
237
- wb0.each do |last, cmd, key, val|
238
- puts "#{cmd} #{key} #{val.inspect}"
234
+ wb0.each do |_last, cmd, key, val|
235
+ # puts "#{cmd} #{key} #{val.inspect}"
239
236
  assert_equal(1, cmd)
240
- assert_equal("abc", key)
241
- assert_equal("value abc", val)
237
+ assert_equal('abc', key)
238
+ assert_equal('value abc', val)
242
239
  end
243
240
  end
244
241
 
245
242
  def test_wb2_set2
246
- send_cmd("localhost_11211", "wb_command_map {:set=>1, :set__prev=>2}")
247
- assert_equal("STORED", @rc.set("abc","val1",0,true))
248
- assert_equal("STORED", @rc.set("abc","val2",0,true))
249
- send_cmd("localhost_11211", "writebehind_rotate roma")
243
+ send_cmd('localhost_11211', 'wb_command_map {:set=>1, :set__prev=>2}')
244
+ assert_equal('STORED', @rc.set('abc', 'val1', 0, true))
245
+ assert_equal('STORED', @rc.set('abc', 'val2', 0, true))
246
+ send_cmd('localhost_11211', 'writebehind_rotate roma')
250
247
 
251
- res = [[1,"abc","val1"], [2,"abc","val1"], [1,"abc","val2"]]
248
+ res = [[1, 'abc', 'val1'], [2, 'abc', 'val1'], [1, 'abc', 'val2']]
252
249
  wb0 = read_wb("#{wb_path}/0.wb")
253
250
  assert_equal(3, wb0.length)
254
251
  i = 0
255
- wb0.each do |last, cmd, key, val|
252
+ wb0.each do |_last, cmd, key, val|
256
253
  # puts "#{cmd} #{key} #{val.inspect} #{i}"
257
254
  assert_equal(res[i][0], cmd)
258
255
  assert_equal(res[i][1], key)
259
256
  assert_equal(res[i][2], val)
260
- i+=1
257
+ i += 1
261
258
  end
262
259
  end
263
260
 
264
-
265
261
  def test_wb2_storage_commands
266
- h = {:set=>1,:delete=>2,:add=>3,:replace=>4,:append=>5,:prepend=>6,:cas=>7,:incr=>8,:decr=>9,:set_expt=>10}
267
- send_cmd("localhost_11211", "wb_command_map #{h}")
268
- assert_equal("STORED", @rc.set("abc","1",0,true))
269
- assert_equal("DELETED", @rc.delete("abc"))
270
- assert_equal("STORED", @rc.add("abc","1",0,true))
271
- assert_equal("STORED", @rc.replace("abc","2",0,true))
272
- assert_equal("STORED", @rc.append("abc","3"))
273
- assert_equal("STORED", @rc.prepend("abc","1"))
274
- res = @rc.cas("abc", 0, true) do |v|
275
- v = "128"
262
+ h = { set: 1, delete: 2, add: 3, replace: 4, append: 5, prepend: 6, cas: 7, incr: 8, decr: 9, set_expt: 10 }
263
+ send_cmd('localhost_11211', "wb_command_map #{h}")
264
+ assert_equal('STORED', @rc.set('abc', '1', 0, true))
265
+ assert_equal('DELETED', @rc.delete('abc'))
266
+ assert_equal('STORED', @rc.add('abc', '1', 0, true))
267
+ assert_equal('STORED', @rc.replace('abc', '2', 0, true))
268
+ assert_equal('STORED', @rc.append('abc', '3'))
269
+ assert_equal('STORED', @rc.prepend('abc', '1'))
270
+ res = @rc.cas('abc', 0, true) do |_v|
271
+ v = '128'
276
272
  end
277
- assert_equal("STORED", res)
278
- assert_equal(129, @rc.incr("abc"))
279
- assert_equal(128, @rc.decr("abc"))
280
- res = send_cmd("localhost_11211", "set_expt abc 100")
281
- assert_equal("STORED", res.chomp)
282
- send_cmd("localhost_11211", "writebehind_rotate roma")
283
-
284
-
285
- res = {1=>'1',2=>'1',3=>'1',4=>'2',5=>'23',6=>'123',7=>'128',8=>'129',9=>'128', 10=>nil}
273
+ assert_equal('STORED', res)
274
+ assert_equal(129, @rc.incr('abc'))
275
+ assert_equal(128, @rc.decr('abc'))
276
+ res = send_cmd('localhost_11211', 'set_expt abc 100')
277
+ assert_equal('STORED', res.chomp)
278
+ send_cmd('localhost_11211', 'writebehind_rotate roma')
279
+
280
+ res = { 1 => '1', 2 => '1', 3 => '1', 4 => '2', 5 => '23', 6 => '123', 7 => '128', 8 => '129', 9 => '128', 10 => nil }
286
281
  wb0 = read_wb("#{wb_path}/0.wb")
287
282
  assert_equal(10, wb0.length)
288
- wb0.each do |last, cmd, key, val|
283
+ wb0.each do |_last, cmd, _key, val|
289
284
  # puts "#{cmd} #{key} #{val.inspect}"
290
285
  assert_equal(res[cmd], val) if res[cmd]
291
286
  end
@@ -293,52 +288,52 @@ class WriteBehindTest < Test::Unit::TestCase
293
288
 
294
289
  def test_wb2_storage_commands2
295
290
  h = {
296
- :set=>1, :set__prev=>11,
297
- :delete=>2, :delete__prev=>12,
298
- :add=>3, :add__prev=>13,
299
- :replace=>4, :replace__prev=>14,
300
- :append=>5,:append__prev=>15,
301
- :prepend=>6,:prepend__prev=>16,
302
- :cas=>7,:cas__prev=>17,
303
- :incr=>8,:incr__prev=>18,
304
- :decr=>9,:decr__prev=>19,
305
- :set_expt=>10,:set_expt__prev=>20
291
+ set: 1, set__prev: 11,
292
+ delete: 2, delete__prev: 12,
293
+ add: 3, add__prev: 13,
294
+ replace: 4, replace__prev: 14,
295
+ append: 5, append__prev: 15,
296
+ prepend: 6, prepend__prev: 16,
297
+ cas: 7, cas__prev: 17,
298
+ incr: 8, incr__prev: 18,
299
+ decr: 9, decr__prev: 19,
300
+ set_expt: 10, set_expt__prev: 20
306
301
  }
307
- send_cmd("localhost_11211", "wb_command_map #{h}")
308
- assert_equal("STORED", @rc.set("abc","1",0,true))
309
- assert_equal("DELETED", @rc.delete("abc"))
310
- assert_equal("STORED", @rc.add("abc","1",0,true))
311
- assert_equal("STORED", @rc.replace("abc","2",0,true))
312
- assert_equal("STORED", @rc.append("abc","3"))
313
- assert_equal("STORED", @rc.prepend("abc","1"))
314
- res = @rc.cas("abc", 0, true) do |v|
315
- v = "128"
302
+ send_cmd('localhost_11211', "wb_command_map #{h}")
303
+ assert_equal('STORED', @rc.set('abc', '1', 0, true))
304
+ assert_equal('DELETED', @rc.delete('abc'))
305
+ assert_equal('STORED', @rc.add('abc', '1', 0, true))
306
+ assert_equal('STORED', @rc.replace('abc', '2', 0, true))
307
+ assert_equal('STORED', @rc.append('abc', '3'))
308
+ assert_equal('STORED', @rc.prepend('abc', '1'))
309
+ res = @rc.cas('abc', 0, true) do |_v|
310
+ v = '128'
316
311
  end
317
- assert_equal("STORED", res)
318
- assert_equal(129, @rc.incr("abc"))
319
- assert_equal(128, @rc.decr("abc"))
320
- res = send_cmd("localhost_11211", "set_expt abc 100")
321
- assert_equal("STORED", res.chomp)
312
+ assert_equal('STORED', res)
313
+ assert_equal(129, @rc.incr('abc'))
314
+ assert_equal(128, @rc.decr('abc'))
315
+ res = send_cmd('localhost_11211', 'set_expt abc 100')
316
+ assert_equal('STORED', res.chomp)
322
317
 
323
- send_cmd("localhost_11211", "writebehind_rotate roma")
318
+ send_cmd('localhost_11211', 'writebehind_rotate roma')
324
319
 
325
320
  res = [
326
- [1, "abc", "1"], [12, "abc", "1"],
327
- [2, "abc", "1"],
328
- [3, "abc", "1"], [14, "abc", "1"],
329
- [4, "abc", "2"], [15, "abc", "2"],
330
- [5, "abc", "23"],[16, "abc", "23"],
331
- [6, "abc", "123"], [17, "abc", "123"],
332
- [7, "abc", "128"], [18, "abc", "128"],
333
- [8, "abc", "129"], [19, "abc", "129"],
334
- [9, "abc", "128"],
335
- [20, "abc"], [10, "abc"]
336
- ]
321
+ [1, 'abc', '1'], [12, 'abc', '1'],
322
+ [2, 'abc', '1'],
323
+ [3, 'abc', '1'], [14, 'abc', '1'],
324
+ [4, 'abc', '2'], [15, 'abc', '2'],
325
+ [5, 'abc', '23'], [16, 'abc', '23'],
326
+ [6, 'abc', '123'], [17, 'abc', '123'],
327
+ [7, 'abc', '128'], [18, 'abc', '128'],
328
+ [8, 'abc', '129'], [19, 'abc', '129'],
329
+ [9, 'abc', '128'],
330
+ [20, 'abc'], [10, 'abc']
331
+ ]
337
332
 
338
333
  wb0 = read_wb("#{wb_path}/0.wb")
339
334
  assert_equal(18, wb0.length)
340
335
  i = 0
341
- wb0.each do |last, cmd, key, val|
336
+ wb0.each do |_last, cmd, key, val|
342
337
  # puts "#{cmd} #{key} #{val.inspect}"
343
338
  assert_equal(res[i][0], cmd)
344
339
  assert_equal(res[i][1], key)
@@ -349,49 +344,49 @@ class WriteBehindTest < Test::Unit::TestCase
349
344
 
350
345
  def test_wb2_alist_commands
351
346
  h = {
352
- :alist_clear=>1,
353
- :alist_delete=>2,
354
- :alist_delete_at=>3,
355
- :alist_insert=>4,
356
- :alist_sized_insert=>5,
357
- :alist_swap_and_insert=>6,
358
- :alist_swap_and_sized_insert=>7,
359
- :alist_expired_swap_and_insert=>8,
360
- :alist_expired_swap_and_sized_insert=>9,
361
- :alist_push=>10,
362
- :alist_sized_push=>11,
363
- :alist_swap_and_push=>12,
364
- :alist_swap_and_sized_push=>13,
365
- :alist_expired_swap_and_push=>14,
366
- :alist_expired_swap_and_sized_push=>15,
367
- :alist_update_at=>16
347
+ alist_clear: 1,
348
+ alist_delete: 2,
349
+ alist_delete_at: 3,
350
+ alist_insert: 4,
351
+ alist_sized_insert: 5,
352
+ alist_swap_and_insert: 6,
353
+ alist_swap_and_sized_insert: 7,
354
+ alist_expired_swap_and_insert: 8,
355
+ alist_expired_swap_and_sized_insert: 9,
356
+ alist_push: 10,
357
+ alist_sized_push: 11,
358
+ alist_swap_and_push: 12,
359
+ alist_swap_and_sized_push: 13,
360
+ alist_expired_swap_and_push: 14,
361
+ alist_expired_swap_and_sized_push: 15,
362
+ alist_update_at: 16
368
363
  }
369
- send_cmd("localhost_11211", "wb_command_map #{h}")
370
- assert_equal('STORED', @rc.alist_push("abc","1")) # ['1']
371
- assert_equal('STORED', @rc.alist_insert("abc",0,"2")) #['2','1']
372
- assert_equal('STORED', @rc.alist_sized_insert("abc",5,"3")) #['3','2','1']
373
- assert_equal('STORED', @rc.alist_swap_and_insert("abc","4")) #['4','3','2','1']
374
- assert_equal('STORED', @rc.alist_swap_and_sized_insert("abc",5,"5")) #['5','4','3','2','1']
375
- assert_equal('STORED', @rc.alist_expired_swap_and_insert("abc",100,"6")) #['6','5','4','3','2','1']
376
- assert_equal('STORED', @rc.alist_expired_swap_and_sized_insert("abc",100,10,"7")) #['7','6','5','4','3','2','1']
377
- assert_equal('STORED', @rc.alist_sized_push("abc",10,"8")) #['7','6','5','4','3','2','1','8']
378
- assert_equal('STORED', @rc.alist_swap_and_push("abc","9")) #['7','6','5','4','3','2','1','8','9']
379
- assert_equal('STORED', @rc.alist_swap_and_sized_push("abc",10,"10")) #['7','6','5','4','3','2','1','8','9','10']
380
- assert_equal('STORED', @rc.alist_expired_swap_and_push("abc",100,"11")) #['7','6','5','4','3','2','1','8','9','10','11']
381
- assert_equal('STORED', @rc.alist_expired_swap_and_sized_push("abc",100,12,"12")) #['7','6','5','4','3','2','1','8','9','10','12']
382
- assert_equal('STORED', @rc.alist_update_at("abc",0,"13")) #['13','6','5','4','3','2','1','8','9','10','12']
383
- assert_equal('DELETED', @rc.alist_delete("abc","3") ) #['13','6','5','4','2','1','8','9','10','12']
384
- assert_equal('DELETED', @rc.alist_delete_at("abc",1)) #['13','5','4','2','1','8','9','10','12']
385
- assert_equal('CLEARED', @rc.alist_clear("abc"))
386
- send_cmd("localhost_11211", "writebehind_rotate roma")
364
+ send_cmd('localhost_11211', "wb_command_map #{h}")
365
+ assert_equal('STORED', @rc.alist_push('abc', '1')) # ['1']
366
+ assert_equal('STORED', @rc.alist_insert('abc', 0, '2')) # ['2','1']
367
+ assert_equal('STORED', @rc.alist_sized_insert('abc', 5, '3')) # ['3','2','1']
368
+ assert_equal('STORED', @rc.alist_swap_and_insert('abc', '4')) # ['4','3','2','1']
369
+ assert_equal('STORED', @rc.alist_swap_and_sized_insert('abc', 5, '5')) # ['5','4','3','2','1']
370
+ assert_equal('STORED', @rc.alist_expired_swap_and_insert('abc', 100, '6')) # ['6','5','4','3','2','1']
371
+ assert_equal('STORED', @rc.alist_expired_swap_and_sized_insert('abc', 100, 10, '7')) # ['7','6','5','4','3','2','1']
372
+ assert_equal('STORED', @rc.alist_sized_push('abc', 10, '8')) # ['7','6','5','4','3','2','1','8']
373
+ assert_equal('STORED', @rc.alist_swap_and_push('abc', '9')) # ['7','6','5','4','3','2','1','8','9']
374
+ assert_equal('STORED', @rc.alist_swap_and_sized_push('abc', 10, '10')) # ['7','6','5','4','3','2','1','8','9','10']
375
+ assert_equal('STORED', @rc.alist_expired_swap_and_push('abc', 100, '11')) # ['7','6','5','4','3','2','1','8','9','10','11']
376
+ assert_equal('STORED', @rc.alist_expired_swap_and_sized_push('abc', 100, 12, '12')) # ['7','6','5','4','3','2','1','8','9','10','12']
377
+ assert_equal('STORED', @rc.alist_update_at('abc', 0, '13')) # ['13','6','5','4','3','2','1','8','9','10','12']
378
+ assert_equal('DELETED', @rc.alist_delete('abc', '3')) # ['13','6','5','4','2','1','8','9','10','12']
379
+ assert_equal('DELETED', @rc.alist_delete_at('abc', 1)) # ['13','5','4','2','1','8','9','10','12']
380
+ assert_equal('CLEARED', @rc.alist_clear('abc'))
381
+ send_cmd('localhost_11211', 'writebehind_rotate roma')
387
382
 
388
383
  res = {
389
- 10=>'1',4=>'2',5=>'3',6=>'4',7=>'5',8=>'6',9=>'7',11=>'8',12=>'9',
390
- 13=>'10',14=>'11',15=>'12',16=>'13',2=>'3',3=>'6',
391
- 1=>["13", "5", "4", "2", "1", "8", "9", "10", "11", "12"]}
384
+ 10 => '1', 4 => '2', 5 => '3', 6 => '4', 7 => '5', 8 => '6', 9 => '7', 11 => '8', 12 => '9',
385
+ 13 => '10', 14 => '11', 15 => '12', 16 => '13', 2 => '3', 3 => '6',
386
+ 1 => %w(13 5 4 2 1 8 9 10 11 12) }
392
387
  wb0 = read_wb("#{wb_path}/0.wb")
393
388
  assert_equal(16, wb0.length)
394
- wb0.each do |last, cmd, key, val|
389
+ wb0.each do |_last, cmd, _key, val|
395
390
  begin
396
391
  val = Marshal.load(val)[0]
397
392
  rescue
@@ -403,21 +398,21 @@ class WriteBehindTest < Test::Unit::TestCase
403
398
 
404
399
  def test_wb2_map_commands
405
400
  h = {
406
- :map_set=>1,
407
- :map_delete=>2,
408
- :map_clear=>3
401
+ map_set: 1,
402
+ map_delete: 2,
403
+ map_clear: 3
409
404
  }
410
- send_cmd("localhost_11211", "wb_command_map #{h}")
411
- assert_equal('STORED', @rc.map_set('abc','mapkey1','value1'))
405
+ send_cmd('localhost_11211', "wb_command_map #{h}")
406
+ assert_equal('STORED', @rc.map_set('abc', 'mapkey1', 'value1'))
412
407
  assert_equal('DELETED', @rc.map_delete('abc', 'mapkey1'))
413
- assert_equal('STORED', @rc.map_set('abc','mapkey1','value1'))
414
- assert_equal('CLEARED', @rc.map_clear("abc"))
415
- send_cmd("localhost_11211", "writebehind_rotate roma")
408
+ assert_equal('STORED', @rc.map_set('abc', 'mapkey1', 'value1'))
409
+ assert_equal('CLEARED', @rc.map_clear('abc'))
410
+ send_cmd('localhost_11211', 'writebehind_rotate roma')
416
411
 
417
- res = {1=>{"mapkey1"=>"value1"},2=>{},3=>{}}
412
+ res = { 1 => { 'mapkey1' => 'value1' }, 2 => {}, 3 => {} }
418
413
  wb0 = read_wb("#{wb_path}/0.wb")
419
414
  assert_equal(4, wb0.length)
420
- wb0.each do |last, cmd, key, val|
415
+ wb0.each do |_last, cmd, _key, val|
421
416
  begin
422
417
  val = Marshal.load(val)
423
418
  rescue
@@ -429,36 +424,36 @@ class WriteBehindTest < Test::Unit::TestCase
429
424
 
430
425
  def test_wb2_map_commands2
431
426
  h = {
432
- :map_set=>1, :map_set__prev=>11,
433
- :map_delete=>2, :map_delete__prev=>12,
434
- :map_clear=>3, :map_clear__prev=>13
427
+ map_set: 1, map_set__prev: 11,
428
+ map_delete: 2, map_delete__prev: 12,
429
+ map_clear: 3, map_clear__prev: 13
435
430
  }
436
- send_cmd("localhost_11211", "wb_command_map #{h}")
437
- assert_equal('STORED', @rc.map_set('abc','mapkey1','value1'))
438
- assert_equal('STORED', @rc.map_set('abc','mapkey2','value2'))
431
+ send_cmd('localhost_11211', "wb_command_map #{h}")
432
+ assert_equal('STORED', @rc.map_set('abc', 'mapkey1', 'value1'))
433
+ assert_equal('STORED', @rc.map_set('abc', 'mapkey2', 'value2'))
439
434
  assert_equal('DELETED', @rc.map_delete('abc', 'mapkey1'))
440
- assert_equal('STORED', @rc.map_set('abc','mapkey1','value1'))
441
- assert_equal('CLEARED', @rc.map_clear("abc"))
442
- send_cmd("localhost_11211", "writebehind_rotate roma")
435
+ assert_equal('STORED', @rc.map_set('abc', 'mapkey1', 'value1'))
436
+ assert_equal('CLEARED', @rc.map_clear('abc'))
437
+ send_cmd('localhost_11211', 'writebehind_rotate roma')
443
438
 
444
439
  res = [
445
- [1, {"mapkey1"=>"value1"}],
446
- [11, {"mapkey1"=>"value1"}], [1, {"mapkey1"=>"value1", "mapkey2"=>"value2"}],
447
- [12, {"mapkey1"=>"value1", "mapkey2"=>"value2"}], [2, {"mapkey2"=>"value2"}],
448
- [11, {"mapkey2"=>"value2"}], [1, {"mapkey2"=>"value2", "mapkey1"=>"value1"}],
449
- [13, {"mapkey2"=>"value2", "mapkey1"=>"value1"}], [3, {}]
440
+ [1, { 'mapkey1' => 'value1' }],
441
+ [11, { 'mapkey1' => 'value1' }], [1, { 'mapkey1' => 'value1', 'mapkey2' => 'value2' }],
442
+ [12, { 'mapkey1' => 'value1', 'mapkey2' => 'value2' }], [2, { 'mapkey2' => 'value2' }],
443
+ [11, { 'mapkey2' => 'value2' }], [1, { 'mapkey2' => 'value2', 'mapkey1' => 'value1' }],
444
+ [13, { 'mapkey2' => 'value2', 'mapkey1' => 'value1' }], [3, {}]
450
445
 
451
446
  ]
452
447
  wb0 = read_wb("#{wb_path}/0.wb")
453
448
  assert_equal(res.length, wb0.length)
454
449
  cnt = 0
455
- wb0.each do |last, cmd, key, val|
450
+ wb0.each do |_last, cmd, _key, val|
456
451
  begin
457
452
  val = Marshal.load(val)
458
453
  rescue
459
454
  end
460
- #puts "#{cmd} #{key} #{val.inspect}"
461
- assert_equal(res[cnt][0], cmd)
455
+ # puts "#{cmd} #{key} #{val.inspect}"
456
+ assert_equal(res[cnt][0], cmd)
462
457
  assert_equal(res[cnt][1], val)
463
458
  cnt += 1
464
459
  end
@@ -477,10 +472,10 @@ class WriteBehindTest < Test::Unit::TestCase
477
472
  end
478
473
 
479
474
  def wb_hostname
480
- if File.exist?("wb/localhost_11211")
481
- "localhost_11211"
482
- elsif File.exist?("wb/localhost_11212")
483
- "localhost_11212"
475
+ if File.exist?('wb/localhost_11211')
476
+ 'localhost_11211'
477
+ elsif File.exist?('wb/localhost_11212')
478
+ 'localhost_11212'
484
479
  else
485
480
  nil
486
481
  end