elrpc 0.0.3 → 0.0.4
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.
- checksums.yaml +4 -4
- data/lib/elrpc/version.rb +1 -1
- data/lib/elrpc.rb +27 -24
- data/test/test-epc.rb +3 -3
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48893e5e2a5847c1d753cd1c326a6077c194d9d4
|
4
|
+
data.tar.gz: 3322393f7a5c7c6e1dacc395fba4a3a22e906d90
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 88ad979dbed7ba14dd573db134784f7bfb76996187bebd5a6e94077f2e4575058baa45a36de6c26db01c2b946beebcd7d9261acfb18c5ba5baa6ce0613c9dd50
|
7
|
+
data.tar.gz: b59eae7fd5c180d6e41a07b3116c3456a4f8936c830e439594070e49819558e693ab7566e7844b15ceca1b84618d6227916482fadc829d2d814d2384dbb64c3c
|
data/lib/elrpc/version.rb
CHANGED
data/lib/elrpc.rb
CHANGED
@@ -5,7 +5,7 @@ require "socket"
|
|
5
5
|
require "thread"
|
6
6
|
require "monitor"
|
7
7
|
require "logger"
|
8
|
-
require "
|
8
|
+
require "timeout"
|
9
9
|
|
10
10
|
require "elparser"
|
11
11
|
|
@@ -55,8 +55,8 @@ module Elrpc
|
|
55
55
|
return client
|
56
56
|
end
|
57
57
|
|
58
|
-
def self.start_process(cmd)
|
59
|
-
svr = Service.new(cmd)
|
58
|
+
def self.start_process(cmd, port = nil)
|
59
|
+
svr = Service.new(cmd, port)
|
60
60
|
svr.start
|
61
61
|
return svr
|
62
62
|
end
|
@@ -67,36 +67,46 @@ module Elrpc
|
|
67
67
|
attr :output
|
68
68
|
|
69
69
|
# cmd = ["ruby", "_call.rb"]
|
70
|
-
def initialize(cmd)
|
70
|
+
def initialize(cmd, port)
|
71
71
|
@cmd = cmd
|
72
|
+
@port = port
|
72
73
|
end
|
73
74
|
|
74
75
|
def _start_logger
|
75
76
|
return Thread.start do
|
76
|
-
stdout = @io3[1]
|
77
|
-
stderr = @io3[2]
|
78
77
|
loop do
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
@logger.puts(line) if @logger
|
83
|
-
end
|
84
|
-
end
|
85
|
-
break if stdout.eof? && stderr.eof?
|
78
|
+
ret = @io.readline
|
79
|
+
break if ret.nil?
|
80
|
+
@logger.puts(ret) if @logger
|
86
81
|
end
|
87
82
|
end
|
88
83
|
end
|
89
84
|
|
90
85
|
def start
|
91
|
-
@
|
92
|
-
|
93
|
-
|
86
|
+
@io = IO.popen(@cmd)
|
87
|
+
if port.nil?
|
88
|
+
@port = @io.readline.to_i
|
89
|
+
end
|
94
90
|
@output = nil
|
95
91
|
@thread = _start_logger
|
92
|
+
# wait for port
|
93
|
+
timeout(4) do
|
94
|
+
loop do
|
95
|
+
begin
|
96
|
+
socket = TCPSocket.open("127.0.0.1", @port)
|
97
|
+
socket.close
|
98
|
+
#puts("Peer port is OK.")
|
99
|
+
break
|
100
|
+
rescue => e
|
101
|
+
#puts("Peer port is not opened. Try next time...")
|
102
|
+
sleep(0.2)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
96
106
|
@client = Elrpc.start_client(@port)
|
97
107
|
return self
|
98
108
|
end
|
99
|
-
|
109
|
+
|
100
110
|
def register_method(method)
|
101
111
|
@client.register_method(method)
|
102
112
|
end
|
@@ -123,13 +133,6 @@ module Elrpc
|
|
123
133
|
|
124
134
|
def stop
|
125
135
|
@client.stop
|
126
|
-
@io3[1].close
|
127
|
-
@io3[2].close
|
128
|
-
end
|
129
|
-
|
130
|
-
def stop_force
|
131
|
-
stop
|
132
|
-
@io3[3].kill
|
133
136
|
end
|
134
137
|
|
135
138
|
end
|
data/test/test-epc.rb
CHANGED
@@ -32,15 +32,15 @@ class TestEPC < Test::Unit::TestCase
|
|
32
32
|
end
|
33
33
|
|
34
34
|
test "Start server process" do
|
35
|
-
sleep(1)
|
36
35
|
sv = nil
|
37
36
|
begin
|
38
|
-
timeout(
|
39
|
-
sv = Elrpc.start_process(["ruby",base("_echo.rb")])
|
37
|
+
timeout(5) do
|
38
|
+
sv = Elrpc.start_process(["ruby",base("_echo.rb")], 8888)
|
40
39
|
sv.stop
|
41
40
|
assert_true(true)
|
42
41
|
end
|
43
42
|
rescue => e
|
43
|
+
puts e,e.backtrace
|
44
44
|
assert_true(false)
|
45
45
|
sv.stop_force if sv
|
46
46
|
end
|