Dir.glob behaves inconsistently with MRI in some cases
------------------------------------------------------

                 Key: JRUBY-2556
                 URL: http://jira.codehaus.org/browse/JRUBY-2556
             Project: JRuby
          Issue Type: Bug
    Affects Versions: JRuby 1.1.1
         Environment: Latest JRuby 1.1.1+
            Reporter: Vladimir Sizikov
            Assignee: Thomas E Enebo


Newer rubyspecs detected this issue.

Essentially, Dir.glob returns duplicate entries where there shouln't be such 
entries.

An attempt to always remove duplicates from the method is not correct, since in 
some cases duplicates should
be expected. See this thread for more info:
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/16834

{noformat}
mspec ci spec/ruby/1.8/core/dir/glob_spec.rb  
spec/ruby/1.8/core/dir/element_reference_spec.rb
...................................F........................................F

1)
Dir.glob matches multiple recursives FAILED
Expected ["a/x/b/y/b/z/c", "a/x/b/y/b/z/c", "a/x/b/y/c"]
to equal ["a/x/b/y/b/z/c", "a/x/b/y/c"]

/opt/work/mspec.git/lib/mspec/expectations/expectations.rb:10:in `fail_with'
/opt/work/mspec.git/lib/mspec/matchers/base.rb:9:in `=='
/opt/work/jruby.git/./spec/ruby/1.8/core/dir/shared/glob.rb:252:in 
`/opt/work/jruby.git/./spec/ruby/1.8/core/dir/shared/glob.rb'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:120:in `instance_eval'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:120:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `each'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:60:in `process'
/opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `each'
/opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `process'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:27:in `describe'
/opt/work/mspec.git/lib/mspec/runner/object.rb:11:in `describe'
/opt/work/jruby.git/./spec/ruby/1.8/core/dir/shared/glob.rb:224:in 
`/opt/work/jruby.git/./spec/ruby/1.8/core/dir/shared/glob.rb'
/opt/work/mspec.git/lib/mspec/runner/shared.rb:10:in `[]'
/opt/work/mspec.git/lib/mspec/runner/shared.rb:10:in `it_behaves_like'
/opt/work/jruby.git/./spec/ruby/1.8/core/dir/glob_spec.rb:6:in 
`/opt/work/jruby.git/./spec/ruby/1.8/core/dir/glob_spec.rb'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:120:in `instance_eval'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:120:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `each'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:50:in `process'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:27:in `describe'
/opt/work/mspec.git/lib/mspec/runner/object.rb:11:in `describe'
/opt/work/jruby.git/./spec/ruby/1.8/core/dir/glob_spec.rb:5:in 
`/opt/work/jruby.git/./spec/ruby/1.8/core/dir/glob_spec.rb'
/opt/work/jruby.git/./spec/ruby/1.8/core/dir/glob_spec.rb:45:in `load'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:45:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:120:in `instance_eval'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:120:in `protect'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:45:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:42:in `each'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:42:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:34:in `process'
/opt/work/mspec.git/bin/mspec-ci:68:in `run'
/opt/work/mspec.git/lib/mspec/utils/script.rb:75:in `main'
/opt/work/mspec.git/bin/mspec-ci:75

2)
Dir.[] matches multiple recursives FAILED
Expected ["a/x/b/y/b/z/c", "a/x/b/y/b/z/c", "a/x/b/y/c"]
to equal ["a/x/b/y/b/z/c", "a/x/b/y/c"]

/opt/work/mspec.git/lib/mspec/expectations/expectations.rb:10:in `fail_with'
/opt/work/mspec.git/lib/mspec/matchers/base.rb:9:in `=='
/opt/work/jruby.git/./spec/ruby/1.8/core/dir/shared/glob.rb:252:in 
`/opt/work/jruby.git/./spec/ruby/1.8/core/dir/shared/glob.rb'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:120:in `instance_eval'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:120:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `each'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:60:in `process'
/opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `each'
/opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `process'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:27:in `describe'
/opt/work/mspec.git/lib/mspec/runner/object.rb:11:in `describe'
/opt/work/jruby.git/./spec/ruby/1.8/core/dir/shared/glob.rb:224:in 
`/opt/work/jruby.git/./spec/ruby/1.8/core/dir/shared/glob.rb'
/opt/work/mspec.git/lib/mspec/runner/shared.rb:10:in `[]'
/opt/work/mspec.git/lib/mspec/runner/shared.rb:10:in `it_behaves_like'
/opt/work/jruby.git/./spec/ruby/1.8/core/dir/element_reference_spec.rb:6:in 
`/opt/work/jruby.git/./spec/ruby/1.8/core/dir/element_reference_spec.rb'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:120:in `instance_eval'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:120:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `each'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:50:in `process'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:27:in `describe'
/opt/work/mspec.git/lib/mspec/runner/object.rb:11:in `describe'
/opt/work/jruby.git/./spec/ruby/1.8/core/dir/element_reference_spec.rb:5:in 
`/opt/work/jruby.git/./spec/ruby/1.8/core/dir/element_reference_spec.rb'
/opt/work/jruby.git/./spec/ruby/1.8/core/dir/element_reference_spec.rb:45:in 
`load'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:45:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:120:in `instance_eval'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:120:in `protect'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:45:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:42:in `each'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:42:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:34:in `process'
/opt/work/mspec.git/bin/mspec-ci:68:in `run'
/opt/work/mspec.git/lib/mspec/utils/script.rb:75:in `main'
/opt/work/mspec.git/bin/mspec-ci:75

Finished in 0.709000 seconds

2 files, 77 examples, 83 expectations, 2 failures, 0 errors
{noformat}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to