super-test 1.0.9
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 +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
|