rubygems-test 0.2.3 → 0.2.4
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 +7 -0
- data/Rakefile +1 -1
- data/lib/rubygems/commands/test_command.rb +37 -7
- metadata +3 -3
data/History.txt
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
=== 0.2.4 / 1/13/2011
|
2
|
+
|
3
|
+
* Better I/O loop and terminal handling; test/unit dots should appear as they
|
4
|
+
arrive again.
|
5
|
+
|
6
|
+
* Better help for those who provide no gem names.
|
7
|
+
|
1
8
|
=== 0.2.2 / 1/10/2011
|
2
9
|
|
3
10
|
* Windows + 1.8 support. Requires the 'win32-open3' gem.
|
data/Rakefile
CHANGED
@@ -209,33 +209,52 @@ class Gem::Commands::TestCommand < Gem::Command
|
|
209
209
|
output = ""
|
210
210
|
exit_status = nil
|
211
211
|
|
212
|
+
[STDOUT, STDERR, $stdout, $stderr].map { |x| x.sync = true }
|
213
|
+
|
212
214
|
Dir.chdir(spec.full_gem_path) do
|
213
215
|
reader_proc = proc do |orig_handles|
|
214
216
|
current_handles = orig_handles.dup
|
215
217
|
|
216
218
|
handles, _, _ = IO.select(current_handles, nil, nil, 0.1)
|
217
|
-
|
219
|
+
bufs = Hash.new { |h, k| h[k] = "" }
|
218
220
|
|
219
221
|
if handles
|
220
222
|
handles.compact.each do |io|
|
221
223
|
begin
|
222
|
-
|
224
|
+
bufs[io] += io.readpartial(8)
|
223
225
|
rescue EOFError
|
224
|
-
|
226
|
+
bufs[io] += io.read rescue ""
|
225
227
|
current_handles.reject! { |x| x == io }
|
226
228
|
end
|
227
229
|
end
|
228
230
|
end
|
229
231
|
|
230
|
-
[
|
232
|
+
[bufs, current_handles]
|
231
233
|
end
|
232
234
|
|
233
235
|
outer_reader_proc = proc do |stdout, stderr|
|
236
|
+
stderr_buf = ""
|
237
|
+
|
234
238
|
loop do
|
239
|
+
output = ""
|
235
240
|
handles = [stderr, stdout]
|
236
|
-
|
237
|
-
|
238
|
-
|
241
|
+
bufs, handles = reader_proc.call(handles)
|
242
|
+
|
243
|
+
# hello mom, I've rewritten unix i/o and it probably sucks.
|
244
|
+
# basically, we only "flush" stderr on newline and stdout
|
245
|
+
# "flushes" immediately. and by "flush" I mean "concatenates".
|
246
|
+
if bufs.has_key?(stderr)
|
247
|
+
stderr_buf += bufs[stderr]
|
248
|
+
buf_ary = stderr_buf.split(/\n/)
|
249
|
+
if buf_ary.length > 1
|
250
|
+
output += buf_ary[0..-2].join("\n") + "\n"
|
251
|
+
stderr_buf = buf_ary[-1]
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
output += bufs[stdout] if bufs.has_key?(stdout)
|
256
|
+
|
257
|
+
print output
|
239
258
|
break if handles.empty?
|
240
259
|
end
|
241
260
|
end
|
@@ -243,6 +262,10 @@ class Gem::Commands::TestCommand < Gem::Command
|
|
243
262
|
rake_args = [rake_path, 'test', '--trace']
|
244
263
|
|
245
264
|
# jruby stuffs it under IO, so we'll use that if it's available
|
265
|
+
# if we're on 1.9, use open3 regardless of platform.
|
266
|
+
# If we're not:
|
267
|
+
# * on windows use win32/open3 from win32-open3 gem
|
268
|
+
# * on unix use open4-vendor
|
246
269
|
klass =
|
247
270
|
if IO.respond_to?(:popen4)
|
248
271
|
IO.popen4(*rake_args) do |pid, stdin, stdout, stderr|
|
@@ -307,6 +330,13 @@ class Gem::Commands::TestCommand < Gem::Command
|
|
307
330
|
version = options[:version] || Gem::Requirement.default
|
308
331
|
|
309
332
|
(get_all_gem_names rescue [options[:name]]).each do |name|
|
333
|
+
|
334
|
+
unless name
|
335
|
+
alert_error "No gem specified."
|
336
|
+
show_help
|
337
|
+
terminate_interaction 1
|
338
|
+
end
|
339
|
+
|
310
340
|
spec = find_gem(name, version)
|
311
341
|
|
312
342
|
unless spec
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 0.2.
|
8
|
+
- 4
|
9
|
+
version: 0.2.4
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Erik Hollensbe
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-01-
|
18
|
+
date: 2011-01-13 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|