A failure that escapes my comprehension

Luis Lavena luislavena at gmail.com
Tue Jan 17 18:29:10 EST 2012

On Tue, Jan 17, 2012 at 7:02 PM, Eric Hodel <drbrain at segment7.net> wrote:
> On Jan 11, 2012, at 4:55 PM, Luis Lavena wrote:
>> In master, I've the following failure:
>>  12) Failure:
>> test_check_executable_overwrite_default_bin_dir(TestGemInstaller)
>> [C:/Users/Luis/Projects/oss/rubygems/rubygems/test/rubygems/test_gem_installer.rb:149]:
>> --- expected
>> +++ actual
>> @@ -1 +1 @@
>> -"\"executable\" from a conflicts with
>> C:/Users/Luis/Projects/oss/rubygems/rubygems/tmp/test/test_rubygems_3892/tmp/test/test_rubygems_3892/gemhome/bin/executable"
>> +"\"executable\" from a conflicts with installed executable from conflict"
>> The error message comes from Gem::Installer#check_executable_overwrite
>> What I don't understand is why is triggering a ruby_executable
>> (conflict = "installed executable…")
> I think it is because the windows executables have different lines in them.

bin/executable contains the shebang, I added a debug line to
check_executable_overwrite which resulted in:

This file was generated by RubyGems.\n#\n# The application 'conflict'
is installed as part of a gem, and\n# this file is here to facilitate
running it.\n#\n\nrequire 'rubygems'\n\nversion = \">= 0\"\n\nif
ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then\n  version
= $1\n  ARGV.shift\nend\n\ngem 'conflict', version\nload
Gem.bin_path('conflict', 'executable', version)\n"}

> Look line 142 in rubygems/installer.rb, it is explicitly looking for /^#!/, not what a windows wrapper uses.

>From above output seems to be that first line does match with the
regexp, so why is not valid?

Continue to investigate, will report later :-)

>> PS: some single quotes will make more easy to spot what is the message
>> and what represents an executable or a gem. Gem named "a" confuses in
>> the generated language for non-english native speakers (at least it
>> does for me)
> If you have time to tackle the above, feel free to add them, otherwise I can fix it.

Will do, thank you.
Luis Lavena
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry

More information about the RubyGems-Developers mailing list