https://bugs.ruby-lang.org/https://bugs.ruby-lang.org/favicon.ico?17113305112018-11-22T10:43:46ZRuby Issue Tracking SystemRuby master - Bug #15324: Dir.home test doesn't match actual Ruby or system behaviourhttps://bugs.ruby-lang.org/issues/15324?journal_id=750742018-11-22T10:43:46Znaruse (Yui NARUSE)naruse@airemix.jp
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Closed</i></li></ul><p>Applied in changeset trunk|r65926.</p>
<hr>
<p>Use File.expand_path("~username") instead of ENV["HOME"]</p>
<p>File.expand_path("~username") uses getpwnam() independently from<br>
Dir.home. [Bug <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: Dir.home test doesn't match actual Ruby or system behaviour (Closed)" href="https://bugs.ruby-lang.org/issues/15324">#15324</a>]</p>
<p>From: Chris Seaton <a href="mailto:chris@chrisseaton.com" class="email">chris@chrisseaton.com</a></p> Ruby master - Bug #15324: Dir.home test doesn't match actual Ruby or system behaviourhttps://bugs.ruby-lang.org/issues/15324?journal_id=750852018-11-22T16:49:39ZMSP-Greg (Greg L)
<ul></ul><p><a class="user active user-mention" href="https://bugs.ruby-lang.org/users/5">@naruse (Yui NARUSE)</a></p>
<p>Re r65926, I believe Windows has never processed '~'. Also, Window doesn't natively have ENV['USER'], but Ruby sets it. Regardless, the revised test fails...</p>
<p>Thanks, Greg</p> Ruby master - Bug #15324: Dir.home test doesn't match actual Ruby or system behaviourhttps://bugs.ruby-lang.org/issues/15324?journal_id=750862018-11-22T17:13:52ZMSP-Greg (Greg L)
<ul></ul><p>I'm mistaken. Windows 10 (Appveyor?) will process a plain '~'</p>
<p>The test should pass with:</p>
<pre><code class="ruby syntaxhl" data-language="ruby">
<span class="k">if</span> <span class="n">windows?</span>
<span class="n">assert_equal</span><span class="p">(</span><span class="no">File</span><span class="p">.</span><span class="nf">expand_path</span><span class="p">(</span><span class="s2">"~"</span><span class="p">),</span> <span class="no">Dir</span><span class="p">.</span><span class="nf">home</span><span class="p">(</span><span class="n">user</span><span class="p">))</span>
<span class="k">else</span>
<span class="n">assert_equal</span><span class="p">(</span><span class="no">File</span><span class="p">.</span><span class="nf">expand_path</span><span class="p">(</span><span class="s2">"~</span><span class="si">#{</span><span class="n">user</span><span class="si">}</span><span class="s2">"</span><span class="p">),</span> <span class="no">Dir</span><span class="p">.</span><span class="nf">home</span><span class="p">(</span><span class="n">user</span><span class="p">))</span>
<span class="k">end</span>
</code></pre>