roadrunner 4.0.3

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/test/prime.rb ADDED
@@ -0,0 +1,33 @@
1
+ # 计算素数
2
+ #rrprime.global[:size]代表计算的素数数组的长度
3
+
4
+ $:.unshift File.join(File.dirname(__FILE__),'..','lib')
5
+
6
+ require 'roadrunner'
7
+
8
+ rrprime=RoadRunner.new
9
+
10
+ rrprime.init do
11
+
12
+ # rrprime.global是一个存储全局变量的方法
13
+ # 任何数据类型都可以丢进去
14
+ # 在执行report方法时,rrprime.global中的数据会被打印到报告中
15
+ rrprime.global[:size]=1000
16
+
17
+ # users决定同时有多少并发用户一起执行action
18
+ # iterations决定每个用户执行多少次
19
+ rrprime.users,rrprime.iterations=10,100
20
+ end
21
+
22
+ rrprime.action do
23
+
24
+ # 得到素数数组
25
+ rrprime.global[:result]=(2..rrprime.global[:size]).inject([]) { |s, e| (s.map { |x| e % x }).include?(0) ? s : s << e }
26
+ end
27
+
28
+ rrprime.ended do
29
+ #rrprime.global={}
30
+ end
31
+
32
+ rrprime.run
33
+ rrprime.report
data/test/prime_p.rb ADDED
@@ -0,0 +1,36 @@
1
+ # 计算素数
2
+ #rrprime.global[:size]代表计算的素数数组的长度
3
+
4
+ $:.unshift File.join(File.dirname(__FILE__),'..','lib')
5
+
6
+ require 'roadrunner'
7
+
8
+ rrprime=RoadRunner.new
9
+
10
+ rrprime.mode='p'
11
+
12
+ rrprime.init do
13
+
14
+ # rrprime.global是一个存储全局变量的方法
15
+ # 任何数据类型都可以丢进去
16
+ # 在执行report方法时,rrprime.global中的数据会被打印到报告中
17
+ rrprime.global[:size]=1000
18
+
19
+ # users决定同时有多少并发用户一起执行action
20
+ # iterations决定每个用户执行多少次
21
+ rrprime.users,rrprime.iterations=10,100
22
+ end
23
+
24
+ rrprime.action do
25
+
26
+ # 得到素数数组
27
+ rrprime.global[:result]=(2..rrprime.global[:size]).inject([]) { |s, e| (s.map { |x| e % x }).include?(0) ? s : s << e }
28
+ end
29
+
30
+ rrprime.a{p Time.now}
31
+ rrprime.b{p Time.now}
32
+
33
+
34
+
35
+ rrprime.run
36
+ rrprime.report
data/test/test_db.rb ADDED
@@ -0,0 +1,29 @@
1
+ $:.unshift File.join(File.dirname(__FILE__),'..','lib')
2
+
3
+ require 'rubygems'
4
+ require 'roadrunner'
5
+ require 'active_record'
6
+ require 'pp'
7
+
8
+ session = {:adapter=>'sqlite3',:database=>File.join(File.dirname(__FILE__),'db','development.sqlite3')}
9
+
10
+ ActiveRecord::Base.establish_connection(
11
+ session
12
+ )
13
+
14
+ class Scenario < ActiveRecord::Base
15
+ has_many :transactions
16
+ end
17
+ class Transaction < ActiveRecord::Base
18
+ belongs_to :scenario
19
+ has_many :records
20
+ end
21
+ class Record < ActiveRecord::Base
22
+ belongs_to :transaction
23
+ end
24
+
25
+ transaction = Transaction.new({:name=>'test_transaction01'})
26
+ r1 = Record.new
27
+ transaction.records << r1
28
+ r1.save!
29
+ transaction.save!
data/test/vbd_kv.rb ADDED
@@ -0,0 +1,123 @@
1
+ require "rubygems"
2
+ require File.join(File.dirname(__FILE__),'..','lib','roadrunner')
3
+
4
+ #-----------------------------Argv prepare.--------------------------------#
5
+
6
+ def args(key)
7
+ ARGV.each_with_index do |arg, i|
8
+ return ARGV[i+1] if "-#{key}" == arg
9
+ end
10
+ nil
11
+ end
12
+
13
+ unless args('nbd')
14
+ p "[ruby ]#{$0} -nbd /dev/nbd[0-x][,/dev/nbd[0-x],/dev/nbd[0-x]]"
15
+ exit 1
16
+ end
17
+
18
+ #-----------------------------Logger prepare.--------------------------------#
19
+
20
+ $log ||= Logger.new(STDOUT)
21
+
22
+ NBD=[]
23
+
24
+ args('nbd').split(',').each do |n|
25
+ NBD <<
26
+ begin
27
+ f=File.open(n,"rb+")
28
+ f.sync=true
29
+ f
30
+ rescue Exception => e
31
+ $log.error "Can't open #{args('nbd')}!"
32
+ exit -1
33
+ end
34
+ end
35
+
36
+ #--------------------------------VBD KV integration test---------------------------------#
37
+
38
+ class ValidateError < Exception;end
39
+
40
+ class Kv_vbd
41
+ class << self
42
+ def seq_read(nbd,fs)
43
+ begin
44
+ nbd.rewind# if nbd.eof?
45
+
46
+ loop {
47
+ tmp=rand(fs/10000)
48
+ # $log.debug("seq_read:reading #{tmp} bytes from #{nbd}")
49
+ tmp=nbd.sysread(tmp)
50
+ break if nbd.eof?
51
+ }
52
+
53
+ $log.info("seq_read done.#{fs} bytes read #{nbd}.")
54
+ rescue Exception => e
55
+ $log.error("#{nbd} read error!")
56
+ end
57
+ validate(nbd,fs)
58
+ end
59
+
60
+ def seq_write(nbd,fs)
61
+ begin
62
+ nbd.rewind# if nbd.eof?
63
+
64
+ bs=100
65
+
66
+ $log.debug("seq_read:writing #{bs} bytes into #{nbd}")
67
+
68
+ fs/bs.times {
69
+ nbd.syswrite('x'*bs)
70
+ }
71
+
72
+ signature(nbd,fs)
73
+
74
+ $log.info("seq_write done.#{fs} bytes write into #{nbd}.")
75
+ rescue Exception => e
76
+ $log.error("#{nbd} write error!")
77
+ end
78
+
79
+ end
80
+
81
+ def signature(nbd,fs)
82
+ nbd.seek(10, IO::SEEK_END)
83
+ nbd.syswrite('c')
84
+
85
+ nbd.seek(-10, IO::SEEK_END)
86
+ nbd.syswrite('c')
87
+ end
88
+
89
+ def validate(nbd,fs)
90
+ nbd.seek(10, IO::SEEK_END)
91
+ unless nbd.sysread(1) == 'c'
92
+ raise ValidateError,"expect File.seek(10, IO::SEEK_END) => 'c',actually get #{tmp}."
93
+ end
94
+
95
+ nbd.seek(rand(fs))
96
+ unless nbd.sysread(1) == 'x'
97
+ raise ValidateError,"expect File.seek(rand(fs)) => 'x',actually get #{tmp}."
98
+ end
99
+
100
+ nbd.seek(-10, IO::SEEK_END)
101
+ unless nbd.sysread(1) == 'c'
102
+ raise ValidateError,"expect File.seek(-10, IO::SEEK_END) => 'c',actually get #{tmp}."
103
+ end
104
+ end
105
+
106
+ end
107
+ end
108
+
109
+
110
+ rr=RoadRunner.new
111
+ rr.mode,rr.users,rr.iterations='p',NBD.size,1
112
+
113
+ ['seq_read','seq_write'].each_with_index{|s,i|
114
+ ts_proc=proc{
115
+ Kv_vbd.send(s,NBD[rr.userId],File.size(NBD[rr.userId]))
116
+ }
117
+ rr.send(s,&ts_proc)
118
+ }
119
+
120
+ NBD.close
121
+
122
+ rr.run
123
+ rr.report
metadata ADDED
@@ -0,0 +1,100 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: roadrunner
3
+ version: !ruby/object:Gem::Version
4
+ version: 4.0.3
5
+ platform: ruby
6
+ authors:
7
+ - Charles Cui
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-04-22 00:00:00 +08:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: roadrunner
17
+ email: zheng.cuizh@gmail.com
18
+ executables:
19
+ - controller.rb
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README
24
+ - LICENSE
25
+ files:
26
+ - LICENSE
27
+ - README
28
+ - Rakefile
29
+ - bin/controller.rb
30
+ - bin/hostmgr.rb
31
+ - bin/nbd_prepare.sh
32
+ - lib/action.rb
33
+ - lib/db.rb
34
+ - lib/ended.rb
35
+ - lib/init.rb
36
+ - lib/model.rb
37
+ - lib/report.rb
38
+ - lib/roadrunner.rb
39
+ - lib/rrhelper.rb
40
+ - lib/rrmonitor.rb
41
+ - lib/run.rb
42
+ - conf/servers.yaml
43
+ - controller/dd.sh
44
+ - controller/ioperf.rb
45
+ - controller/mysql.rb
46
+ - controller/mysql.sh
47
+ - controller/svn.sh
48
+ - controller/wrap.rb
49
+ - log/dd.log
50
+ - log/log.rb
51
+ - log/stdout.log
52
+ - log/stdout.log.20100421
53
+ - log/svn.log
54
+ - test/baidu.rb
55
+ - test/blog.rb
56
+ - test/db/development.sqlite3
57
+ - test/download_processes.rb
58
+ - test/fibonacci.rb
59
+ - test/get163.rb
60
+ - test/get19Lou.rb
61
+ - test/getHawaii.rb
62
+ - test/httpclient-rfuzz-vs-httparty.rb
63
+ - test/mysql_processes.rb
64
+ - test/pi.rb
65
+ - test/pi_db.rb
66
+ - test/pi_monitor.rb
67
+ - test/prime.rb
68
+ - test/prime_p.rb
69
+ - test/test_db.rb
70
+ - test/vbd_kv.rb
71
+ has_rdoc: true
72
+ homepage:
73
+ licenses: []
74
+
75
+ post_install_message:
76
+ rdoc_options: []
77
+
78
+ require_paths:
79
+ - lib
80
+ required_ruby_version: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: "0"
85
+ version:
86
+ required_rubygems_version: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: "0"
91
+ version:
92
+ requirements: []
93
+
94
+ rubyforge_project:
95
+ rubygems_version: 1.3.5
96
+ signing_key:
97
+ specification_version: 3
98
+ summary: roadrunner
99
+ test_files: []
100
+