ZenTest 3.9.3 → 3.10.0
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/History.txt +17 -0
- data/Manifest.txt +3 -0
- data/README.txt +3 -1
- data/bin/multiruby +5 -99
- data/bin/multiruby_setup +49 -0
- data/lib/autotest/once.rb +9 -0
- data/lib/multiruby.rb +303 -0
- data/lib/zentest.rb +1 -1
- data/test/test_zentest.rb +5 -0
- data/test/test_zentest_mapping.rb +10 -6
- metadata +7 -3
data/History.txt
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
=== 3.10.0 / 2008-06-17
|
2
|
+
|
3
|
+
* 1 major enhancement:
|
4
|
+
|
5
|
+
* Added multiruby_setup to help manage multiruby installed versions.
|
6
|
+
|
7
|
+
* 3 minor enhancements:
|
8
|
+
|
9
|
+
* Added autotest/once plugin to help plugin developers.
|
10
|
+
* Heavily refactored multiruby.
|
11
|
+
* Switched rubinius from shotgun/rubinius to bin/rbx, finally.
|
12
|
+
|
13
|
+
* 2 bug fixes:
|
14
|
+
|
15
|
+
* Refactored zentest_mapping test to avoid zentest altogether.
|
16
|
+
* zentest tests bail gracefully for rubinius.
|
17
|
+
|
1
18
|
=== 3.9.3 / 2008-06-09
|
2
19
|
|
3
20
|
* 12 minor enhancements:
|
data/Manifest.txt
CHANGED
@@ -7,6 +7,7 @@ articles/getting_started_with_autotest.html
|
|
7
7
|
articles/how_to_use_zentest.txt
|
8
8
|
bin/autotest
|
9
9
|
bin/multiruby
|
10
|
+
bin/multiruby_setup
|
10
11
|
bin/rails_test_audit
|
11
12
|
bin/unit_diff
|
12
13
|
bin/zentest
|
@@ -30,6 +31,7 @@ lib/autotest/kdenotify.rb
|
|
30
31
|
lib/autotest/menu.rb
|
31
32
|
lib/autotest/migrate.rb
|
32
33
|
lib/autotest/notify.rb
|
34
|
+
lib/autotest/once.rb
|
33
35
|
lib/autotest/pretty.rb
|
34
36
|
lib/autotest/rails.rb
|
35
37
|
lib/autotest/rcov.rb
|
@@ -39,6 +41,7 @@ lib/autotest/shame.rb
|
|
39
41
|
lib/autotest/snarl.rb
|
40
42
|
lib/autotest/timestamp.rb
|
41
43
|
lib/functional_test_matrix.rb
|
44
|
+
lib/multiruby.rb
|
42
45
|
lib/test/rails.rb
|
43
46
|
lib/test/rails/controller_test_case.rb
|
44
47
|
lib/test/rails/functional_test_case.rb
|
data/README.txt
CHANGED
@@ -21,7 +21,8 @@ development. As soon as you save a file, autotest will run the
|
|
21
21
|
corresponding dependent tests.
|
22
22
|
|
23
23
|
multiruby runs anything you want on multiple versions of ruby. Great
|
24
|
-
for compatibility checking!
|
24
|
+
for compatibility checking! Use multiruby_setup to manage your
|
25
|
+
installed versions.
|
25
26
|
|
26
27
|
Test::Rails helps you build industrial-strength Rails code.
|
27
28
|
|
@@ -58,6 +59,7 @@ implementation.
|
|
58
59
|
|
59
60
|
autotest
|
60
61
|
|
62
|
+
multiruby_setup mri:svn:current
|
61
63
|
multiruby ./TestMyProject.rb
|
62
64
|
|
63
65
|
(and other stuff for Test::Rails)
|
data/bin/multiruby
CHANGED
@@ -1,104 +1,9 @@
|
|
1
1
|
#!/usr/bin/env ruby -w
|
2
2
|
|
3
|
-
require '
|
4
|
-
|
5
|
-
def run(cmd)
|
6
|
-
puts "Running command: #{cmd}"
|
7
|
-
raise "ERROR: Command failed with exit code #{$?}" unless system cmd
|
8
|
-
end
|
9
|
-
|
10
|
-
def extract_latest_version url
|
11
|
-
file = URI.parse(url).read
|
12
|
-
versions = file.scan(/href="(ruby.*tar.gz)"/).flatten.reject { |s|
|
13
|
-
s =~ /preview/
|
14
|
-
}.sort_by { |s|
|
15
|
-
s.split(/\D+/).map { |i| i.to_i }
|
16
|
-
}.flatten.last
|
17
|
-
end
|
18
|
-
|
19
|
-
root_dir = File.expand_path(ENV['MULTIRUBY'] ||
|
20
|
-
File.join(ENV['HOME'], ".multiruby"))
|
21
|
-
|
22
|
-
unless test ?d, root_dir then
|
23
|
-
puts "creating #{root_dir}"
|
24
|
-
Dir.mkdir root_dir, 0700
|
25
|
-
end
|
26
|
-
|
27
|
-
versions = []
|
28
|
-
Dir.chdir root_dir do
|
29
|
-
%w(build install versions).each do |dir|
|
30
|
-
unless test ?d, dir then
|
31
|
-
puts "creating #{dir}"
|
32
|
-
Dir.mkdir dir
|
33
|
-
if dir == "versions" then
|
34
|
-
warn " Downloading initial ruby tarballs to ~/.multiruby/versions:"
|
35
|
-
Dir.chdir dir do
|
36
|
-
require 'open-uri'
|
37
|
-
base_url = "http://ftp.ruby-lang.org/pub/ruby"
|
38
|
-
|
39
|
-
%w(1.8 1.9).each do |v|
|
40
|
-
warn " Determining latest version for #{v}"
|
41
|
-
base = extract_latest_version("#{base_url}/#{v}/")
|
42
|
-
url = File.join base_url, v, base
|
43
|
-
warn " Fetching #{base} via HTTP... this might take a while."
|
44
|
-
open(url) do |f|
|
45
|
-
File.open base, 'w' do |out|
|
46
|
-
out.write f.read
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
warn " ...done"
|
52
|
-
warn " Put other ruby tarballs in ~/.multiruby/versions to use them."
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
tarballs = Dir["versions/rubygems*.tgz"]
|
58
|
-
raise "You should delete all but one rubygem tarball" if tarballs.size > 1
|
59
|
-
rubygem_tarball = File.expand_path tarballs.last rescue nil
|
60
|
-
|
61
|
-
Dir.chdir "build" do
|
62
|
-
Dir["../versions/ruby*.tar.gz"].each do |tarball|
|
63
|
-
next if tarball =~ /rubygems/
|
64
|
-
build_dir = File.basename tarball, ".tar.gz"
|
65
|
-
version = build_dir.sub(/^ruby-?/, '')
|
66
|
-
versions << version
|
67
|
-
inst_dir = "#{root_dir}/install/#{version}"
|
68
|
-
unless test ?d, inst_dir then
|
69
|
-
unless test ?d, build_dir then
|
70
|
-
puts "creating #{inst_dir}"
|
71
|
-
Dir.mkdir inst_dir
|
72
|
-
run "tar zxf #{tarball}"
|
73
|
-
end
|
74
|
-
Dir.chdir build_dir do
|
75
|
-
puts "building and installing #{version}"
|
76
|
-
run "autoconf" unless test ?f, "configure"
|
77
|
-
FileUtils.rm_r "ext/readline" if test ?d, "ext/readline"
|
78
|
-
run "./configure --prefix #{inst_dir} &> log.configure" unless test ?f, "Makefile"
|
79
|
-
run "nice make -j4 &> log.build"
|
80
|
-
run "make install &> log.install"
|
81
|
-
build_dir = Dir.pwd
|
82
|
-
|
83
|
-
if rubygem_tarball and version !~ /1[._-]9/ then
|
84
|
-
rubygems = File.basename rubygem_tarball, ".tgz"
|
85
|
-
run "tar zxf #{rubygem_tarball}" unless test ?d, rubygems
|
86
|
-
|
87
|
-
Dir.chdir rubygems do
|
88
|
-
run "../ruby ./setup.rb &> ../log.rubygems"
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
# pick up rubinius - allows for simple symlinks to your build dir
|
97
|
-
Dir.chdir('install') do
|
98
|
-
versions.push(*Dir["rubinius*"])
|
99
|
-
end
|
100
|
-
end
|
3
|
+
require 'multiruby'
|
101
4
|
|
5
|
+
root_dir = Multiruby.root_dir
|
6
|
+
versions = Multiruby.build_and_install
|
102
7
|
versions = ENV['VERSIONS'].split(/:/) if ENV.has_key? 'VERSIONS'
|
103
8
|
|
104
9
|
if ENV.has_key? 'EXCLUDED_VERSIONS' then
|
@@ -109,7 +14,8 @@ end
|
|
109
14
|
results = {}
|
110
15
|
versions.each do |version|
|
111
16
|
ruby = "#{root_dir}/install/#{version}/bin/ruby"
|
112
|
-
|
17
|
+
|
18
|
+
ruby.sub!(/bin.ruby/, 'bin/rbx') if version =~ /rubinius/
|
113
19
|
|
114
20
|
puts
|
115
21
|
puts "VERSION = #{version}"
|
data/bin/multiruby_setup
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
#!/usr/bin/env ruby -w
|
2
|
+
|
3
|
+
require 'multiruby'
|
4
|
+
|
5
|
+
ARGV << "help" if ARGV.empty?
|
6
|
+
|
7
|
+
ARGV.each do |spec|
|
8
|
+
case spec
|
9
|
+
when "-h", "help" then
|
10
|
+
Multiruby.help
|
11
|
+
when "list" then
|
12
|
+
Multiruby.list
|
13
|
+
when /rm:(.*)/ then
|
14
|
+
Multiruby.rm $1
|
15
|
+
when "clean" then
|
16
|
+
Multiruby.clean
|
17
|
+
when "update" then
|
18
|
+
Multiruby.update
|
19
|
+
when "update:rubygems" then
|
20
|
+
Multiruby.update_rubygems
|
21
|
+
when "mri:svn:current" then
|
22
|
+
ARGV << "mri:svn:releases" << "mri:svn:branches"
|
23
|
+
when "mri:svn:releases" then
|
24
|
+
Multiruby::TAGS.each do |v|
|
25
|
+
ARGV << "mri:svn:#{v}"
|
26
|
+
end
|
27
|
+
when "mri:svn:branches" then
|
28
|
+
Multiruby::BRANCHES.each do |v|
|
29
|
+
ARGV << "mri:svn:#{v}"
|
30
|
+
end
|
31
|
+
when /mri:svn:branch:(.*)/ then
|
32
|
+
ver = $1
|
33
|
+
ver = "branches/ruby_#{ver}" unless ver == "trunk"
|
34
|
+
|
35
|
+
Multiruby.svn_co "#{Multiruby::MRI_SVN}/#{ver}", "mri_#{ver}"
|
36
|
+
when /mri:svn:tag:(.*)/ then
|
37
|
+
ver = $1
|
38
|
+
latest = Multiruby.tags.grep(/#{ver}/).last
|
39
|
+
|
40
|
+
Multiruby.svn_co "#{Multiruby::MRI_SVN}/tags/#{latest}", "mri_rel_#{ver}"
|
41
|
+
when /mri:tar:(.*)/ then
|
42
|
+
v = $1
|
43
|
+
Multiruby.fetch_tar v
|
44
|
+
else
|
45
|
+
warn "unknown spec #{spec}"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
Multiruby.build_and_install
|
data/lib/multiruby.rb
ADDED
@@ -0,0 +1,303 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'open-uri'
|
3
|
+
|
4
|
+
##
|
5
|
+
# multiruby_setup is a script to help you manage multiruby.
|
6
|
+
#
|
7
|
+
# usage: multiruby_setup [-h|cmd|spec...]
|
8
|
+
#
|
9
|
+
# cmds:
|
10
|
+
#
|
11
|
+
# h, help - show this help.
|
12
|
+
# list - print installed versions.
|
13
|
+
# update - update svn builds.
|
14
|
+
# update:rubygems - update rubygems and nuke install dirs.
|
15
|
+
# rm:$version - remove a particular version.
|
16
|
+
# clean - clean scm build dirs and remove non-scm build dirs.
|
17
|
+
#
|
18
|
+
# specs:
|
19
|
+
#
|
20
|
+
# mri:svn:current - alias for mri:svn:releases and mri:svn:branches.
|
21
|
+
# mri:svn:releases - alias for supported releases of mri ruby.
|
22
|
+
# mri:svn:branches - alias for active branches of mri ruby.
|
23
|
+
# mri:svn:branch:$branch - install a specific $branch of mri from svn.
|
24
|
+
# mri:svn:tag:$tag - install a specific $tag of mri from svn.
|
25
|
+
# mri:tar:$version - install a specific $version of mri from tarball.
|
26
|
+
#
|
27
|
+
# NOTES:
|
28
|
+
#
|
29
|
+
# * you can add a symlink to your rubinius build into ~/.multiruby/install
|
30
|
+
# * I'll get to adding support for other implementations soon.
|
31
|
+
#
|
32
|
+
module Multiruby
|
33
|
+
MRI_SVN = "http://svn.ruby-lang.org/repos/ruby"
|
34
|
+
TAGS = %w( 1_8_6 1_8_7 1_9 ).map { |v| "tag:#{v}" }
|
35
|
+
BRANCHES = %w(1_8 1_8_6 1_8_7 trunk).map { |v| "branch:#{v}" }
|
36
|
+
|
37
|
+
def self.build_and_install
|
38
|
+
root_dir = self.root_dir
|
39
|
+
versions = []
|
40
|
+
|
41
|
+
Dir.chdir root_dir do
|
42
|
+
self.setup_dirs
|
43
|
+
|
44
|
+
rubygems = Dir["versions/rubygems*.tgz"]
|
45
|
+
abort "You should delete all but one rubygem tarball" if rubygems.size > 1
|
46
|
+
rubygem_tarball = File.expand_path rubygems.last rescue nil
|
47
|
+
|
48
|
+
Dir.chdir "build" do
|
49
|
+
Dir["../versions/*"].each do |tarball|
|
50
|
+
next if tarball =~ /rubygems/
|
51
|
+
|
52
|
+
build_dir = File.basename tarball, ".tar.gz"
|
53
|
+
version = build_dir.sub(/^ruby-?/, '')
|
54
|
+
versions << version
|
55
|
+
inst_dir = "#{root_dir}/install/#{version}"
|
56
|
+
|
57
|
+
unless test ?d, inst_dir then
|
58
|
+
unless test ?d, build_dir then
|
59
|
+
puts "creating #{inst_dir}"
|
60
|
+
Dir.mkdir inst_dir
|
61
|
+
run "tar zxf #{tarball}"
|
62
|
+
end
|
63
|
+
Dir.chdir build_dir do
|
64
|
+
puts "building and installing #{version}"
|
65
|
+
run "autoconf" unless test ?f, "configure"
|
66
|
+
FileUtils.rm_r "ext/readline" if test ?d, "ext/readline"
|
67
|
+
run "./configure --prefix #{inst_dir} &> log.configure" unless test ?f, "Makefile"
|
68
|
+
run "nice make -j4 &> log.build"
|
69
|
+
run "make install &> log.install"
|
70
|
+
build_dir = Dir.pwd
|
71
|
+
|
72
|
+
if rubygem_tarball and version !~ /1[._-]9|trunk/ then
|
73
|
+
rubygems = File.basename rubygem_tarball, ".tgz"
|
74
|
+
run "tar zxf #{rubygem_tarball}" unless test ?d, rubygems
|
75
|
+
|
76
|
+
Dir.chdir rubygems do
|
77
|
+
run "../ruby ./setup.rb --no-rdoc --no-ri &> ../log.rubygems"
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
# pick up rubinius - allows for simple symlinks to your build dir
|
86
|
+
self.in_install_dir do
|
87
|
+
versions.push(*Dir["rubinius*"])
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
versions
|
92
|
+
end
|
93
|
+
|
94
|
+
def self.clean
|
95
|
+
self.each_scm_build_dir do |style|
|
96
|
+
case style
|
97
|
+
when :svn, :git then
|
98
|
+
if File.exist? "Makefile" then
|
99
|
+
system "make clean"
|
100
|
+
elsif File.exist? "Rakefile" then
|
101
|
+
system "rake clean"
|
102
|
+
end
|
103
|
+
else
|
104
|
+
FileUtils.rm_rf Dir.pwd
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
def self.each_scm_build_dir
|
110
|
+
Multiruby.in_build_dir do
|
111
|
+
Dir["*"].each do |dir|
|
112
|
+
next unless File.directory? dir
|
113
|
+
Dir.chdir dir do
|
114
|
+
if File.exist?(".svn") || File.exist?(".git") then
|
115
|
+
scm = File.exist?(".svn") ? :svn : :git
|
116
|
+
yield scm
|
117
|
+
else
|
118
|
+
yield :none
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
def self.extract_latest_version url
|
126
|
+
file = URI.parse(url).read
|
127
|
+
versions = file.scan(/href="(ruby.*tar.gz)"/).flatten.reject { |s|
|
128
|
+
s =~ /preview/
|
129
|
+
}.sort_by { |s|
|
130
|
+
s.split(/\D+/).map { |i| i.to_i }
|
131
|
+
}.flatten.last
|
132
|
+
end
|
133
|
+
|
134
|
+
def self.fetch_tar v
|
135
|
+
require 'open-uri'
|
136
|
+
base_url = "http://ftp.ruby-lang.org/pub/ruby"
|
137
|
+
|
138
|
+
in_versions_dir do
|
139
|
+
warn " Determining latest version for #{v}"
|
140
|
+
base = extract_latest_version("#{base_url}/#{v}/")
|
141
|
+
url = File.join base_url, v, base
|
142
|
+
warn " Fetching #{base} via HTTP... this might take a while."
|
143
|
+
open(url) do |f|
|
144
|
+
File.open base, 'w' do |out|
|
145
|
+
out.write f.read
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
def self.help
|
152
|
+
File.readlines(__FILE__).each do |line|
|
153
|
+
next unless line =~ /^#( |$)/
|
154
|
+
puts line.sub(/^# ?/, '')
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
def self.in_build_dir
|
159
|
+
Dir.chdir File.join(self.root_dir, "build") do
|
160
|
+
yield
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
def self.in_install_dir
|
165
|
+
Dir.chdir File.join(self.root_dir, "install") do
|
166
|
+
yield
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
def self.in_root_dir
|
171
|
+
Dir.chdir self.root_dir do
|
172
|
+
yield
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
def self.in_tmp_dir
|
177
|
+
Dir.chdir File.join(self.root_dir, "tmp") do
|
178
|
+
yield
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
182
|
+
def self.in_versions_dir
|
183
|
+
Dir.chdir File.join(self.root_dir, "versions") do
|
184
|
+
yield
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
def self.list
|
189
|
+
puts "Known versions:"
|
190
|
+
in_install_dir do
|
191
|
+
Dir["*"].sort.each do |d|
|
192
|
+
puts " #{d}"
|
193
|
+
end
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
def self.rm name
|
198
|
+
Multiruby.in_root_dir do
|
199
|
+
FileUtils.rm_rf Dir["*/#{name}"]
|
200
|
+
File.unlink "versions/ruby-#{name}.tar.gz"
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
204
|
+
def self.root_dir
|
205
|
+
root_dir = File.expand_path(ENV['MULTIRUBY'] ||
|
206
|
+
File.join(ENV['HOME'], ".multiruby"))
|
207
|
+
|
208
|
+
unless test ?d, root_dir then
|
209
|
+
puts "creating #{root_dir}"
|
210
|
+
Dir.mkdir root_dir, 0700
|
211
|
+
end
|
212
|
+
|
213
|
+
root_dir
|
214
|
+
end
|
215
|
+
|
216
|
+
def self.run(cmd)
|
217
|
+
puts "Running command: #{cmd}"
|
218
|
+
raise "ERROR: Command failed with exit code #{$?}" unless system cmd
|
219
|
+
end
|
220
|
+
|
221
|
+
def self.setup_dirs
|
222
|
+
%w(build install versions tmp).each do |dir|
|
223
|
+
unless test ?d, dir then
|
224
|
+
puts "creating #{dir}"
|
225
|
+
Dir.mkdir dir
|
226
|
+
if dir == "versions" then
|
227
|
+
warn " Downloading initial ruby tarballs to ~/.multiruby/versions:"
|
228
|
+
%w(1.8 1.9).each do |v|
|
229
|
+
self.fetch_tar v
|
230
|
+
end
|
231
|
+
warn " ...done"
|
232
|
+
warn " Put other ruby tarballs in ~/.multiruby/versions to use them."
|
233
|
+
end
|
234
|
+
end
|
235
|
+
end
|
236
|
+
end
|
237
|
+
|
238
|
+
def self.svn_co url, dir
|
239
|
+
Multiruby.in_versions_dir do
|
240
|
+
Multiruby.run "svn co #{url} #{dir}" unless File.directory? dir
|
241
|
+
FileUtils.ln_s "../versions/#{dir}", "../build/#{dir}"
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
245
|
+
def self.tags
|
246
|
+
tags = nil
|
247
|
+
Multiruby.in_tmp_dir do
|
248
|
+
cache = "svn.tag.cache"
|
249
|
+
File.unlink cache if Time.now - File.mtime(cache) > 86400 rescue nil
|
250
|
+
|
251
|
+
File.open cache, "w" do |f|
|
252
|
+
f.write `svn ls #{MRI_SVN}/tags/`
|
253
|
+
end unless File.exist? cache
|
254
|
+
|
255
|
+
tags = File.read(cache).split(/\n/).grep(/^v/).reject {|s| s =~ /preview/}
|
256
|
+
end
|
257
|
+
|
258
|
+
tags = tags.sort_by { |s| s.scan(/\d+/).map { |s| s.to_i } }
|
259
|
+
end
|
260
|
+
|
261
|
+
def self.update
|
262
|
+
# TODO:
|
263
|
+
# update will look at the dir name and act accordingly rel_.* will
|
264
|
+
# figure out latest tag on that name and svn sw to it trunk and
|
265
|
+
# others will just svn update
|
266
|
+
|
267
|
+
self.each_scm_build_dir do |style|
|
268
|
+
case style
|
269
|
+
when :svn then
|
270
|
+
dir = File.basename(Dir.pwd)
|
271
|
+
warn dir
|
272
|
+
case dir
|
273
|
+
when /mri_\d/ then
|
274
|
+
system "svn cleanup" # just in case
|
275
|
+
FileUtils.rm_rf "../install/#{dir}" if `svn up` =~ /^[ADUCG] /
|
276
|
+
when /tag/
|
277
|
+
warn "don't know how to update tags: #{dir}"
|
278
|
+
# url = `svn info`[/^URL: (.*)/, 1]
|
279
|
+
else
|
280
|
+
warn "don't know how to update: #{dir}"
|
281
|
+
end
|
282
|
+
else
|
283
|
+
warn "update in non-svn dir not supported yet: #{dir}"
|
284
|
+
end
|
285
|
+
end
|
286
|
+
end
|
287
|
+
|
288
|
+
def self.update_rubygems
|
289
|
+
url = "http://files.rubyforge.rubyuser.de/rubygems/"
|
290
|
+
html = URI.parse(url).read
|
291
|
+
|
292
|
+
versions = html.scan(/href="rubygems-update-(\d+(?:\.\d+)+).gem/).flatten
|
293
|
+
latest = versions.sort_by { |s| s.scan(/\d+/).map { |s| s.to_i } }.last
|
294
|
+
|
295
|
+
Multiruby.in_versions_dir do
|
296
|
+
File.unlink(*Dir["rubygems*"])
|
297
|
+
file = "rubygems-#{latest}.tgz"
|
298
|
+
File.open file, 'w' do |f|
|
299
|
+
f.write URI.parse(url+file).read
|
300
|
+
end
|
301
|
+
end
|
302
|
+
end
|
303
|
+
end
|
data/lib/zentest.rb
CHANGED
data/test/test_zentest.rb
CHANGED
@@ -2,16 +2,20 @@ require 'test/unit' unless defined? $ZENTEST and $ZENTEST
|
|
2
2
|
|
3
3
|
$TESTING = true
|
4
4
|
|
5
|
-
|
6
|
-
|
5
|
+
require 'zentest_mapping' unless defined? $ZENTEST
|
6
|
+
|
7
|
+
class Dummy
|
8
|
+
attr_accessor :inherited_methods
|
9
|
+
include ZenTestMapping
|
10
|
+
end
|
7
11
|
|
8
12
|
class TestZentestMapping < Test::Unit::TestCase
|
9
13
|
def setup
|
10
|
-
@tester =
|
14
|
+
@tester = Dummy.new
|
11
15
|
end
|
12
16
|
|
13
17
|
def util_simple_setup
|
14
|
-
|
18
|
+
klasses = {
|
15
19
|
"Something" =>
|
16
20
|
{
|
17
21
|
"method1" => true,
|
@@ -25,7 +29,7 @@ class TestZentestMapping < Test::Unit::TestCase
|
|
25
29
|
"self.[]" => true,
|
26
30
|
},
|
27
31
|
}
|
28
|
-
|
32
|
+
test_klasses = {
|
29
33
|
"TestSomething" =>
|
30
34
|
{
|
31
35
|
"test_class_method4" => true,
|
@@ -35,7 +39,7 @@ class TestZentestMapping < Test::Unit::TestCase
|
|
35
39
|
"test_class_index" => true,
|
36
40
|
},
|
37
41
|
}
|
38
|
-
@tester.inherited_methods =
|
42
|
+
@tester.inherited_methods = test_klasses.merge(klasses)
|
39
43
|
@generated_code = "
|
40
44
|
require 'test/unit' unless defined? $ZENTEST and $ZENTEST
|
41
45
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ZenTest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2008-06-
|
13
|
+
date: 2008-06-17 00:00:00 -07:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -22,13 +22,14 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 1.5.3
|
24
24
|
version:
|
25
|
-
description: "ZenTest provides 4 different tools and 1 library: zentest, unit_diff, autotest, multiruby, and Test::Rails. ZenTest scans your target and unit-test code and writes your missing code based on simple naming rules, enabling XP at a much quicker pace. ZenTest only works with Ruby and Test::Unit. unit_diff is a command-line filter to diff expected results from actual results and allow you to quickly see exactly what is wrong. autotest is a continous testing facility meant to be used during development. As soon as you save a file, autotest will run the corresponding dependent tests. multiruby runs anything you want on multiple versions of ruby. Great for compatibility checking! Test::Rails helps you build industrial-strength Rails code."
|
25
|
+
description: "ZenTest provides 4 different tools and 1 library: zentest, unit_diff, autotest, multiruby, and Test::Rails. ZenTest scans your target and unit-test code and writes your missing code based on simple naming rules, enabling XP at a much quicker pace. ZenTest only works with Ruby and Test::Unit. unit_diff is a command-line filter to diff expected results from actual results and allow you to quickly see exactly what is wrong. autotest is a continous testing facility meant to be used during development. As soon as you save a file, autotest will run the corresponding dependent tests. multiruby runs anything you want on multiple versions of ruby. Great for compatibility checking! Use multiruby_setup to manage your installed versions. Test::Rails helps you build industrial-strength Rails code."
|
26
26
|
email:
|
27
27
|
- ryand-ruby@zenspider.com
|
28
28
|
- drbrain@segment7.net
|
29
29
|
executables:
|
30
30
|
- autotest
|
31
31
|
- multiruby
|
32
|
+
- multiruby_setup
|
32
33
|
- rails_test_audit
|
33
34
|
- unit_diff
|
34
35
|
- zentest
|
@@ -50,6 +51,7 @@ files:
|
|
50
51
|
- articles/how_to_use_zentest.txt
|
51
52
|
- bin/autotest
|
52
53
|
- bin/multiruby
|
54
|
+
- bin/multiruby_setup
|
53
55
|
- bin/rails_test_audit
|
54
56
|
- bin/unit_diff
|
55
57
|
- bin/zentest
|
@@ -73,6 +75,7 @@ files:
|
|
73
75
|
- lib/autotest/menu.rb
|
74
76
|
- lib/autotest/migrate.rb
|
75
77
|
- lib/autotest/notify.rb
|
78
|
+
- lib/autotest/once.rb
|
76
79
|
- lib/autotest/pretty.rb
|
77
80
|
- lib/autotest/rails.rb
|
78
81
|
- lib/autotest/rcov.rb
|
@@ -82,6 +85,7 @@ files:
|
|
82
85
|
- lib/autotest/snarl.rb
|
83
86
|
- lib/autotest/timestamp.rb
|
84
87
|
- lib/functional_test_matrix.rb
|
88
|
+
- lib/multiruby.rb
|
85
89
|
- lib/test/rails.rb
|
86
90
|
- lib/test/rails/controller_test_case.rb
|
87
91
|
- lib/test/rails/functional_test_case.rb
|