Hi Eric.

On 12/22/06, Eric Hodel <[EMAIL PROTECTED]> wrote:

On Dec 21, 2006, at 03:05, Anatol Pomozov wrote:
> On 12/20/06, Cerberus < [EMAIL PROTECTED]> wrote:
>   1) Failure:
> test_class_build_fail(TestGemExtRakeBuilder) [./test/
> test_gem_ext_rake_builder.rb:46]:
> <Gem::InstallError> exception expected but none was thrown.
>
> As I see RubyGems could not correctly define that Rake finished
> with error
> This is what RubyGems do
>       unless $?.exitstatus.zero? then
>         raise Gem::InstallError, "#{class_name} failed:\n\n#
> { results.join "\n"}"
>       end
>
> But Rake finishes with return code == 0 on windows even if some
> error present. I dunno why, better to ask Rake developers.

What does this script print?

system 'ruby -e "raise"'
p $?

I get:

$ ruby -ve test.rb
ruby 1.8.5 (2006-12-04 patchlevel 2) [i686-darwin8.8.2]
-e:1: unhandled exception
#<Process::Status: pid=28805,exited(1)>
$

I get following output
-e:1: unhandled exception
#<Process::Status: pid=5428,exited(1)>

But if I create file Rakefile with following content (as in test)
task :extension do abort 'fail' end

and try to invoke it (as in RubyGems code)

`rake.bat extension`
p $?

I would get following output

C:\work\opensource\ruby\rubygems\~my>rake-error-outstatus.rb
fail
#<Process::Status: pid=7788,exited(0)>

So as you see `rake` returns us zero exitcode even if we have failure during
Rake execution.

It is Windows. What do you have under *nix?

Anyway this is how I define that rake finished with error in Cerberus.
>
>   def successful?
>     $?.exitstatus == 0 and not @output.include?("rake aborted!")
>   end
>
> I dont think that it is very elegant (what if user would print this
> message from Rake code) but it works both on Windoze and *nix.
>
> Any comments on this subject?
>
>   2) Failure:
> test_source_index_hash(TestRemoteInstaller) [./test/
> test_remote_installer.rb:87]:
> <1> expected but was
> <6>.
>
> puts source_hash
>
> gives me following output
>
> http://gems.rubyforge.org#<Gem::SourceIndex:0x788f3b8> http://
> onestepback.org/betagems#<Gem::SourceIndex:0x63184f0>
> code.whytheluckystiff.net#<Gem::SourceIndex:0x63085d8>http://
> gems.example.com#<Gem::SourceIndex:0x788f7c0> http://
> gems.rubyonrails.org# <Gem::SourceIndex:0x62db140>
>
> looks like test uses also my own gem-repositories (not only http://
> gems.example.com )

I think I fixed this one, I was reseting the carefully set up gem
paths back to the system ones.

If you install the session plugin we'll see...

--
anatol (http://feeds.feedburner.com/apomozov-eng)
_______________________________________________
Rubygems-developers mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rubygems-developers

Reply via email to