super-test 1.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGE.txt +9 -0
  3. data/README.txt +13 -0
  4. data/bin/idb +19 -0
  5. data/bin/ii +113 -0
  6. data/bin/istart_mock +36 -0
  7. data/bin/istop_mock +16 -0
  8. data/bin/kk +181 -0
  9. data/bin/rubyatp +42 -0
  10. data/bin/start_mock +36 -0
  11. data/bin/stop_mock +16 -0
  12. data/bin/xgo +45 -0
  13. data/conf/conf.rb +11 -0
  14. data/conf/db03.yml +31 -0
  15. data/conf/db13.yml +37 -0
  16. data/conf/db19.yml +33 -0
  17. data/conf/online.yml +32 -0
  18. data/conf/super_test.yml +40 -0
  19. data/conf/system.yml +26 -0
  20. data/conf/sz00.yml +31 -0
  21. data/conf/sz06.yml +34 -0
  22. data/conf/wise00.yml +11 -0
  23. data/data/case.house +0 -0
  24. data/data/char.house +0 -0
  25. data/data/images/Bluehills.jpg +0 -0
  26. data/data/images/Sunset.jpg +0 -0
  27. data/data/images/Waterlilies.jpg +0 -0
  28. data/data/images/Winter.jpg +0 -0
  29. data/data/query.house +18595 -0
  30. data/data/user.house +8 -0
  31. data/lib/action/module/check_action.rb +58 -0
  32. data/lib/action/module/cnnt_action.rb +161 -0
  33. data/lib/action/module/datacenter_action.rb +48 -0
  34. data/lib/action/module/http_pack_helper.rb +163 -0
  35. data/lib/action/module/httpserver_action.rb +297 -0
  36. data/lib/action/module/inc.rb +21 -0
  37. data/lib/action/module/mcpack_action.rb +57 -0
  38. data/lib/action/module/sql_action.rb +84 -0
  39. data/lib/action/module/ssh_action.rb +37 -0
  40. data/lib/action/system/user_action.rb +180 -0
  41. data/lib/common/appium_helper.rb +217 -0
  42. data/lib/common/atp_helper.rb +74 -0
  43. data/lib/common/atp_report.rb +344 -0
  44. data/lib/common/data_house.rb +405 -0
  45. data/lib/common/data_model.rb +87 -0
  46. data/lib/common/http/assert_helper.rb +343 -0
  47. data/lib/common/http/fix_hpricot.rb +118 -0
  48. data/lib/common/http/html_helper.rb +362 -0
  49. data/lib/common/http/http_helper.rb +469 -0
  50. data/lib/common/http/multipart.rb +81 -0
  51. data/lib/common/isandbox_helper.rb +195 -0
  52. data/lib/common/json_helper.rb +43 -0
  53. data/lib/common/mock_helper.rb +168 -0
  54. data/lib/common/mtop_helper.rb +141 -0
  55. data/lib/common/myconf_helper.rb +49 -0
  56. data/lib/common/mylog_helper.rb +77 -0
  57. data/lib/common/pairwise.rb +121 -0
  58. data/lib/common/query_house.rb +89 -0
  59. data/lib/common/report_helper.rb +97 -0
  60. data/lib/common/robot_helper.rb +85 -0
  61. data/lib/common/socket/check.rb +325 -0
  62. data/lib/common/socket/conf_modifier.rb +149 -0
  63. data/lib/common/socket/context.rb +55 -0
  64. data/lib/common/socket/data.rb +392 -0
  65. data/lib/common/socket/data_helper.rb +41 -0
  66. data/lib/common/socket/env.rb +317 -0
  67. data/lib/common/socket/inc.rb +24 -0
  68. data/lib/common/socket/log.rb +213 -0
  69. data/lib/common/socket/log4s.rb +58 -0
  70. data/lib/common/socket/log_helper.rb +332 -0
  71. data/lib/common/socket/my_sql.rb +77 -0
  72. data/lib/common/socket/net.rb +74 -0
  73. data/lib/common/socket/network.rb +115 -0
  74. data/lib/common/socket/rlib/conf_modifier.rb +130 -0
  75. data/lib/common/socket/rlib/data_helper.rb +33 -0
  76. data/lib/common/socket/rlib/log_helper.rb +303 -0
  77. data/lib/common/socket/rlib/process_helper.rb +91 -0
  78. data/lib/common/socket/stub.rb +276 -0
  79. data/lib/common/socket/util.rb +266 -0
  80. data/lib/patterns/inc.rb +10 -0
  81. data/lib/patterns/mc_base_pattern.rb +474 -0
  82. data/lib/patterns/some_pattern.rb +145 -0
  83. data/lib/super_test.rb +114 -0
  84. data/log/super_test.log +0 -0
  85. data/log/super_test.log.wf +0 -0
  86. data/test/cover_me.rb +6 -0
  87. data/tool/jenny +0 -0
  88. data/tool/mcsend/mcsend2 +0 -0
  89. data/tool/mcsend/mcsend2_shead +0 -0
  90. data/tool/mcserver/conf/mcserver.conf +77 -0
  91. data/tool/mcserver/conf/mcserverauthip +17 -0
  92. data/tool/mcserver/mcserver +0 -0
  93. data/tool/mcserver/mcserver_trans +0 -0
  94. data/tool/mysql +0 -0
  95. data/tool/net/mcsend/mcsend +0 -0
  96. data/tool/net/mcsend/mcsend_trans +0 -0
  97. data/tool/net/mcsend/nshead.data +7 -0
  98. data/tool/net/mcsend/res_nshead.data +7 -0
  99. data/tool/net/my_client/my_client +0 -0
  100. data/tool/net/tsclient/client.tcl +205 -0
  101. data/tool/others/kk +190 -0
  102. data/tool/others/rubyatp +42 -0
  103. data/tool/others/supertest_install.sh +34 -0
  104. data/tool/trip/idb +0 -0
  105. data/tool/ts-agent/nshead.bft +12 -0
  106. data/tool/ts-agent/server.conf +10 -0
  107. data/tool/ts-agent/server.tcl +376 -0
  108. metadata +275 -0
@@ -0,0 +1,149 @@
1
+ #!/usr/bin/env ruby
2
+ # coding: utf-8
3
+
4
+ #============================================================
5
+ # This class supply conf modification related service
6
+ # e.g. modify single/batch conf items
7
+ # Author:: chenjie
8
+ # Data:: 2009-4-30
9
+ #============================================================
10
+ class ConfModifier
11
+ @lines = 0
12
+
13
+ def initialize(confPath)
14
+ @confPath = confPath
15
+ #lineNum : key
16
+ @dic= Hash.new
17
+ #key : value
18
+ @conf = Hash.new
19
+
20
+ file = File.open(@confPath)
21
+ cnt = 0
22
+
23
+ file.each{ |line|
24
+ #print line
25
+ cnt+=1
26
+
27
+ if line.strip[0, 1] == '#' or line.strip.length == 0
28
+ @dic[ cnt ] = line.strip
29
+ else
30
+ list = line.strip.split(":")
31
+ key = list[0].strip
32
+ if list[1] != nil then
33
+ list.delete_at(0)
34
+ value = list.join(":").strip
35
+ else
36
+ #只有key没有value的情况
37
+ value = ''
38
+ end
39
+
40
+ @dic[ cnt ] = key
41
+ @conf[key] = value
42
+ end
43
+ }
44
+
45
+ @lines = cnt
46
+
47
+ file.close
48
+ end
49
+
50
+ # === 功能:
51
+ # 修改单个配置项
52
+ # === Example:
53
+ # cm = ConfModifier.new conf_path
54
+ # cm.modify("timeout", "100")
55
+ def modify(key, newValue)
56
+ if @conf.has_key?(key)
57
+ puts "modify from [" + key + "=>" + @conf[key] + "] to [" + key + "=>" + newValue + " ]"
58
+ @conf[key] = newValue
59
+ else
60
+ puts "add new conf " + key + "=>" + newValue
61
+ @lines += 1
62
+ @dic[@lines] = key
63
+ @conf[key] = newValue
64
+ end
65
+ end
66
+
67
+ # === 功能:
68
+ # 批量修改配置项
69
+ # === Example:
70
+ # hh ={"name"=>"friend", "timeout"=>"100"}
71
+ # cm = ConfModifier.new conf_path
72
+ # cm.modifyall(hh)
73
+ def modifyall(hash)
74
+ if hash != nil then
75
+ hash.each{|key,value|
76
+ modify(key, value)
77
+ }
78
+ end
79
+ end
80
+
81
+ # === 功能:
82
+ # 按顺序回写配置文件
83
+ # === Example:
84
+ # hh ={"name"=>"friend", "timeout"=>"100"}
85
+ # cm = ConfModifier.new conf_path
86
+ # cm.modifyall(hh)
87
+ # cm.writeconf
88
+ def writeconf
89
+ file = File.open(@confPath, 'w')
90
+ @dic.sort_by { |key, value| key }
91
+ @dic.each_key { |ki|
92
+ if @dic[ki].strip.length != 0
93
+ #key, value
94
+ if @conf.has_key?(@dic[ki])
95
+ file.print(@dic[ki] , " : ",@conf[@dic[ki]] , "\n")
96
+ else
97
+ file.print( @dic[ki] , "\n")
98
+ end
99
+ else
100
+ file.print( "\n")
101
+ end
102
+ }
103
+
104
+ file.close
105
+ end
106
+
107
+ # === 功能:
108
+ # 获取某个配置项的值
109
+ # === Example:
110
+ # cm = ConfModifier.new conf_path
111
+ # m_name = cm.get_conf("name")
112
+ def get_conf(key)
113
+ return @conf[key]
114
+ end
115
+ end
116
+
117
+ if ARGV.length > 0 then
118
+ case ARGV[0]
119
+ when "modify_conf_single"
120
+ conf_path = ARGV[1]
121
+ key = ARGV[2]
122
+ new_value = ARGV[3]
123
+ cm = ConfModifier.new(conf_path)
124
+ cm.modify(key, new_value)
125
+ cm.writeconf
126
+ when "get_conf"
127
+ conf_path = ARGV[1]
128
+ key = ARGV[2]
129
+ cm = ConfModifier.new(conf_path)
130
+ puts cm.get_conf(key)
131
+ # else
132
+ # puts "ConfModifer: bad method name? #{ARGV[0]}"
133
+ end
134
+ end
135
+
136
+
137
+ =begin
138
+ if __FILE__ == $0
139
+ require "#{File.dirname(__FILE__)}/../../lib/base_case"
140
+ class MyTest < BaseCase
141
+ def no_test
142
+ conf_path = "#{File.dirname(__FILE__)}/../../test/env/dataminer.conf"
143
+ cm = ConfModifier.new conf_path
144
+ cm.modify('index_mode', '1')
145
+ cm.writeconf
146
+ end
147
+ end
148
+ end
149
+ =end
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env ruby
2
+ # coding: utf-8
3
+ $LOAD_PATH << File.join(File.dirname(__FILE__), '.')
4
+ #require 'log4s'
5
+
6
+ #============================================================
7
+ # 这个类提供上下文相关服务
8
+ # 以减少case中的赋值语句和参数传递
9
+ # Author:: chenjie
10
+ # Data:: 2009-4-30
11
+ #============================================================
12
+ class Context
13
+ $globals = Hash.new
14
+
15
+ #keys: :MODULE_NAME, :CASE_NAME,:RES_HEAD, :RECV, :SEND, :DATABASE, :DB_HOST, :DBH
16
+
17
+ #stub related
18
+ #keys: :STUBS, :STUB_PORTS, :STUB_ACTIONS, :STUB_HEADS, :STUB_FILES
19
+
20
+ # === 功能:
21
+ # 清空上下文
22
+ # === Example:
23
+ # Context.clear
24
+ def Context.clear
25
+ $log.notice "Clear context"
26
+ $globlas.clear
27
+ end
28
+
29
+ # === 功能:
30
+ # 设置上下文
31
+ # === Example:
32
+ # Context.set("name", "100")
33
+ def Context.set(key, value)
34
+ $log.debug "Context setting key[#{key}] value[#{value}]"
35
+ $globals[key] = value
36
+ end
37
+
38
+ # === 功能:
39
+ # 获取上下文
40
+ # === Example:
41
+ # Context.get("name")
42
+ def Context.get(key)
43
+ $log.debug "Context getting key[#{key}], value [#{$globals[key]}]"
44
+ return $globals[key]
45
+ end
46
+
47
+ # === 功能:
48
+ # 删除上下文
49
+ # === Example:
50
+ # Context.delete("name")
51
+ def Context.delete key
52
+ $log.debug "Context deleting key[#{key}]"
53
+ $globals.delete key
54
+ end
55
+ end
@@ -0,0 +1,392 @@
1
+ $LOAD_PATH << File.join(File.dirname(__FILE__), './rlib/')
2
+ #!/usr/bin/env ruby
3
+ # coding: utf-8
4
+
5
+ require 'data_helper'
6
+
7
+ #============================================================
8
+ # 这个类是数据相关服务的顶层接口,提供本机/远程数据相关服务
9
+ # e.g. compare file contents, get file match pattern's times...
10
+ # Author:: chenjie
11
+ # Date:: 2009-4-30
12
+ #============================================================
13
+ module DATA
14
+ # === 功能:
15
+ # 模块测试的时候的helper文件的load策略
16
+ #
17
+ # === 参数解释:
18
+ # - filepath: 运行的case文件的路径,从__FILE__获取
19
+ #
20
+ # === Example:
21
+ # 内部使用
22
+ #
23
+ def _init_file_(filepath)
24
+ =begin 以下的内容取消,由init_dir.rb实现
25
+ module_dir = `dirname #{filepath}`
26
+ module_base = "module"
27
+ module_helper_name = module_dir.chop!+"/"+module_base+"_helper.rb"
28
+ filepath.gsub(/.rb/, "")
29
+ case_helper_name = filepath+"_helper.rb"
30
+ if(File.exist?(module_helper_name))
31
+ require "#{module_helper_name}"
32
+ end
33
+ if(File.exist?(case_helper_name))
34
+ require "#{case_helper_name}"
35
+ end
36
+ =end
37
+ case_pwd = `pwd`
38
+ case_pwd_case = `basename #{case_pwd}`
39
+ case_pwd.gsub!(/#{case_pwd_case}/, "")
40
+ case_pwd_module = `basename #{case_pwd}`
41
+ Context.set(:MODULE_NAME, case_pwd_module.chop!)
42
+ Context.set(:CASE_NAME, case_pwd_case.chop!)
43
+ end
44
+
45
+ # ===功能
46
+ # get all data prefix(packno)
47
+ # === 参数
48
+ # - data_path
49
+ # return packno array
50
+ # ===example
51
+ # datas = get_all_pack data_path
52
+ def get_all_pack(data_path, suffix=".send")
53
+ #param check
54
+ if !File.directory?(data_path) || !File.exist?(data_path) then
55
+ $log.error "bad data_path=" + data_path
56
+ return
57
+ end
58
+
59
+ datas = Array.new
60
+ Dir.foreach(data_path) do |entry|
61
+ if entry.match("#{suffix}$") then
62
+ packno = entry[0, entry.size-suffix.length]
63
+ datas.push(packno)
64
+ end
65
+ end
66
+
67
+ return datas.sort
68
+ end
69
+
70
+
71
+ # ===功能
72
+ # compare two files contents
73
+ # ===参数
74
+ # - p1 filename 1
75
+ # - p2 filename 2
76
+ #
77
+ # === Logic
78
+ #
79
+ # 1. if p1 exists and p2 not exists, return false
80
+ # 2. if both not exist, return true
81
+ # 3. same file ,return true
82
+ # 4. type or size different, return false
83
+ # 5. then compare content
84
+ # === example
85
+ # same_file_contents file1, file2
86
+ def same_file_contents(p1, p2)
87
+ return false if File.exists?(p1) != File.exists?(p2)
88
+ return true if !File.exists?(p1)
89
+ return true if File.expand_path(p1) == File.expand_path(p2)
90
+ return false if File.ftype(p1) != File.ftype(p2) || File.size(p1) != File.size(p2)
91
+
92
+ #compare content
93
+ open(p1) do |f1|
94
+ open(p2) do |f2|
95
+ blocksize = f1.lstat.blksize
96
+ same = true
97
+ while same && !f1.eof && !f2.eof?
98
+ same = f1.read(blocksize) == f2.read(blocksize)
99
+ end
100
+ return same
101
+ end
102
+ end
103
+ end
104
+
105
+
106
+ # === 功能:
107
+ #仅对比content字段的内容
108
+ # === Example:
109
+ # same_content_value(file1, file2)
110
+ def same_content_value(p1, p2)
111
+ return false if File.exists?(p1) != File.exists?(p2)
112
+ return true if !File.exists?(p1)
113
+ return true if File.expand_path(p1) == File.expand_path(p2)
114
+ return false if File.ftype(p1) != File.ftype(p2) || File.size(p1) != File.size(p2)
115
+
116
+ str1 = ""
117
+ open(p1, 'r:gbk').each{|line|
118
+ str1 += line.strip.chomp
119
+ }
120
+ str2 = ""
121
+ open(p2, 'r:gbk').each{|line|
122
+ str2 += line.strip.chomp
123
+ }
124
+
125
+ pattern = /"content":(.*)}/
126
+ content1 = str1.scan pattern
127
+ content2 = str2.scan pattern
128
+
129
+ return content1 == content2
130
+ end
131
+
132
+
133
+ # === 功能:
134
+ # compare two files' content by string
135
+ # ignore invisible characters by strip, chomp
136
+ # === Example:
137
+ # same_file_str(file1, file2)
138
+ def same_file_str p1, p2
139
+ return false if File.exists?(p1) != File.exists?(p2)
140
+ return true if !File.exists?(p1)
141
+ return true if File.expand_path(p1) == File.expand_path(p2)
142
+ return false if File.ftype(p1) != File.ftype(p2)
143
+
144
+ str1 = ""
145
+ open(p1, 'r:gbk').each{|line|
146
+ str1 += line.strip.chomp
147
+ }
148
+ str2 = ""
149
+ open(p2, 'r:gbk').each{|line|
150
+ str2 += line.strip.chomp
151
+ }
152
+
153
+ return str1 == str2
154
+ end
155
+
156
+ # === 功能:
157
+ # compare two files' content by string, check if p1's content is included by p2's content
158
+ # ignore invisible characters by strip, chomp
159
+ # === Example:
160
+ # include_file_str(file1, file2)
161
+ def include_file_str p1, p2
162
+ return false if File.exists?(p1) != File.exists?(p2)
163
+ return true if !File.exists?(p1)
164
+ return true if File.expand_path(p1) == File.expand_path(p2)
165
+ return false if File.ftype(p1) != File.ftype(p2)
166
+
167
+ str1 = ""
168
+ open(p1, 'r:gbk').each{|line|
169
+ str1 += line.strip.chomp
170
+ }
171
+ str2 = ""
172
+ open(p2, 'r:gbk').each{|line|
173
+ str2 += line.strip.chomp
174
+ }
175
+
176
+ minclude = str2.scan(str1)
177
+ if minclude.size > 0 then
178
+ return true
179
+ end
180
+ return false
181
+ end
182
+
183
+
184
+ # ===功能
185
+ # compare two files md5
186
+ # ===参数
187
+ # - p1 filename 1
188
+ # - p2 filename 2
189
+ #
190
+ # === Logic
191
+ # 1. if p1 exists and p2 not exists, return false
192
+ # 2. if both not exist, return true
193
+ # 3. same file ,return true
194
+ # 4. type or size different, return false
195
+ # 5. then compare md5
196
+ # ===example
197
+ # same_file_md5 file1, file2
198
+ def same_file_md5(p1, p2)
199
+ return false if File.exists?(p1) != File.exists?(p2)
200
+ return true if !File.exists?(p1)
201
+ return true if File.expand_path(p1) == File.expand_path(p2)
202
+ puts p1
203
+ puts p2
204
+ puts File.ftype(p1)
205
+ puts File.ftype(p2)
206
+ puts File.size(p1)
207
+ puts File.size(p2)
208
+ return false if File.ftype(p1) != File.ftype(p2) || File.size(p1) != File.size(p2)
209
+
210
+ #compare md5
211
+ md5 = `md5sum #{p1}`.split(" ")[0]
212
+ md6 = `md5sum #{p2}`.split(" ")[0]
213
+ puts md5
214
+ puts md6
215
+
216
+ if md5 == md6 then
217
+ return true
218
+ else
219
+ return false
220
+ end
221
+ end
222
+
223
+
224
+ # ===功能
225
+ # whether the file content match the specified pattern
226
+ # ===参数
227
+ # - filename, pattern
228
+ # return: true if the file content match the pattern, false if not
229
+ # ===example
230
+ # file_match? file1, "time"
231
+ def file_match?(filename, pattern)
232
+ return false if !File.exists?(filename)
233
+ open(filename, 'r:gbk').each{|line|
234
+ mdata = line.scan(pattern)
235
+ if mdata.size > 0 then
236
+ return true
237
+ end
238
+ }
239
+
240
+ return false
241
+ end
242
+
243
+ # ===功能
244
+ # 文件内容match正则串的次数
245
+ # return: int, the match times
246
+ # ===exmaple
247
+ # times = file_match_times file1, "time"
248
+ def file_match_times(filename, pattern)
249
+ return 0 if !File.exists?(filename)
250
+
251
+ times = 0
252
+ open(filename, 'r:gbk').each{|line|
253
+ mdata = line.scan(pattern)
254
+ if mdata.size > 0 then
255
+ times += mdata.size
256
+ end
257
+ }
258
+
259
+ return times
260
+ end
261
+
262
+ # ===功能
263
+ # 根据给定的mcpack key值获取value
264
+ # ===参数
265
+ # - filename: 文件名
266
+ # - key: mcpack key
267
+ # - index: 匹配的key的index
268
+ # Return the value according to the key, nil if nothing found
269
+ # ===example
270
+ # value = get_mcpack_value file1, "name"
271
+ def get_mcpack_value filename, key, index=1
272
+ return nil if !File.exists? filename
273
+
274
+ #build the mcpack string
275
+ mcstr = ""
276
+ open(filename, 'r:gbk').each{|line|
277
+ mcstr += line.strip.chomp
278
+ }
279
+
280
+ #pattern = /("#{key}":[^,\}]*)/
281
+ pattern = [/"#{key}":([^{][^,\}]*)/, /#{key}:([^{][^,\}]*)/]
282
+ #pattern = /#{key}:([^,\}]*)| "#{key}":([^,\}]*)|#{key}:({[^,]*})|"#{key}":({[^,]*})/
283
+ #mdata = mcstr.scan pattern
284
+ mdata = Array.new
285
+ pattern.each{|line|
286
+ mdata+=mcstr.scan line
287
+ }
288
+
289
+ if index > mdata.size
290
+ return nil
291
+ else
292
+ return mdata[index-1][0]
293
+ end
294
+ end
295
+
296
+ =begin
297
+ # get the data value from the staf returned string like below:
298
+ # - staf_str
299
+ # {
300
+ # Return Code: 0
301
+ # Key : <None>
302
+ # Files : [
303
+ # {
304
+ # Return Code: 0
305
+ # Data : 10555005
306
+ # }
307
+ # ]
308
+ # }
309
+ #
310
+ # return the data value 10555005
311
+ def get_staf_data(staf_str)
312
+ staf_str.split("\n").each{|line|
313
+ mdata = line.strip.scan(/^Data.*:(.*)/)
314
+ if mdata.size > 0 then
315
+ return mdata[0][0].to_s.strip
316
+ end
317
+ }
318
+ end
319
+ =end
320
+
321
+ #=========================
322
+ #local/remote
323
+ #=========================
324
+
325
+ # ===功能
326
+ # 指定机器、文件路径的文件是否存在
327
+ # Return true if the named file exists.
328
+ # ===example
329
+ # file_exist? host, path
330
+ def file_exist? host, file_path, user=USERNAME, password=PASSWORD
331
+ if Util.is_localhost? host then
332
+ return DataHelper.file_exist? file_path
333
+ else
334
+ #lib_path = Util.get_lib_path host
335
+ #res = Util.exe_ssh_cmd! host, "cd #{lib_path} && ruby data_helper.rb file_exist? #{file_path}"
336
+ #return res.strip.chomp
337
+ res = Util.exe_ssh_cmd! host, "if [ -f #{file_path} ];then echo true; else echo false; fi", user, password
338
+ return res.strip.chomp
339
+ end
340
+ end
341
+
342
+ # ===功能
343
+ # 获取文件大小
344
+ # Returns nil if file_name doesn’t exist or has zero size, the size of the file otherwise.
345
+ # ===example
346
+ # file_size? host, filepath
347
+ def file_size? host, file_path, user=USERNAME, password=PASSWORD
348
+ if Util.is_localhost? host then
349
+ return DataHelper.file_size? file_path
350
+ else
351
+ #lib_path = Util.get_lib_path host
352
+ #res = Util.exe_ssh_cmd! host, "cd #{lib_path} && ruby data_helper.rb file_size? #{file_path}"
353
+ #return res.strip.chomp.to_i
354
+ res = Util.exe_ssh_cmd! host, "ls -l #{file_path} |awk -F\" \" '{print $5}'", user, password
355
+ return res.strip.chomp.to_i
356
+ end
357
+ end
358
+ end
359
+
360
+
361
+ if __FILE__ == $0
362
+ require 'test/unit'
363
+ require "#{File.dirname(__FILE__)}/../conf/conf"
364
+
365
+ class MyTest < Test::Unit::TestCase
366
+ include DATA
367
+ def no_test_get_mcpack_value
368
+ puts get_mcpack_value "#{TEST_ROOT}data/mcpack.data", 'pow'
369
+ puts get_mcpack_value "#{TEST_ROOT}data/mcpack.data", 'limitid'
370
+ puts get_mcpack_value "#{TEST_ROOT}data/mcpack.data", 'title'
371
+ puts get_mcpack_value "#{TEST_ROOT}data/mcpack.data", 'link'
372
+ puts get_mcpack_value "#{TEST_ROOT}data/mcpack.data", 'pow', 2
373
+ value = get_mcpack_value "#{TEST_ROOT}data/mcpack.data", 'pow', 1
374
+ puts value
375
+ puts get_mcpack_value "#{TEST_ROOT}data/mcpack.data", 'pow', 3
376
+
377
+ end
378
+ def no_test_same_file_contents
379
+ puts "111"
380
+ puts same_file_contents '/home/space/tools/app-test/search/space/module-test/case/implementor/case3/data/1.expc', '/home/space/tools/app-test/search/space/module-test/case/implementor/case3/tmp/1.recv'
381
+ end
382
+ def no_test_same_file_md5
383
+ puts "test_same_file_md5"
384
+ puts (same_file_md5 '/home/space/tools/app-test/search/space/module-test/case/implementor/case3/data/1.expc', '/home/space/tools/app-test/search/space/module-test/case/implementor/case3/tmp/1.recv')
385
+ end
386
+ def test_same_file_str
387
+ puts "test_same_file_str"
388
+ puts (same_file_str '/home/space/tools/app-test/search/space/module-test/case/implementor/case13/data/5.expc', '/home/space/tools/app-test/search/space/module-test/case/implementor/case13/tmp/5.recv')
389
+ end
390
+
391
+ end
392
+ end