rubygems-test 0.1.6 → 0.1.7
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/lib/rubygems/commands/test_command.rb +30 -30
- data/test/helper.rb +7 -8
- data/test/test_execute.rb +3 -11
- metadata +4 -5
- data/gems/test-gem-0.0.0.gem +0 -0
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'rubygems/version_option'
|
2
|
-
require 'rubygems/source_index'
|
3
2
|
require 'rubygems/specification'
|
4
3
|
require 'rubygems/dependency_installer'
|
5
4
|
require 'rubygems/user_interaction'
|
@@ -44,13 +43,6 @@ class Gem::Commands::TestCommand < Gem::Command
|
|
44
43
|
add_version_option
|
45
44
|
end
|
46
45
|
|
47
|
-
#
|
48
|
-
# Retrieve the source index
|
49
|
-
#
|
50
|
-
def source_index
|
51
|
-
@gsi = Gem::SourceIndex.from_gems_in(*Gem::SourceIndex.installed_spec_directories)
|
52
|
-
end
|
53
|
-
|
54
46
|
#
|
55
47
|
# Get the config in our namespace
|
56
48
|
#
|
@@ -62,7 +54,7 @@ class Gem::Commands::TestCommand < Gem::Command
|
|
62
54
|
# find a gem given a name and version
|
63
55
|
#
|
64
56
|
def find_gem(name, version)
|
65
|
-
spec = source_index.find_name(name, version).last
|
57
|
+
spec = Gem.source_index.find_name(name, version).last
|
66
58
|
unless spec and (spec.installation_path rescue nil)
|
67
59
|
alert_error "Could not find gem #{name} (#{version})"
|
68
60
|
raise Gem::GemNotFoundException, "Could not find gem #{name}, (#{version})"
|
@@ -106,7 +98,7 @@ class Gem::Commands::TestCommand < Gem::Command
|
|
106
98
|
di = Gem::DependencyInstaller.new
|
107
99
|
|
108
100
|
spec.development_dependencies.each do |dep|
|
109
|
-
unless source_index.search(dep).last
|
101
|
+
unless Gem.source_index.search(dep).last
|
110
102
|
if config["install_development_dependencies"]
|
111
103
|
say "Installing test dependency #{dep.name} (#{dep.requirement})"
|
112
104
|
di.install(dep)
|
@@ -116,7 +108,7 @@ class Gem::Commands::TestCommand < Gem::Command
|
|
116
108
|
di.install(dep)
|
117
109
|
else
|
118
110
|
alert_error "Failed to install dependencies required to run tests. Aborting."
|
119
|
-
raise Gem::TestError
|
111
|
+
raise Gem::TestError, "dependencies not installed"
|
120
112
|
end
|
121
113
|
end
|
122
114
|
end
|
@@ -195,26 +187,37 @@ class Gem::Commands::TestCommand < Gem::Command
|
|
195
187
|
|
196
188
|
if spec.files.include?(".gemtest")
|
197
189
|
open_proc = proc do |pid, stdin, stdout, stderr|
|
198
|
-
|
199
|
-
if stdout.eof? and stderr.eof?
|
200
|
-
break
|
201
|
-
end
|
190
|
+
reader_proc = proc do |orig_handles|
|
202
191
|
|
203
|
-
|
192
|
+
current_handles = orig_handles.dup
|
204
193
|
|
205
|
-
handles, _, _ = IO.select(
|
194
|
+
handles, _, _ = IO.select(current_handles, nil, nil, 0.1)
|
195
|
+
buf = ""
|
206
196
|
|
207
197
|
handles.each do |io|
|
208
198
|
begin
|
209
199
|
io.readpartial(16384, buf)
|
210
|
-
rescue EOFError
|
211
|
-
|
200
|
+
rescue EOFError
|
201
|
+
buf += io.read rescue ""
|
202
|
+
current_handles.reject!(io)
|
203
|
+
rescue IOError
|
204
|
+
current_handles.reject!(io)
|
212
205
|
end
|
213
206
|
end if handles
|
214
207
|
|
215
|
-
|
208
|
+
[buf, current_handles]
|
209
|
+
end
|
216
210
|
|
217
|
-
|
211
|
+
begin
|
212
|
+
loop do
|
213
|
+
handles = [stdout, stderr]
|
214
|
+
buf, handles = reader_proc.call(handles)
|
215
|
+
output += buf
|
216
|
+
print buf
|
217
|
+
break unless handles
|
218
|
+
end
|
219
|
+
rescue StandardError
|
220
|
+
break
|
218
221
|
end
|
219
222
|
end
|
220
223
|
|
@@ -240,7 +243,7 @@ class Gem::Commands::TestCommand < Gem::Command
|
|
240
243
|
if exit_status.exitstatus != 0
|
241
244
|
alert_error "Tests did not pass. Examine the output and report it to the author!"
|
242
245
|
|
243
|
-
raise Gem::TestError, "
|
246
|
+
raise Gem::TestError, "tests failed"
|
244
247
|
end
|
245
248
|
else
|
246
249
|
alert_warning "This gem has no tests! Please contact the author to gain testing and reporting!"
|
@@ -259,7 +262,8 @@ class Gem::Commands::TestCommand < Gem::Command
|
|
259
262
|
spec = find_gem(name, version)
|
260
263
|
|
261
264
|
unless spec
|
262
|
-
say
|
265
|
+
say "unable to find gem #{name} #{version}"
|
266
|
+
next
|
263
267
|
end
|
264
268
|
|
265
269
|
if spec.files.include?('.gemtest')
|
@@ -273,13 +277,9 @@ class Gem::Commands::TestCommand < Gem::Command
|
|
273
277
|
run_tests(spec, rake_path)
|
274
278
|
end
|
275
279
|
end
|
276
|
-
rescue
|
277
|
-
if @on_install
|
278
|
-
|
279
|
-
else
|
280
|
-
say usage
|
281
|
-
terminate_interaction 1
|
282
|
-
end
|
280
|
+
rescue Gem::TestError
|
281
|
+
raise if @on_install
|
282
|
+
terminate_interaction 1
|
283
283
|
end
|
284
284
|
end
|
285
285
|
end
|
data/test/helper.rb
CHANGED
@@ -19,18 +19,17 @@ class Test::Unit::TestCase
|
|
19
19
|
path = file.path
|
20
20
|
file.close
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
FileUtils.chdir(pwd)
|
22
|
+
FileUtils.chdir('gems') do
|
23
|
+
spec = eval File.read(path)
|
24
|
+
filename = Gem::Builder.new(spec).build
|
25
|
+
Gem::Installer.new(filename).install
|
26
|
+
Gem.refresh
|
27
|
+
end
|
30
28
|
end
|
31
29
|
|
32
30
|
def uninstall_stub_gem
|
33
31
|
Gem::Uninstaller.new("test-gem").uninstall
|
32
|
+
Gem.refresh
|
34
33
|
end
|
35
34
|
|
36
35
|
def template_gemspec(hash)
|
data/test/test_execute.rb
CHANGED
@@ -21,16 +21,6 @@ class TestExecute < Test::Unit::TestCase
|
|
21
21
|
assert_equal @test.usage, "#{@test.program_name} GEM -v VERSION"
|
22
22
|
end
|
23
23
|
|
24
|
-
def test_03_source_index
|
25
|
-
install_stub_gem({ })
|
26
|
-
|
27
|
-
assert @test.source_index
|
28
|
-
assert_kind_of Array, @test.source_index.find_name("test-gem", Gem::Version.new("0.0.0"))
|
29
|
-
assert_kind_of Gem::Specification, @test.source_index.find_name("test-gem", Gem::Version.new("0.0.0")).last
|
30
|
-
|
31
|
-
uninstall_stub_gem
|
32
|
-
end
|
33
|
-
|
34
24
|
def test_04_find_gem
|
35
25
|
install_stub_gem({ })
|
36
26
|
|
@@ -38,7 +28,9 @@ class TestExecute < Test::Unit::TestCase
|
|
38
28
|
|
39
29
|
uninstall_stub_gem
|
40
30
|
|
41
|
-
assert_raises(Gem::GemNotFoundException) {
|
31
|
+
assert_raises(Gem::GemNotFoundException) {
|
32
|
+
@test.find_gem("test-gem", "0.0.0")
|
33
|
+
}
|
42
34
|
end
|
43
35
|
|
44
36
|
def test_05_find_rakefile
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubygems-test
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 7
|
10
|
+
version: 0.1.7
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Erik Hollensbe
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date:
|
19
|
+
date: 2011-01-02 00:00:00 -05:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -61,7 +61,6 @@ files:
|
|
61
61
|
- Rakefile
|
62
62
|
- gems/Rakefile
|
63
63
|
- gems/template.gemspec
|
64
|
-
- gems/test-gem-0.0.0.gem
|
65
64
|
- gems/test/test_pass.rb
|
66
65
|
- lib/open4.rb
|
67
66
|
- lib/rubygems/commands/test_command.rb
|
data/gems/test-gem-0.0.0.gem
DELETED
Binary file
|