Hi,
I getting the expand path problem when trying to run some rspec
examples.
Ben H. mentioned it before. Expand_Path - Errors when path contains line number - IronRuby - Ruby-Forum
I have a spec:
require File.dirname(FILE) + ‘/Domain.dll’
require ‘rubygems’
require ‘spec’
module ProductSpecHelper
def valid_attributes
{ :Name => ‘Test’ }
end
end
describe Domain::Product, “When saving” do
include ProductSpecHelper
before(:each) do
@product = Domain::Product.new
end
it “should have a name” do
@product.attributes = @valid_attributes
@product.name.should_not be_nil
end
it “should have product lines”
end
and run:
D:\IronRuby\RSpec>ir product_spec.rb
c:\ironruby\Merlin\Main\Languages\Ruby\Libraries.LCA_RESTRICTED\Builtins\FileOps
.cs:522:in ExpandPath': Invalid argument - product_spec.rb:0 (Errno::EINVAL) from :0:in
expand_path’
from example_group_methods.rb:108:in set_description' from example_group_methods.rb:171:in
subclass’
from example_group_methods.rb:48:in describe' from example_group_factory.rb:25:in
create_example_group’
from main.rb:22:in `describe’
from product_spec.rb:0
Is there a work around people are using at the moment?
Cheers.
Or would anyone like to contribute a better implementation of
expand_path? We know the current one is wrong and needs to rewritten.
This is an ideal opportunity (not only) for first time contributors -
it’s an isolated piece of code, easy testable and you’ll actually help
to fix something others care about!
Contribute today!
http://wiki.github.com/ironruby/ironruby
Tomas
so its a bug then.
ok, i’ll take a look at it.
any tips for a first time contributor
I fixed this particular issue. See attached. Its not in the main GIT
repo though.
The workaround for running the rubyspecs is to set HOME manually to
%USERPROFILE%. We are also fixing dev.bat to set HOME for you, so you
won’t have to worry about it.
There are plenty of other tags (which disables a failing test) in
http://github.com/ironruby/ironruby/tree/17de3f8220b0aa9da96f9c8f0c132db954721375/Merlin/External/Languages/IronRuby/mspec/ironruby-tags/core/file.
Delete anyone of them, run “mspec ci core\file” to see the test start
failing (since the tag is gone), and then work on a fix. Once you have
drilled into the issue a bit, I can help you as mentioned in the
attached email.
There will be issues with expand_path as long as it uses
Path.GetFullPath and Path.Combine. These methods check for invalid path
characters while expand_path doesn’t. So we need an implementation that
doesn’t use Path.* methods.
Tomas