super-test 1.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGE.txt +9 -0
- data/README.txt +13 -0
- data/bin/idb +19 -0
- data/bin/ii +113 -0
- data/bin/istart_mock +36 -0
- data/bin/istop_mock +16 -0
- data/bin/kk +181 -0
- data/bin/rubyatp +42 -0
- data/bin/start_mock +36 -0
- data/bin/stop_mock +16 -0
- data/bin/xgo +45 -0
- data/conf/conf.rb +11 -0
- data/conf/db03.yml +31 -0
- data/conf/db13.yml +37 -0
- data/conf/db19.yml +33 -0
- data/conf/online.yml +32 -0
- data/conf/super_test.yml +40 -0
- data/conf/system.yml +26 -0
- data/conf/sz00.yml +31 -0
- data/conf/sz06.yml +34 -0
- data/conf/wise00.yml +11 -0
- data/data/case.house +0 -0
- data/data/char.house +0 -0
- data/data/images/Bluehills.jpg +0 -0
- data/data/images/Sunset.jpg +0 -0
- data/data/images/Waterlilies.jpg +0 -0
- data/data/images/Winter.jpg +0 -0
- data/data/query.house +18595 -0
- data/data/user.house +8 -0
- data/lib/action/module/check_action.rb +58 -0
- data/lib/action/module/cnnt_action.rb +161 -0
- data/lib/action/module/datacenter_action.rb +48 -0
- data/lib/action/module/http_pack_helper.rb +163 -0
- data/lib/action/module/httpserver_action.rb +297 -0
- data/lib/action/module/inc.rb +21 -0
- data/lib/action/module/mcpack_action.rb +57 -0
- data/lib/action/module/sql_action.rb +84 -0
- data/lib/action/module/ssh_action.rb +37 -0
- data/lib/action/system/user_action.rb +180 -0
- data/lib/common/appium_helper.rb +217 -0
- data/lib/common/atp_helper.rb +74 -0
- data/lib/common/atp_report.rb +344 -0
- data/lib/common/data_house.rb +405 -0
- data/lib/common/data_model.rb +87 -0
- data/lib/common/http/assert_helper.rb +343 -0
- data/lib/common/http/fix_hpricot.rb +118 -0
- data/lib/common/http/html_helper.rb +362 -0
- data/lib/common/http/http_helper.rb +469 -0
- data/lib/common/http/multipart.rb +81 -0
- data/lib/common/isandbox_helper.rb +195 -0
- data/lib/common/json_helper.rb +43 -0
- data/lib/common/mock_helper.rb +168 -0
- data/lib/common/mtop_helper.rb +141 -0
- data/lib/common/myconf_helper.rb +49 -0
- data/lib/common/mylog_helper.rb +77 -0
- data/lib/common/pairwise.rb +121 -0
- data/lib/common/query_house.rb +89 -0
- data/lib/common/report_helper.rb +97 -0
- data/lib/common/robot_helper.rb +85 -0
- data/lib/common/socket/check.rb +325 -0
- data/lib/common/socket/conf_modifier.rb +149 -0
- data/lib/common/socket/context.rb +55 -0
- data/lib/common/socket/data.rb +392 -0
- data/lib/common/socket/data_helper.rb +41 -0
- data/lib/common/socket/env.rb +317 -0
- data/lib/common/socket/inc.rb +24 -0
- data/lib/common/socket/log.rb +213 -0
- data/lib/common/socket/log4s.rb +58 -0
- data/lib/common/socket/log_helper.rb +332 -0
- data/lib/common/socket/my_sql.rb +77 -0
- data/lib/common/socket/net.rb +74 -0
- data/lib/common/socket/network.rb +115 -0
- data/lib/common/socket/rlib/conf_modifier.rb +130 -0
- data/lib/common/socket/rlib/data_helper.rb +33 -0
- data/lib/common/socket/rlib/log_helper.rb +303 -0
- data/lib/common/socket/rlib/process_helper.rb +91 -0
- data/lib/common/socket/stub.rb +276 -0
- data/lib/common/socket/util.rb +266 -0
- data/lib/patterns/inc.rb +10 -0
- data/lib/patterns/mc_base_pattern.rb +474 -0
- data/lib/patterns/some_pattern.rb +145 -0
- data/lib/super_test.rb +114 -0
- data/log/super_test.log +0 -0
- data/log/super_test.log.wf +0 -0
- data/test/cover_me.rb +6 -0
- data/tool/jenny +0 -0
- data/tool/mcsend/mcsend2 +0 -0
- data/tool/mcsend/mcsend2_shead +0 -0
- data/tool/mcserver/conf/mcserver.conf +77 -0
- data/tool/mcserver/conf/mcserverauthip +17 -0
- data/tool/mcserver/mcserver +0 -0
- data/tool/mcserver/mcserver_trans +0 -0
- data/tool/mysql +0 -0
- data/tool/net/mcsend/mcsend +0 -0
- data/tool/net/mcsend/mcsend_trans +0 -0
- data/tool/net/mcsend/nshead.data +7 -0
- data/tool/net/mcsend/res_nshead.data +7 -0
- data/tool/net/my_client/my_client +0 -0
- data/tool/net/tsclient/client.tcl +205 -0
- data/tool/others/kk +190 -0
- data/tool/others/rubyatp +42 -0
- data/tool/others/supertest_install.sh +34 -0
- data/tool/trip/idb +0 -0
- data/tool/ts-agent/nshead.bft +12 -0
- data/tool/ts-agent/server.conf +10 -0
- data/tool/ts-agent/server.tcl +376 -0
- metadata +275 -0
data/lib/patterns/inc.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
$LOAD_PATH << File.join(File.dirname(__FILE__), '../../conf/')
|
2
|
+
$LOAD_PATH << File.join(File.dirname(__FILE__), '.')
|
3
|
+
#!/usr/bin/env ruby
|
4
|
+
#coding: utf-8
|
5
|
+
|
6
|
+
require 'some_pattern'
|
7
|
+
require 'mc_base_pattern'
|
8
|
+
|
9
|
+
include SomePatternHelper
|
10
|
+
include MCBasePatternHelper
|
@@ -0,0 +1,474 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# coding: utf-8
|
3
|
+
#============================================================
|
4
|
+
# mc base pattern
|
5
|
+
# Author:: liqiang01
|
6
|
+
# Data:: 2009-8-28
|
7
|
+
#============================================================
|
8
|
+
module MCBasePatternHelper
|
9
|
+
include Env
|
10
|
+
include Network
|
11
|
+
include Check
|
12
|
+
include Stub
|
13
|
+
|
14
|
+
#===============================================
|
15
|
+
# send
|
16
|
+
#===============================================
|
17
|
+
|
18
|
+
# ===功能
|
19
|
+
# send_mcpack
|
20
|
+
# ===参数
|
21
|
+
# - ip target ip
|
22
|
+
# - port target port
|
23
|
+
# - nshead_hash nshead hash, nil to use default value
|
24
|
+
# - module_name the testing module name
|
25
|
+
# - packno sending mcpack file number
|
26
|
+
# - postfix=nil the postfix of the data
|
27
|
+
# - delay=0 sending interval(s)
|
28
|
+
# ===example
|
29
|
+
# mc_send "127.0.0.1", nil, 1
|
30
|
+
def mc_send ip, port, nshead_hash, packno, postfix=nil, delay=0
|
31
|
+
$log.debug "sending mcpack #{packno}..."
|
32
|
+
puts "\n##########sending mcpack #{packno}...##########"
|
33
|
+
|
34
|
+
#case_path = "#{CASE_ROOT}#{$globals[:MODULE_NAME]}/#{$globals[:CASE_NAME]}/"
|
35
|
+
case_path = "#{$CASE_ROOT}/"
|
36
|
+
recv_path = ""
|
37
|
+
if postfix == nil
|
38
|
+
recv_path = "#{case_path}tmp/#{packno}.recv"
|
39
|
+
else
|
40
|
+
recv_path = "#{case_path}tmp/#{packno}_#{postfix}.recv"
|
41
|
+
end
|
42
|
+
nshead_send(ip, port, nshead_hash, "#{case_path}data/#{packno}.send", recv_path, delay)
|
43
|
+
|
44
|
+
#set :SEND,:RECV to $globals
|
45
|
+
Context.set :SEND, "#{case_path}data/#{packno}.send"
|
46
|
+
Context.set :RECV, "#{case_path}tmp/#{packno}.recv"
|
47
|
+
|
48
|
+
$log.debug "send end..."
|
49
|
+
|
50
|
+
#copy res_nshead.data to module case's tmp dir
|
51
|
+
if File.exist? "#{MCSEND_PATH}res_nshead.data"
|
52
|
+
`cp #{MCSEND_PATH}res_nshead.data #{case_path}tmp/`
|
53
|
+
end
|
54
|
+
|
55
|
+
#set :RES_HEAD to $globalsdd
|
56
|
+
Context.set :RES_HEAD, "#{case_path}tmp/res_nshead.data"
|
57
|
+
end
|
58
|
+
|
59
|
+
# ===功能
|
60
|
+
# send_mcpack 为通用transfer定制
|
61
|
+
# ===参数
|
62
|
+
# - ip target ip
|
63
|
+
# - port target port
|
64
|
+
# - nshead_hash nshead hash, nil to use default value
|
65
|
+
# - module_name the testing module name
|
66
|
+
# - packno sending mcpack file number
|
67
|
+
# - postfix=nil the postfix of the data
|
68
|
+
# - delay=0 sending interval(s)
|
69
|
+
# ===example
|
70
|
+
# mc_trans_send "127.0.0.1", nil, 1
|
71
|
+
def mc_trans_send ip, port, nshead_hash, packno, postfix=nil, delay=0
|
72
|
+
$log.debug "sending mcpack #{packno}..."
|
73
|
+
puts "\n##########sending mcpack #{packno}...##########"
|
74
|
+
|
75
|
+
#case_path = "#{CASE_ROOT}#{$globals[:MODULE_NAME]}/#{$globals[:CASE_NAME]}/"
|
76
|
+
case_path = "#{$CASE_ROOT}/"
|
77
|
+
recv_path = ""
|
78
|
+
if postfix == nil
|
79
|
+
recv_path = "#{case_path}tmp/#{packno}.recv"
|
80
|
+
else
|
81
|
+
recv_path = "#{case_path}tmp/#{packno}_#{postfix}.recv"
|
82
|
+
end
|
83
|
+
nshead_trans_send(ip, port, nshead_hash, "#{case_path}data/#{packno}.send", recv_path, delay)
|
84
|
+
|
85
|
+
#set :SEND,:RECV to $globals
|
86
|
+
Context.set :SEND, "#{case_path}data/#{packno}.send"
|
87
|
+
Context.set :RECV, "#{case_path}tmp/#{packno}.recv"
|
88
|
+
|
89
|
+
$log.debug "send end..."
|
90
|
+
|
91
|
+
#copy res_nshead.data to module case's tmp dir
|
92
|
+
if File.exist? "#{MCSEND_PATH}res_nshead.data"
|
93
|
+
`cp #{MCSEND_PATH}res_nshead.data #{case_path}tmp/`
|
94
|
+
end
|
95
|
+
|
96
|
+
#set :RES_HEAD to $globalsdd
|
97
|
+
Context.set :RES_HEAD, "#{case_path}tmp/res_nshead.data"
|
98
|
+
end
|
99
|
+
|
100
|
+
# ===功能
|
101
|
+
# 支持下游桩的mc_send
|
102
|
+
# ===参数
|
103
|
+
# - ip
|
104
|
+
# - port
|
105
|
+
# - nshead_hash
|
106
|
+
# - prefix: .../$casedir/data/$prefix.send
|
107
|
+
# - postfix: tells which stub return what data, .../$casedir/stub/$prefix_$stubname_$postfix.stub; nil by default means the response data is $prefix_$stubname.stub
|
108
|
+
# - delay: sending interval
|
109
|
+
# ===example
|
110
|
+
# mc_stub_send ip, 3308, nil, 1
|
111
|
+
def mc_stub_send ip, port, nshead_hash, prefix, postfix=nil, delay=0
|
112
|
+
$log.debug "sending mcpack #{prefix}, with stub data #{postfix}..."
|
113
|
+
puts "sending mcpack #{prefix}, with stub data #{postfix}..."
|
114
|
+
|
115
|
+
#case_path = "#{CASE_ROOT}#{$globals[:MODULE_NAME]}/#{$globals[:CASE_NAME]}/"
|
116
|
+
case_path = "#{$CASE_ROOT}/"
|
117
|
+
|
118
|
+
# modify stub's server.conf
|
119
|
+
stubs = Context.get :STUBS
|
120
|
+
heads = {}
|
121
|
+
files = {}
|
122
|
+
stubs.each{|stub|
|
123
|
+
if postfix != nil
|
124
|
+
heads[stub] = "#{case_path}stub/#{prefix}_#{stub}_#{postfix}.head"
|
125
|
+
files[stub] = "#{case_path}stub/#{prefix}_#{stub}_#{postfix}.stub"
|
126
|
+
else
|
127
|
+
heads[stub] = "#{case_path}stub/#{prefix}_#{stub}.head"
|
128
|
+
files[stub] = "#{case_path}stub/#{prefix}_#{stub}.stub"
|
129
|
+
end
|
130
|
+
}
|
131
|
+
set_stub_head heads
|
132
|
+
set_stub_file files
|
133
|
+
sleep 1
|
134
|
+
|
135
|
+
|
136
|
+
#send
|
137
|
+
mc_send ip, port, nshead_hash, prefix, postfix
|
138
|
+
end
|
139
|
+
|
140
|
+
|
141
|
+
#===============================================
|
142
|
+
# asserts
|
143
|
+
#===============================================
|
144
|
+
|
145
|
+
# ===功能
|
146
|
+
# 校验两组prefix相同的.expc, .recv文件是否内容一致
|
147
|
+
# ===参数
|
148
|
+
# - prefix
|
149
|
+
# - msg=""
|
150
|
+
# ===example
|
151
|
+
# mc_assert_pack 1
|
152
|
+
def mc_assert_pack prefix, msg=""
|
153
|
+
module_name = $globals[:MODULE_NAME]
|
154
|
+
case_name = $globals[:CASE_NAME]
|
155
|
+
#case_path = "#{CASE_ROOT}#{module_name}/#{case_name}/"
|
156
|
+
case_path = "#{$CASE_ROOT}/"
|
157
|
+
|
158
|
+
postfixes = get_postfixes(module_name, case_name, prefix)
|
159
|
+
if postfixes == nil
|
160
|
+
flunk "get postfix from data dir fail, check the data dir and the .expc files"
|
161
|
+
end
|
162
|
+
postfixes.each{|postfix|
|
163
|
+
assert_file_same_by_str(case_path+"data/" + prefix + ".expc" + postfix, case_path+"tmp/" + prefix + ".recv" + postfix, msg)
|
164
|
+
}
|
165
|
+
end
|
166
|
+
|
167
|
+
# ===功能
|
168
|
+
# 校验两组prefix相同的.expc, .recv文件是否内容包含
|
169
|
+
# ===参数
|
170
|
+
# - prefix
|
171
|
+
# - msg=""
|
172
|
+
# ===example
|
173
|
+
# mc_assert_pack_include 1
|
174
|
+
def mc_assert_pack_include prefix, msg=""
|
175
|
+
module_name = $globals[:MODULE_NAME]
|
176
|
+
case_name = $globals[:CASE_NAME]
|
177
|
+
#case_path = "#{CASE_ROOT}#{module_name}/#{case_name}/"
|
178
|
+
case_path = "#{$CASE_ROOT}/"
|
179
|
+
|
180
|
+
postfixes = get_postfixes(module_name, case_name, prefix)
|
181
|
+
if postfixes == nil
|
182
|
+
flunk "get postfix from data dir fail, check the data dir and the .expc files"
|
183
|
+
end
|
184
|
+
postfixes.each{|postfix|
|
185
|
+
assert_file_include_by_str(case_path+"data/" + prefix + ".expc" + postfix, case_path+"tmp/" + prefix + ".recv" + postfix, msg)
|
186
|
+
}
|
187
|
+
end
|
188
|
+
|
189
|
+
# ===功能
|
190
|
+
# 校验响应头中指定key的期望值是否正确
|
191
|
+
# ===参数
|
192
|
+
# - key
|
193
|
+
# - expect_value
|
194
|
+
# - msg=""
|
195
|
+
# ===exmaple
|
196
|
+
# mc_assert_head_value "name", "new"
|
197
|
+
def mc_assert_head_value key, expect_value, msg=""
|
198
|
+
assert_head_value $globals[:RES_HEAD], key, expect_value, msg
|
199
|
+
end
|
200
|
+
|
201
|
+
|
202
|
+
#============helper methods=============
|
203
|
+
|
204
|
+
# ===功能
|
205
|
+
# return all the pack numbers in the specified module and case
|
206
|
+
# ===example
|
207
|
+
# ar = getpacks
|
208
|
+
def getpacks(suffix=".send")
|
209
|
+
#data_path = "#{CASE_ROOT}#{$globals[:MODULE_NAME]}/#{$globals[:CASE_NAME]}/data/"
|
210
|
+
# 保证返回的datai是数字类型的且已经排序
|
211
|
+
data_path = "#{$CASE_ROOT}/data/"
|
212
|
+
datai = []
|
213
|
+
datas = get_all_pack data_path, suffix
|
214
|
+
datas.each{ |item|
|
215
|
+
datai.push(item.to_i)
|
216
|
+
}
|
217
|
+
$log.debug "Get packnos from " + data_path
|
218
|
+
return datai.sort
|
219
|
+
end
|
220
|
+
|
221
|
+
# ===功能
|
222
|
+
# return all the pack in the specified module and case
|
223
|
+
# ===example
|
224
|
+
# ar = getpacks_all
|
225
|
+
def getpacks_all(suffix=".send")
|
226
|
+
#data_path = "#{CASE_ROOT}#{$globals[:MODULE_NAME]}/#{$globals[:CASE_NAME]}/data/"
|
227
|
+
# 保证返回data目录下的所有待发送的数据文件 *.send
|
228
|
+
data_path = "#{$CASE_ROOT}/data/"
|
229
|
+
datai = []
|
230
|
+
datas = get_all_pack data_path, suffix
|
231
|
+
datas.each{ |item|
|
232
|
+
datai.push(item)
|
233
|
+
}
|
234
|
+
$log.debug "Get packnos from " + data_path
|
235
|
+
# 按照字母表进行排序
|
236
|
+
return datai.sort
|
237
|
+
end
|
238
|
+
|
239
|
+
# ===功能
|
240
|
+
# get the packs query by pattern
|
241
|
+
# ===example
|
242
|
+
# packs = get_packs
|
243
|
+
def get_packs pattern
|
244
|
+
#data_path = "#{CASE_ROOT}#{$globals[:MODULE_NAME]}/#{$globals[:CASE_NAME]}/data/"
|
245
|
+
data_path = "#{$CASE_ROOT}/data/"
|
246
|
+
|
247
|
+
packs = []
|
248
|
+
files = Dir.glob(File.join(data_path, pattern))
|
249
|
+
files.each{|file|
|
250
|
+
arr = file.split /\//
|
251
|
+
entry = arr[arr.size-1]
|
252
|
+
pack = entry[0, entry.size-5]
|
253
|
+
packs << pack
|
254
|
+
}
|
255
|
+
|
256
|
+
return packs
|
257
|
+
end
|
258
|
+
|
259
|
+
|
260
|
+
# ===功能
|
261
|
+
# get all the postfix of a specified packno
|
262
|
+
# === Example
|
263
|
+
#
|
264
|
+
# data/1.expc, 1.expc.1, 1.expc.2
|
265
|
+
# return array ["", ".1", ".2"]
|
266
|
+
def get_postfixes(module_name, case_name, packno)
|
267
|
+
#data_path = "#{CASE_ROOT}#{module_name}/#{case_name}/data/"
|
268
|
+
data_path = "#{$CASE_ROOT}/data/"
|
269
|
+
$log.debug "get postfixes from #{data_path} where packno = #{packno}"
|
270
|
+
|
271
|
+
#param check
|
272
|
+
if !File.directory?(data_path) || !File.exist?(data_path) then
|
273
|
+
$log.debug "bad data path=" + data_path
|
274
|
+
return nil
|
275
|
+
end
|
276
|
+
|
277
|
+
postfixes = Array.new
|
278
|
+
Dir.foreach(data_path) do |entry|
|
279
|
+
if entry.match("#{packno}.expc.*") then
|
280
|
+
matches = entry.scan(/.*expc(.*)/)
|
281
|
+
postfixes << matches[0][0]
|
282
|
+
end
|
283
|
+
end
|
284
|
+
if postfixes.size == 0 then
|
285
|
+
return nil
|
286
|
+
$log.warn "packno=#{packno} should have at least one expct data"
|
287
|
+
end
|
288
|
+
|
289
|
+
$log.debug "postfixes = #{postfixes} and size = #{postfixes.size}"
|
290
|
+
return postfixes
|
291
|
+
end
|
292
|
+
|
293
|
+
# ===功能
|
294
|
+
# mc_base模式
|
295
|
+
#
|
296
|
+
# ===参数
|
297
|
+
# 无
|
298
|
+
#
|
299
|
+
# ===Example
|
300
|
+
# mc_base_pattern.each{ |packno|
|
301
|
+
# monitor_log IP, LOG_PATH, LOG
|
302
|
+
# mc_send IP, PORT, nil, packno
|
303
|
+
# 对于给通用tranfer模块发送,请使用:
|
304
|
+
# mc_trans_send IP, PORT, nil, packno
|
305
|
+
# mc_assert_pack "#{packno}", "@#{packno}: expect pack is not equal to recv pack!"
|
306
|
+
# assert_log_match_times IP, LOG_PATH, LOG, ["NOTICE"], "users_getInfo", 1
|
307
|
+
# }
|
308
|
+
#
|
309
|
+
# 备注:
|
310
|
+
# 能保证发送的数据按照前缀的顺序发送
|
311
|
+
def mc_base_pattern()
|
312
|
+
puts "+++++++++about to execute case #{Context.get 'CASE_NAME'}+++++++++"
|
313
|
+
$log.info "+++++++++about to execute case #{Context.get 'CASE_NAME'}+++++++++"
|
314
|
+
datas = getpacks
|
315
|
+
|
316
|
+
if datas != nil && datas.length > 0 then
|
317
|
+
return datas
|
318
|
+
else
|
319
|
+
return nil
|
320
|
+
end
|
321
|
+
puts "+++++++++end executing case #{Context.get 'CASE_NAME'}+++++++++"
|
322
|
+
$log.info "+++++++++end executing case #{Context.get 'CASE_NAME'}+++++++++"
|
323
|
+
end
|
324
|
+
|
325
|
+
|
326
|
+
# ===功能
|
327
|
+
# mc_base模式的变种,将发送data目录下的所有数据文件
|
328
|
+
#
|
329
|
+
# ===参数
|
330
|
+
# 无
|
331
|
+
#
|
332
|
+
# ===Example
|
333
|
+
# mc_base_all_pattern.each{ |packno|
|
334
|
+
# monitor_log IP, LOG_PATH, LOG
|
335
|
+
# mc_send IP, PORT, nil, packno
|
336
|
+
# 对于给通用tranfer模块发送,请使用:
|
337
|
+
# mc_trans_send IP, PORT, nil, packno
|
338
|
+
# mc_assert_pack "#{packno}", "@#{packno}: expect pack is not equal to recv pack!"
|
339
|
+
# assert_log_match_times IP, LOG_PATH, LOG, ["NOTICE"], "users_getInfo", 1
|
340
|
+
# }
|
341
|
+
#
|
342
|
+
# 备注:
|
343
|
+
# 能保证发送的数据按照前缀的顺序发送
|
344
|
+
def mc_base_all_pattern()
|
345
|
+
puts "+++++++++about to execute case #{Context.get 'CASE_NAME'}+++++++++"
|
346
|
+
$log.info "+++++++++about to execute case #{Context.get 'CASE_NAME'}+++++++++"
|
347
|
+
datas = getpacks_all
|
348
|
+
|
349
|
+
if datas != nil && datas.length > 0 then
|
350
|
+
return datas
|
351
|
+
else
|
352
|
+
return nil
|
353
|
+
end
|
354
|
+
puts "+++++++++end executing case #{Context.get 'CASE_NAME'}+++++++++"
|
355
|
+
$log.info "+++++++++end executing case #{Context.get 'CASE_NAME'}+++++++++"
|
356
|
+
end
|
357
|
+
|
358
|
+
|
359
|
+
# ===功能
|
360
|
+
# cm transfer测试模式
|
361
|
+
# 发送cm,检查cm返回数据,检查transfer发送数据
|
362
|
+
# 通过前缀来进行数据的匹配检查,不要求每个cm的发送的数据对有对应的transfer返回数据
|
363
|
+
# 例如: 1.send 对应1.expc, 不要求同时有 1.trans,如果有则进行transfer返回的数据的检验
|
364
|
+
#
|
365
|
+
#
|
366
|
+
# ===参数
|
367
|
+
#
|
368
|
+
# ===Example
|
369
|
+
# def test_xxx
|
370
|
+
# cm_transfer_pattern
|
371
|
+
# end
|
372
|
+
# def teardown
|
373
|
+
# cm_transfer_pattern_stop
|
374
|
+
# end
|
375
|
+
#
|
376
|
+
# 备注:
|
377
|
+
# 增加teardown函数处理case运行失败的情况,见: cm_transfer_pattern_stop
|
378
|
+
# 能保证发送的数据按照前缀的顺序发送
|
379
|
+
def cm_transfer_pattern(ip=HOST, port=PORT)
|
380
|
+
# 清理cm transfer原来的数据
|
381
|
+
ssh_cmd "rm -fr /home/space/phpcm/data/*; killall -9 phpcm;"
|
382
|
+
ssh_cmd "rm -fr /home/space/phptrans/data/transid/*; killall -9 transfer;"
|
383
|
+
sleep 2
|
384
|
+
cmd_str = "cd #{MCSERVER_PATH}; rm log/foo.log; nohup ./mcserver_trans &"
|
385
|
+
system "#{cmd_str}"
|
386
|
+
datas = getpacks
|
387
|
+
datas.each{ |packno|
|
388
|
+
mc_send ip, port, nil, packno
|
389
|
+
mc_assert_pack_include "#{packno}", "@#{packno}: expect pack is not equal to recv pack!"
|
390
|
+
}
|
391
|
+
sleep 1
|
392
|
+
datas = getpacks ".trans"
|
393
|
+
i=0
|
394
|
+
open("#{MCSERVER_PATH}/log/foo.log", "r").each{ |line|
|
395
|
+
if line=~/--------/ then next end
|
396
|
+
puts "trans_rev=================>"
|
397
|
+
puts line
|
398
|
+
puts "==========================>"
|
399
|
+
case_path = "#{$CASE_ROOT}/"
|
400
|
+
file = open(case_path+"/data/#{datas[i]}.trans", "r")
|
401
|
+
i=i+1
|
402
|
+
line2 = file.gets
|
403
|
+
file.close
|
404
|
+
assert_include line2, line, "Transfer data not match"
|
405
|
+
}
|
406
|
+
system "killall -9 mcserver_trans"
|
407
|
+
end
|
408
|
+
|
409
|
+
|
410
|
+
# ===功能
|
411
|
+
# cm transfer测试模式的一种修改,发送的数据就已经是通用transfer的格式,可用于类cm transfer的子系统
|
412
|
+
# 发送cm,检查cm返回数据,检查transfer发送数据
|
413
|
+
# 通过前缀来进行数据的匹配检查,不要求每个cm的发送的数据对有对应的transfer返回数据
|
414
|
+
# 例如: 1.send 对应1.expc, 不要求同时有 1.trans,如果有则进行transfer返回的数据的检验
|
415
|
+
#
|
416
|
+
#
|
417
|
+
# ===参数
|
418
|
+
#
|
419
|
+
# ===Example
|
420
|
+
# def test_xxx
|
421
|
+
# cm_transfer_pattern2
|
422
|
+
# end
|
423
|
+
# def teardown
|
424
|
+
# cm_transfer_pattern_stop
|
425
|
+
# end
|
426
|
+
#
|
427
|
+
# 备注:
|
428
|
+
# 增加teardown函数处理case运行失败的情况,见: cm_transfer_pattern_stop
|
429
|
+
# 能保证发送的数据按照前缀的顺序发送
|
430
|
+
def cm_transfer_pattern2(ip=HOST, port=PORT)
|
431
|
+
# 清理cm transfer原来的数据
|
432
|
+
cmd_str = "cd #{MCSERVER_PATH}; rm log/foo.log; nohup ./mcserver_trans &"
|
433
|
+
system "#{cmd_str}"
|
434
|
+
datas = getpacks
|
435
|
+
datas.each{ |packno|
|
436
|
+
mc_trans_send ip, port, nil, packno
|
437
|
+
mc_assert_pack_include "#{packno}", "@#{packno}: expect pack is not equal to recv pack!"
|
438
|
+
}
|
439
|
+
sleep 1
|
440
|
+
datas = getpacks ".trans"
|
441
|
+
i=0
|
442
|
+
open("#{MCSERVER_PATH}/log/foo.log", "r").each{ |line|
|
443
|
+
if line=~/--------/ then next end
|
444
|
+
puts "trans_rev=================>"
|
445
|
+
puts line
|
446
|
+
puts "==========================>"
|
447
|
+
case_path = "#{$CASE_ROOT}/"
|
448
|
+
file = open(case_path+"/data/#{datas[i]}.trans", "r")
|
449
|
+
i=i+1
|
450
|
+
line2 = file.gets
|
451
|
+
file.close
|
452
|
+
assert_include line2, line, "Transfer data not match"
|
453
|
+
}
|
454
|
+
system "killall -9 mcserver_trans"
|
455
|
+
end
|
456
|
+
|
457
|
+
|
458
|
+
# ===功能
|
459
|
+
# cm transfer模式的停止
|
460
|
+
# 主要是停止mcserver的工作
|
461
|
+
#
|
462
|
+
# ===参数
|
463
|
+
# 无
|
464
|
+
#
|
465
|
+
# ===Example
|
466
|
+
# def teardown
|
467
|
+
# cm_transfer_pattern_stop
|
468
|
+
# end
|
469
|
+
#
|
470
|
+
def cm_transfer_pattern_stop
|
471
|
+
system "killall -9 mcserver_trans"
|
472
|
+
end
|
473
|
+
|
474
|
+
end
|