# \[Ruby 1.9 - Bug #272\] (Open) test\_chdir failed when Dir.tmpdir is symlink

**URL:** <https://www.ruby-forum.com/t/ruby-1-9-bug-272-open-test-chdir-failed-when-dir-tmpdir-is-symlink/142997>\
**Category:** Development\
**Created:** [July 14, 2008, 10:59am UTC](https://www.ruby-forum.com/t/ruby-1-9-bug-272-open-test-chdir-failed-when-dir-tmpdir-is-symlink/142997 "2008-07-14T10:59:38Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kazuhiro\_NISHIYAMA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/77aa72/32.png) [@Kazuhiro\_NISHIYAMA](https://www.ruby-forum.com/u/Kazuhiro_NISHIYAMA)\
**Post date:** [July 14, 2008, 10:59am UTC](https://www.ruby-forum.com/t/ruby-1-9-bug-272-open-test-chdir-failed-when-dir-tmpdir-is-symlink/142997/1 "2008-07-14T10:59:38Z")

</div>

e$B%A%1%C%He(B #272 e$B$,Js9p$5$l$^$7$?!#e(B (by Kazuhiro NISHIYAMA)

* * *

Bug #272: test\_chdir failed when Dir.tmpdir is symlink  
[http://redmine.ruby-lang.org/issues/show/272](http://redmine.ruby-lang.org/issues/show/272)

e$B5/I\<\<Te(B: Kazuhiro NISHIYAMA  
e$B%9%F!\<%?%9e(B: Open  
e$BM%@hEYe(B: Normal  
e$BC4Ev\<Te(B:  
e$B%+%F%4%je(B:  
Target version:

Dir.tmpdire$B$,JV$9%G%#%l%/%H%j$,e(Bsymlinke$B$N$H$-$Ke(Btest\_chdire$B$,\<:GT$7$^$9!#e(B

% ln -s /tmp $HOME/symlink-tmpdir  
% env TMPDIR=$HOME/symlink-tmpdir ruby-trunk -v test/ruby/test\_dir.rb  
ruby 1.9.0 (2008-07-14 revision 18060) [i686-linux]  
Loaded suite test/ruby/test\_dir  
Started  
.test/ruby/test\_dir.rb:111: warning: conflicting chdir during another  
chdir block  
F…  
Finished in 0.0631458779999999 seconds.

1. Failure:  
test\_chdir(TestDir)  
[test/ruby/test\_dir.rb:112:in `block in test\_chdir’  
test/ruby/test\_dir.rb:109:in `chdir’  
test/ruby/test\_dir.rb:109:in `test\_chdir’]:  
\<“/home/kazu/symlink-tmpdir/\_\_test\_dir\_\_20080714-13467-1l19gzu”\>  
expected but was  
\<“/tmp/\_\_test\_dir\_\_20080714-13467-1l19gzu”\>.

12 tests, 78 assertions, 1 failures, 0 errors

---

<div class="post-metadata">

**Author:** ![Kazuhiro\_NISHIYAMA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/77aa72/32.png) [@Kazuhiro\_NISHIYAMA](https://www.ruby-forum.com/u/Kazuhiro_NISHIYAMA)\
**Post date:** [July 17, 2008, 12:20pm UTC](https://www.ruby-forum.com/t/ruby-1-9-bug-272-open-test-chdir-failed-when-dir-tmpdir-is-symlink/142997/2 "2008-07-17T12:20:46Z")

</div>

e$B@\>;3OB9-$G$9!#e(B

At Mon, 14 Jul 2008 17:54:40 +0900,  
Kazuhiro NISHIYAMA wrote:

> Dir.tmpdire$B$,JV$9%G%#%l%/%H%j$,e(Bsymlinke$B$N$H$-$Ke(Btest\_chdire$B$,\<:GT$7$^$9!#e(B

test\_execopts\_chdir(TestProcess)e$B$bF1MM$K\<:GT$7$^$9!#e(B

Pathname#realpathe$B$r;H$($P2r7h$9$k$h$&$G$9$,!"e(B  
e$B$3$&$$$&2r7hJ}K!$GNI$$$N$G$7$g$&$+e(B?

# Index: test/ruby/test\_dir.rb

— test/ruby/test\_dir.rb (revision 18104)  
+++ test/ruby/test\_dir.rb (working copy)  
@@ -2,11 +2,12 @@ require ‘test/unit’

require ‘tmpdir’  
require ‘fileutils’  
+require ‘pathname’

class TestDir \< Test::Unit::TestCase

def setup

- @root = Dir.mktmpdir(‘ **test\_dir** ’)

- @root = Pathname.new(Dir.mktmpdir(‘ **test\_dir** ’)).realpath.to\_s  
@nodir = File.join(@root, “dummy”)  
for i in ?a…?z  
if i.ord % 2 == 0  
Index: test/ruby/test\_process.rb  
===================================================================  
— test/ruby/test\_process.rb (revision 18104)  
+++ test/ruby/test\_process.rb (working copy)  
@@ -1,5 +1,6 @@  
require ‘test/unit’  
require ‘tmpdir’  
+require ‘pathname’  
require\_relative ‘envutil’

class TestProcess \< Test::Unit::TestCase  
@@ -21,6 +22,7 @@ class TestProcess \< Test::Unit::TestCase

def with\_tmpchdir  
Dir.mktmpdir {|d|

- 

```
 d = Pathname.new(d).realpath.to_s
 Dir.chdir(d) {
   yield d
 }
```

---

<div class="post-metadata">

**Author:** ![Kazuhiro\_NISHIYAMA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/77aa72/32.png) [@Kazuhiro\_NISHIYAMA](https://www.ruby-forum.com/u/Kazuhiro_NISHIYAMA)\
**Post date:** [July 22, 2008, 4:27am UTC](https://www.ruby-forum.com/t/ruby-1-9-bug-272-open-test-chdir-failed-when-dir-tmpdir-is-symlink/142997/3 "2008-07-22T04:27:38Z")

</div>

e$B%A%1%C%He(B #272 e$B$,99?7$5$l$^$7$?!#e(B (by Anonymous)

e$B%9%F!\<%?%9e(B Opene$B$+$ie(BClosede$B$KJQ99e(B  
e$B?JD=e(B % 0e$B$+$ie(B100e$B$KJQ99e(B

## Applied in changeset r18153.

[http://redmine.ruby-lang.org/issues/show/272](http://redmine.ruby-lang.org/issues/show/272)
