ipc_transit 0.0.3 → 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.
- data/bin/transitd +7 -0
- data/bin/trlist +7 -0
- data/bin/trrecv +23 -6
- data/bin/trsend +9 -2
- data/bin/trserver +7 -0
- data/lib/ipc_transit.rb +46 -23
- data/lib/ipc_transit/test.rb +7 -6
- data/test/tc_transit_misc.rb +28 -0
- data/test/tc_transit_remote.rb +5 -5
- data/test/tc_transit_simple.rb +21 -21
- data/test/tc_transit_yaml.rb +11 -11
- data/test/tc_transit_zlib.rb +11 -11
- metadata +4 -2
data/bin/transitd
CHANGED
@@ -2,10 +2,17 @@
|
|
2
2
|
require 'rubygems'
|
3
3
|
require 'net/http'
|
4
4
|
require 'uri'
|
5
|
+
require 'optparse'
|
6
|
+
|
5
7
|
require 'ipc_transit'
|
6
8
|
|
7
9
|
$url = 'http://127.0.0.1:8726/transit_data'
|
8
10
|
|
11
|
+
OptionParser.new do |opts|
|
12
|
+
opts.on('-p[OPTIONAL]') do |p|
|
13
|
+
$ipc_transit_config_path = p
|
14
|
+
end
|
15
|
+
end.parse!
|
9
16
|
|
10
17
|
def one_message
|
11
18
|
message = IPCTransit.receive('qname' => 'transitd', 'raw' => 1)
|
data/bin/trlist
CHANGED
@@ -1,7 +1,14 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'rubygems'
|
3
|
+
require 'optparse'
|
4
|
+
|
3
5
|
require 'ipc_transit'
|
4
6
|
|
7
|
+
OptionParser.new do |opts|
|
8
|
+
opts.on('-p[OPTIONAL]') do |p|
|
9
|
+
$ipc_transit_config_path = p
|
10
|
+
end
|
11
|
+
end.parse!
|
5
12
|
|
6
13
|
IPCTransit.all_queues.each_pair do |qname, info|
|
7
14
|
puts "#{qname} = #{info['count']}"
|
data/bin/trrecv
CHANGED
@@ -1,16 +1,33 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'rubygems'
|
3
|
-
require '
|
3
|
+
require 'optparse'
|
4
4
|
require 'json'
|
5
5
|
|
6
|
-
|
7
|
-
nowait = ARGV[1]
|
6
|
+
require 'ipc_transit'
|
8
7
|
|
8
|
+
options = {}
|
9
9
|
|
10
|
-
|
11
|
-
|
10
|
+
OptionParser.new do |opts|
|
11
|
+
opts.banner = "Usage: trrecv [options] qname"
|
12
|
+
opts.on('-s[OPTIONAL]') do |s|
|
13
|
+
options['single'] = 1
|
14
|
+
end
|
15
|
+
opts.on('-n[OPTIONAL]') do |n|
|
16
|
+
options['nowait'] = 1
|
17
|
+
end
|
18
|
+
opts.on('-p[OPTIONAL]') do |p|
|
19
|
+
$ipc_transit_config_path = p
|
20
|
+
end
|
21
|
+
end.parse!
|
22
|
+
|
23
|
+
qname = ARGV[0]
|
12
24
|
|
13
|
-
|
25
|
+
if options['single'] == 1
|
26
|
+
ret = IPCTransit.receive('qname' => qname, 'nowait' => options['nowait'])
|
14
27
|
puts JSON.pretty_generate(ret)
|
28
|
+
else
|
29
|
+
while ret = IPCTransit.receive('qname' => qname, 'nowait' => options['nowait'])
|
30
|
+
puts JSON.pretty_generate(ret)
|
31
|
+
end
|
15
32
|
end
|
16
33
|
|
data/bin/trsend
CHANGED
@@ -1,8 +1,15 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'rubygems'
|
3
|
-
require 'ipc_transit'
|
4
3
|
require 'json'
|
4
|
+
require 'optparse'
|
5
|
+
|
6
|
+
require 'ipc_transit'
|
5
7
|
|
8
|
+
OptionParser.new do |opts|
|
9
|
+
opts.on('-p[OPTIONAL]') do |p|
|
10
|
+
$ipc_transit_config_path = p
|
11
|
+
end
|
12
|
+
end.parse!
|
6
13
|
|
7
14
|
qname = ARGV[0]
|
8
15
|
message = JSON.parse(ARGV[1])
|
@@ -11,6 +18,6 @@ dest = ARGV[2]
|
|
11
18
|
if dest.nil?
|
12
19
|
ret = IPCTransit.send('message' => message, 'qname' => qname)
|
13
20
|
else
|
14
|
-
ret = IPCTransit.send('message' => message, 'qname' => qname, '
|
21
|
+
ret = IPCTransit.send('message' => message, 'qname' => qname, 'destination' => dest)
|
15
22
|
end
|
16
23
|
puts ret
|
data/bin/trserver
CHANGED
@@ -1,8 +1,15 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'rubygems'
|
3
3
|
require 'webrick'
|
4
|
+
require 'optparse'
|
5
|
+
|
4
6
|
require 'ipc_transit'
|
5
7
|
|
8
|
+
OptionParser.new do |opts|
|
9
|
+
opts.on('-p[OPTIONAL]') do |p|
|
10
|
+
$ipc_transit_config_path = p
|
11
|
+
end
|
12
|
+
end.parse!
|
6
13
|
|
7
14
|
class PersistAnswers < WEBrick::HTTPServlet::AbstractServlet
|
8
15
|
def do_POST(request, response)
|
data/lib/ipc_transit.rb
CHANGED
@@ -14,7 +14,16 @@ require 'ipc_transit/serialize'
|
|
14
14
|
class IPCTransit
|
15
15
|
@@queues = {}
|
16
16
|
|
17
|
-
|
17
|
+
if $ipc_transit_config_path.nil?
|
18
|
+
$ipc_transit_config_path = '/tmp/ipc_transit'
|
19
|
+
end
|
20
|
+
|
21
|
+
@@wire_header_arg_translate = {
|
22
|
+
'destination' => 'd',
|
23
|
+
'compression' => 'c',
|
24
|
+
'encoding' => 'e'
|
25
|
+
}
|
26
|
+
@@wire_header_args = {
|
18
27
|
'e' => { #encoding
|
19
28
|
'json' => 1,
|
20
29
|
'yaml' => 1,
|
@@ -28,7 +37,7 @@ class IPCTransit
|
|
28
37
|
't' => 1, #hop TTL
|
29
38
|
'q' => 1, #destination qname
|
30
39
|
}
|
31
|
-
@@
|
40
|
+
@@std_args = {
|
32
41
|
'message' => 1,
|
33
42
|
'qname' => 1,
|
34
43
|
'nowait' => 1,
|
@@ -42,12 +51,15 @@ class IPCTransit
|
|
42
51
|
# message - hash reference
|
43
52
|
# qname - name of queue to send to
|
44
53
|
# nowait - do not block if the queue is full (optional)
|
54
|
+
# encoding - currently JSON and YAML are implemented (optional, defaults to JSON)
|
55
|
+
# compression - currently none and zlib are implemented (optional, defaults to none)
|
56
|
+
# destination - IP or name of remote destination (optional)
|
45
57
|
|
46
58
|
def self.send(args)
|
47
59
|
ret = nil
|
48
60
|
flags = IPC_NOWAIT
|
49
61
|
begin
|
50
|
-
if args['
|
62
|
+
if args['destination']
|
51
63
|
args['q'] = args['qname']
|
52
64
|
args['qname'] = 'transitd'
|
53
65
|
if not args['t']
|
@@ -66,6 +78,22 @@ class IPCTransit
|
|
66
78
|
return ret
|
67
79
|
end
|
68
80
|
|
81
|
+
##
|
82
|
+
# Remove a queue
|
83
|
+
#
|
84
|
+
# Arguments:
|
85
|
+
# qname - name of queue to remove
|
86
|
+
|
87
|
+
def self.remove(args)
|
88
|
+
qname = args['qname']
|
89
|
+
key = self.get_queue_id(args)
|
90
|
+
mq = MessageQueue.new(key, 0)
|
91
|
+
mq.ipc_rmid
|
92
|
+
File.delete("#{$ipc_transit_config_path}/#{qname}")
|
93
|
+
@@queues.delete(qname)
|
94
|
+
end
|
95
|
+
|
96
|
+
|
69
97
|
##
|
70
98
|
# Receive a message from a queue
|
71
99
|
#
|
@@ -165,15 +193,6 @@ class IPCTransit
|
|
165
193
|
|
166
194
|
private
|
167
195
|
|
168
|
-
def self.get_next_id
|
169
|
-
new_id = 1
|
170
|
-
@@queues.each_pair do |k,v|
|
171
|
-
if v['qid'] > new_id
|
172
|
-
new_id = v['qid']
|
173
|
-
end
|
174
|
-
end
|
175
|
-
return new_id + 1
|
176
|
-
end
|
177
196
|
def self.get_queue_id(args)
|
178
197
|
qname = args['qname']
|
179
198
|
self.mk_queue_dir()
|
@@ -187,8 +206,8 @@ class IPCTransit
|
|
187
206
|
begin
|
188
207
|
self.lock_dir()
|
189
208
|
File.umask(0000)
|
190
|
-
file = File.open("
|
191
|
-
new_qid =
|
209
|
+
file = File.open("#{$ipc_transit_config_path}/#{qname}", 'w', 0666)
|
210
|
+
new_qid = ftok("#{$ipc_transit_config_path}/#{qname}", 1)
|
192
211
|
file.puts("qid=#{new_qid}")
|
193
212
|
file.puts("qname=#{qname}")
|
194
213
|
file.close
|
@@ -203,15 +222,15 @@ class IPCTransit
|
|
203
222
|
|
204
223
|
def self.lock_dir()
|
205
224
|
File.umask(0000)
|
206
|
-
File.open(
|
225
|
+
File.open("#{$ipc_transit_config_path}/transit.lock", File::WRONLY|File::EXCL|File::CREAT, 0666)
|
207
226
|
end
|
208
227
|
def self.unlock_dir()
|
209
|
-
File.delete(
|
228
|
+
File.delete("#{$ipc_transit_config_path}/transit.lock")
|
210
229
|
end
|
211
230
|
|
212
231
|
def self.gather_queue_info()
|
213
232
|
self.mk_queue_dir()
|
214
|
-
Dir.glob(
|
233
|
+
Dir.glob("#{$ipc_transit_config_path}/*").each do |filename|
|
215
234
|
info = {}
|
216
235
|
file = File.new(filename, 'r', 0666)
|
217
236
|
while (line = file.gets)
|
@@ -232,7 +251,7 @@ class IPCTransit
|
|
232
251
|
|
233
252
|
def self.mk_queue_dir()
|
234
253
|
begin
|
235
|
-
Dir.mkdir(
|
254
|
+
Dir.mkdir($ipc_transit_config_path, 0777)
|
236
255
|
rescue
|
237
256
|
end
|
238
257
|
end
|
@@ -242,9 +261,13 @@ class IPCTransit
|
|
242
261
|
#it takes message and wire_meta_data
|
243
262
|
def self.pack_message(args)
|
244
263
|
args['message']['.ipc_transit_meta'] = {}
|
264
|
+
@@wire_header_arg_translate.keys.each do |k|
|
265
|
+
next unless args[k]
|
266
|
+
args[@@wire_header_arg_translate[k]] = args[k]
|
267
|
+
end
|
245
268
|
args.keys.each do |k|
|
246
|
-
next if @@
|
247
|
-
next if @@
|
269
|
+
next if @@wire_header_args[k]
|
270
|
+
next if @@std_args[k]
|
248
271
|
args['message']['.ipc_transit_meta'][k] = args[k]
|
249
272
|
end
|
250
273
|
args['serialized_message'] = transit_freeze(args)
|
@@ -257,11 +280,11 @@ class IPCTransit
|
|
257
280
|
def self.serialize_wire_meta(args)
|
258
281
|
s = ''
|
259
282
|
args.keys.each do |k|
|
260
|
-
if @@
|
283
|
+
if @@wire_header_args[k]
|
261
284
|
#make sure a valid value is passed in
|
262
|
-
if @@
|
285
|
+
if @@wire_header_args[k] == 1
|
263
286
|
s = "#{s}#{k}=#{args[k]},"
|
264
|
-
elsif @@
|
287
|
+
elsif @@wire_header_args[k][args[k]]
|
265
288
|
s = "#{s}#{k}=#{args[k]},"
|
266
289
|
else
|
267
290
|
raise "passed wire argument #{k} had value #{args[k]} not of allowed type"
|
data/lib/ipc_transit/test.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
$ipc_transit_config_path = '/tmp/test_ipc_transit'
|
2
|
+
$ipc_transit_test_qname = 'tr_dist_test_qname'
|
3
|
+
|
4
|
+
def clear_test_queue
|
3
5
|
begin
|
4
|
-
|
5
|
-
end
|
6
|
+
IPCTransit.remove('qname' => $ipc_transit_test_qname)
|
6
7
|
rescue Exception => msg
|
7
8
|
end
|
8
9
|
end
|
@@ -10,12 +11,12 @@ end
|
|
10
11
|
def run_daemon(prog)
|
11
12
|
pid = fork
|
12
13
|
if pid.nil? #child
|
13
|
-
exec "bin/#{prog}"
|
14
|
+
exec "ruby -Ilib bin/#{prog} -p/tmp/test_ipc_transit"
|
14
15
|
exit
|
15
16
|
end
|
16
17
|
return pid
|
17
18
|
end
|
19
|
+
|
18
20
|
def kill_daemon(pid)
|
19
21
|
Process.kill(9, pid)
|
20
22
|
end
|
21
|
-
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'ipc_transit'
|
3
|
+
require 'ipc_transit/test'
|
4
|
+
|
5
|
+
class TestIPCTransit < Test::Unit::TestCase
|
6
|
+
def test_remove_queue
|
7
|
+
clear_test_queue()
|
8
|
+
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' => $ipc_transit_test_qname)
|
9
|
+
all_info = IPCTransit.all_queue_info()
|
10
|
+
assert(all_info, 'We received some queue info')
|
11
|
+
|
12
|
+
assert(all_info[$ipc_transit_test_qname]['qname'] == $ipc_transit_test_qname, 'test queue is in all_queue_info')
|
13
|
+
x = all_info['tr_dist_some_random_queue']
|
14
|
+
assert(x.nil?, 'another, un-used qname is NOT in all info')
|
15
|
+
qid = all_info[$ipc_transit_test_qname]['qid']
|
16
|
+
assert(qid, 'queue_id for tr_dist_test_qname exists')
|
17
|
+
|
18
|
+
ret = IPCTransit.receive('qname' => $ipc_transit_test_qname, 'nowait' => 1)
|
19
|
+
assert(ret, 'IPCTransit.receive returned true')
|
20
|
+
assert_equal(ret['foo'], 'bar')
|
21
|
+
|
22
|
+
IPCTransit.remove('qname' => $ipc_transit_test_qname)
|
23
|
+
all_info = IPCTransit.all_queue_info()
|
24
|
+
x = all_info[$ipc_transit_test_qname]
|
25
|
+
assert(x.nil?, 'tr_dist_test_qname successfully removed')
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
data/test/tc_transit_remote.rb
CHANGED
@@ -11,22 +11,22 @@ class TestIPCTransit < Test::Unit::TestCase
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def test_basic_remote
|
14
|
-
|
15
|
-
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' =>
|
14
|
+
clear_test_queue()
|
15
|
+
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' => $ipc_transit_test_qname, 'destination' => '127.0.0.1')
|
16
16
|
ret = IPCTransit.receive('qname' => 'transitd', 'nowait' => 1)
|
17
17
|
assert(ret, 'IPCTransit.receive returned true')
|
18
18
|
assert_equal(ret['foo'], 'bar')
|
19
19
|
end
|
20
20
|
|
21
21
|
def test_full_remote
|
22
|
-
|
22
|
+
clear_test_queue()
|
23
23
|
begin
|
24
24
|
@trserver_pid = run_daemon('trserver')
|
25
25
|
@transitd_pid = run_daemon('transitd')
|
26
26
|
sleep 2
|
27
|
-
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' =>
|
27
|
+
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' => $ipc_transit_test_qname, 'destination' => '127.0.0.1')
|
28
28
|
sleep 2
|
29
|
-
ret = IPCTransit.receive('qname' =>
|
29
|
+
ret = IPCTransit.receive('qname' => $ipc_transit_test_qname, 'nowait' => 1)
|
30
30
|
rescue Exception => msg
|
31
31
|
puts "Exception: #{msg}"
|
32
32
|
end
|
data/test/tc_transit_simple.rb
CHANGED
@@ -4,33 +4,33 @@ require 'ipc_transit/test'
|
|
4
4
|
|
5
5
|
class TestIPCTransit < Test::Unit::TestCase
|
6
6
|
def test_typical
|
7
|
-
|
8
|
-
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' =>
|
9
|
-
ret = IPCTransit.receive('qname' =>
|
7
|
+
clear_test_queue()
|
8
|
+
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' => $ipc_transit_test_qname)
|
9
|
+
ret = IPCTransit.receive('qname' => $ipc_transit_test_qname, 'nowait' => 1)
|
10
10
|
assert(ret, 'IPCTransit.receive returned true')
|
11
11
|
assert_equal(ret['foo'], 'bar')
|
12
12
|
end
|
13
13
|
|
14
14
|
def test_wire_raw
|
15
|
-
|
16
|
-
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' =>
|
17
|
-
ret = IPCTransit.receive('qname' =>
|
15
|
+
clear_test_queue()
|
16
|
+
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' => $ipc_transit_test_qname, 'encoding' => 'json', 'compression' => 'none')
|
17
|
+
ret = IPCTransit.receive('qname' => $ipc_transit_test_qname, 'raw' => 1, 'nowait' => 1)
|
18
18
|
assert(ret, 'IPCTransit.receive returned true')
|
19
19
|
assert_equal(ret['message']['foo'], 'bar')
|
20
20
|
assert_equal(ret['wire_headers']['e'], 'json')
|
21
21
|
assert_equal(ret['wire_headers']['c'], 'none')
|
22
22
|
end
|
23
23
|
def test_message_meta
|
24
|
-
|
25
|
-
IPCTransit.send( 'qname' =>
|
24
|
+
clear_test_queue()
|
25
|
+
IPCTransit.send( 'qname' => $ipc_transit_test_qname,
|
26
26
|
'message' => { 'foo' => 'bar' },
|
27
|
-
'
|
28
|
-
'
|
27
|
+
'encoding' => 'json',
|
28
|
+
'compression' => 'none',
|
29
29
|
'something' => 'else',
|
30
30
|
'x' => { 'this' => 'that' },
|
31
31
|
'once' => ['more',2]
|
32
32
|
)
|
33
|
-
ret = IPCTransit.receive('qname' =>
|
33
|
+
ret = IPCTransit.receive('qname' => $ipc_transit_test_qname, 'nowait' => 1)
|
34
34
|
assert(ret, 'IPCTransit.receive returned true')
|
35
35
|
assert_equal(ret['foo'], 'bar')
|
36
36
|
assert_equal(ret['.ipc_transit_meta']['something'], 'else')
|
@@ -40,27 +40,27 @@ class TestIPCTransit < Test::Unit::TestCase
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def test_get_queue_info
|
43
|
-
|
43
|
+
clear_test_queue()
|
44
44
|
all_info = IPCTransit.all_queue_info()
|
45
|
-
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' =>
|
45
|
+
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' => $ipc_transit_test_qname)
|
46
46
|
assert(all_info, 'We received some queue info')
|
47
47
|
|
48
|
-
assert(all_info[
|
49
|
-
qid = all_info[
|
50
|
-
assert(qid, 'queue_id for
|
48
|
+
assert(all_info[$ipc_transit_test_qname]['qname'] == $ipc_transit_test_qname, 'test queue is in all_queue_info')
|
49
|
+
qid = all_info[$ipc_transit_test_qname]['qid']
|
50
|
+
assert(qid, 'queue_id for tr_dist_test_qname exists')
|
51
51
|
|
52
|
-
ret = IPCTransit.receive('qname' =>
|
52
|
+
ret = IPCTransit.receive('qname' => $ipc_transit_test_qname, 'nowait' => 1)
|
53
53
|
assert(ret, 'IPCTransit.receive returned true')
|
54
54
|
assert_equal(ret['foo'], 'bar')
|
55
55
|
end
|
56
56
|
|
57
57
|
def test_all_queues
|
58
|
-
|
59
|
-
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' =>
|
58
|
+
clear_test_queue()
|
59
|
+
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' => $ipc_transit_test_qname)
|
60
60
|
ret = IPCTransit.all_queues()
|
61
61
|
assert(ret, 'IPCTransit.all_queues returned true')
|
62
|
-
assert(ret[
|
63
|
-
ret = IPCTransit.receive('qname' =>
|
62
|
+
assert(ret[$ipc_transit_test_qname]['count'] == 1, 'exactly one message in tr_dist_test_qname')
|
63
|
+
ret = IPCTransit.receive('qname' => $ipc_transit_test_qname, 'nowait' => 1)
|
64
64
|
assert(ret, 'IPCTransit.receive returned true')
|
65
65
|
assert_equal(ret['foo'], 'bar')
|
66
66
|
end
|
data/test/tc_transit_yaml.rb
CHANGED
@@ -4,17 +4,17 @@ require 'ipc_transit/test'
|
|
4
4
|
|
5
5
|
class TestIPCTransit < Test::Unit::TestCase
|
6
6
|
def test_yaml_typical
|
7
|
-
|
8
|
-
IPCTransit.send('message' => { 'foo' => 'bar' }, '
|
9
|
-
ret = IPCTransit.receive('qname' =>
|
7
|
+
clear_test_queue()
|
8
|
+
IPCTransit.send('message' => { 'foo' => 'bar' }, 'encoding' => 'yaml', 'qname' => $ipc_transit_test_qname)
|
9
|
+
ret = IPCTransit.receive('qname' => $ipc_transit_test_qname, 'nowait' => 1)
|
10
10
|
assert(ret, 'IPCTransit.receive returned true')
|
11
11
|
assert_equal(ret['foo'], 'bar')
|
12
12
|
end
|
13
13
|
|
14
14
|
def test_yaml_wire_raw
|
15
|
-
|
16
|
-
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' =>
|
17
|
-
ret = IPCTransit.receive('qname' =>
|
15
|
+
clear_test_queue()
|
16
|
+
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' => $ipc_transit_test_qname, 'encoding' => 'yaml', 'compression' => 'none')
|
17
|
+
ret = IPCTransit.receive('qname' => $ipc_transit_test_qname, 'raw' => 1, 'nowait' => 1)
|
18
18
|
assert(ret, 'IPCTransit.receive returned true')
|
19
19
|
assert(ret['serialized_message'] =~ /^---/, 'data verified as YAML')
|
20
20
|
assert_equal(ret['message']['foo'], 'bar')
|
@@ -22,16 +22,16 @@ class TestIPCTransit < Test::Unit::TestCase
|
|
22
22
|
assert_equal(ret['wire_headers']['c'], 'none')
|
23
23
|
end
|
24
24
|
def test_yaml_message_meta
|
25
|
-
|
26
|
-
IPCTransit.send( 'qname' =>
|
25
|
+
clear_test_queue()
|
26
|
+
IPCTransit.send( 'qname' => $ipc_transit_test_qname,
|
27
27
|
'message' => { 'foo' => 'bar' },
|
28
|
-
'
|
29
|
-
'
|
28
|
+
'encoding' => 'json',
|
29
|
+
'compression' => 'none',
|
30
30
|
'something' => 'else',
|
31
31
|
'x' => { 'this' => 'that' },
|
32
32
|
'once' => ['more',2]
|
33
33
|
)
|
34
|
-
ret = IPCTransit.receive('qname' =>
|
34
|
+
ret = IPCTransit.receive('qname' => $ipc_transit_test_qname, 'encoding' => 'yaml', 'nowait' => 1)
|
35
35
|
assert(ret, 'IPCTransit.receive returned true')
|
36
36
|
assert_equal(ret['foo'], 'bar')
|
37
37
|
assert_equal(ret['.ipc_transit_meta']['something'], 'else')
|
data/test/tc_transit_zlib.rb
CHANGED
@@ -4,32 +4,32 @@ require 'ipc_transit/test'
|
|
4
4
|
|
5
5
|
class TestIPCTransit < Test::Unit::TestCase
|
6
6
|
def test_zlib_typical
|
7
|
-
|
8
|
-
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' =>
|
9
|
-
ret = IPCTransit.receive('qname' =>
|
7
|
+
clear_test_queue()
|
8
|
+
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' => $ipc_transit_test_qname, 'compression' => 'zlib', 'encoding' => 'json')
|
9
|
+
ret = IPCTransit.receive('qname' => $ipc_transit_test_qname, 'nowait' => 1)
|
10
10
|
assert(ret, 'IPCTransit.receive returned true')
|
11
11
|
assert_equal(ret['foo'], 'bar')
|
12
12
|
end
|
13
13
|
|
14
14
|
def test_zlib_wire_raw
|
15
|
-
|
16
|
-
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' =>
|
17
|
-
ret = IPCTransit.receive('qname' =>
|
15
|
+
clear_test_queue()
|
16
|
+
IPCTransit.send('message' => { 'foo' => 'bar' }, 'qname' => $ipc_transit_test_qname, 'compression' => 'zlib')
|
17
|
+
ret = IPCTransit.receive('qname' => $ipc_transit_test_qname, 'raw' => 1, 'nowait' => 1)
|
18
18
|
assert(ret, 'IPCTransit.receive returned true')
|
19
19
|
assert_equal(ret['message']['foo'], 'bar')
|
20
20
|
assert_equal(ret['wire_headers']['c'], 'zlib')
|
21
21
|
end
|
22
22
|
def test_zlib_message_meta
|
23
|
-
|
24
|
-
IPCTransit.send( 'qname' =>
|
23
|
+
clear_test_queue()
|
24
|
+
IPCTransit.send( 'qname' => $ipc_transit_test_qname,
|
25
25
|
'message' => { 'foo' => 'bar' },
|
26
|
-
'
|
27
|
-
'
|
26
|
+
'encoding' => 'json',
|
27
|
+
'compression' => 'zlib',
|
28
28
|
'something' => 'else',
|
29
29
|
'x' => { 'this' => 'that' },
|
30
30
|
'once' => ['more',2]
|
31
31
|
)
|
32
|
-
ret = IPCTransit.receive('qname' =>
|
32
|
+
ret = IPCTransit.receive('qname' => $ipc_transit_test_qname, 'nowait' => 1)
|
33
33
|
assert(ret, 'IPCTransit.receive returned true')
|
34
34
|
assert_equal(ret['foo'], 'bar')
|
35
35
|
assert_equal(ret['.ipc_transit_meta']['something'], 'else')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ipc_transit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.1'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-11-
|
12
|
+
date: 2012-11-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -100,6 +100,7 @@ files:
|
|
100
100
|
- test/tc_transit_remote.rb
|
101
101
|
- test/tc_transit_yaml.rb
|
102
102
|
- test/tc_transit_zlib.rb
|
103
|
+
- test/tc_transit_misc.rb
|
103
104
|
homepage: http://rubygems.org/gems/ipc_transit
|
104
105
|
licenses: []
|
105
106
|
post_install_message:
|
@@ -129,3 +130,4 @@ test_files:
|
|
129
130
|
- test/tc_transit_remote.rb
|
130
131
|
- test/tc_transit_yaml.rb
|
131
132
|
- test/tc_transit_zlib.rb
|
133
|
+
- test/tc_transit_misc.rb
|