Forum: Ruby Trouble with FileUtils.rm_rf / .rmdir

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
171ea139761951336b844e708d1547ab?d=identicon&s=25 James B. Byrne (Guest)
on 2006-02-21 19:10
I am trying to dynamically setup and teardown a directory structure for
testing.  The code that I am using employs .rm_rf but I get the same
results if I use
.rmdir instead.

#-------------------------------------------------------------------------
$:.unshift File.join(File.dirname(__FILE__), "..", "lib")

require 'test/unit'
require 'fileutils'
require 'mv2dir'

class Test_Mv2Dir < Test::Unit::TestCase
# What are we going to test for?

  #1. Test that instances test for valid directories and return
  #   TRUE or FALSE as expected.
  def test_dir
    #-- a.  define test directories
      dir_test =
["~/tmp/mv2dir/test/source/","~/tmp/mv2dir/test/target/"]
    #-- b.  clear them out:
    dir_test.each do |dt|
      puts dt
      FileUtils.rm_rf(dt, :verbose => TRUE, :secure => TRUE)
#     FileUtils.rmdir(dt, :verbose => TRUE) rescue Errno::ENOENT
    end
...
#---------------------------------------------------------------------------

These are the results.  ~/tmp/mv2dir/test/target exists before the run.
It is my intention that it be gone at the end of the run.  It is not.
Can
anyone point out to me what I am doing wrong?

ll ~/tmp/mv2dir/test/
total 8
drwxrwxr-x  2 byrnejb byrnejb 4096 Feb 21 12:11 target
[byrnejb@inet05 test]$ ruby mv2dir_tc.rb
Loaded suite mv2dir_tc
Started
~/tmp/mv2dir/test/source/
rm -rf ~/tmp/mv2dir/test/source/
~/tmp/mv2dir/test/target/
rm -rf ~/tmp/mv2dir/test/target/
...
Finished in 0.002761 seconds.

3 tests, 0 assertions, 0 failures, 0 errors
[byrnejb@inet05 test]$ ll ~/tmp/mv2dir/test/
total 8
drwxrwxr-x  2 byrnejb byrnejb 4096 Feb 21 12:11 target
171ea139761951336b844e708d1547ab?d=identicon&s=25 James B. Byrne (Guest)
on 2006-02-21 19:54
I can get this to work if I force :secure => FALSE but I do not see why
that should be necessary.  None of the directories in the path
/home/byrnejb/tmp/mv2dir/test/target are world writeable.  However,
unless I call FileUtils.rm_r(dt,:secure => FALSE) the directory is not
removed.  Can someone explain to me what I am misunderstanding with
respect to the documentation?
This topic is locked and can not be replied to.