diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-01-12 00:32:22 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-01-12 00:32:22 +0000 |
commit | 853dd6cabe692251376271421be433d68bea2865 (patch) | |
tree | 85adecadc51445c95962b556da3f34cfd0c639da /test/ruby | |
parent | f86cca6f55ce0e9ec50bc1cb61718d02ebe31e10 (diff) | |
download | ruby-853dd6cabe692251376271421be433d68bea2865.tar.gz |
* prelude.rb (require_relative): use File.realpath. [ruby-dev:40040]
* include/ruby/intern.h: declare rb_dir_getwd.
* dir.c (rb_dir_getwd): copied from dir_s_getwd to export.
(dir_s_getwd): use rb_dir_getwd.
* file.c (rb_file_s_realpath): new method File.realpath.
(rb_file_s_realdirpath): new method File.realdirpath.
* lib/pathname.rb (Pathname#realpath): use File.realpath.
(Pathname#realdirpath): use File.realdirpath.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby')
-rw-r--r-- | test/ruby/test_require.rb | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/test/ruby/test_require.rb b/test/ruby/test_require.rb index 510da8e272..5d46c9a1a8 100644 --- a/test/ruby/test_require.rb +++ b/test/ruby/test_require.rb @@ -2,6 +2,7 @@ require 'test/unit' require 'tempfile' require_relative 'envutil' +require 'tmpdir' class TestRequire < Test::Unit::TestCase def test_require_invalid_shared_object @@ -246,7 +247,6 @@ class TestRequire < Test::Unit::TestCase end def test_relative - require 'tmpdir' load_path = $:.dup $:.delete(".") Dir.mktmpdir do |tmp| @@ -268,4 +268,19 @@ class TestRequire < Test::Unit::TestCase ensure $:.replace(load_path) if load_path end + + def test_relative_symlink + Dir.mktmpdir {|tmp| + Dir.chdir(tmp) { + Dir.mkdir "a" + Dir.mkdir "b" + File.open("a/lib.rb", "w") {|f| f.puts 'puts "a/lib.rb"' } + File.open("b/lib.rb", "w") {|f| f.puts 'puts "b/lib.rb"' } + File.open("a/tst.rb", "w") {|f| f.puts 'require_relative "lib"' } + File.symlink("../a/tst.rb", "b/tst.rb") + result = IO.popen([EnvUtil.rubybin, "b/tst.rb"]).read + assert_equal("a/lib.rb\n", result) + } + } + end end |