diff options
Diffstat (limited to 'test/fileutils')
-rw-r--r-- | test/fileutils/fileasserts.rb | 39 | ||||
-rw-r--r-- | test/fileutils/test_fileutils.rb | 49 |
2 files changed, 72 insertions, 16 deletions
diff --git a/test/fileutils/fileasserts.rb b/test/fileutils/fileasserts.rb index 2a96351bc2..ea03534545 100644 --- a/test/fileutils/fileasserts.rb +++ b/test/fileutils/fileasserts.rb @@ -1,12 +1,10 @@ -# -# test/fileutils/fileasserts.rb -# +# $Id$ module Test module Unit module Assertions # redefine - def assert_same_file( from, to ) + def assert_same_file(from, to) _wrap_assertion { assert_block("file #{from} != #{to}") { File.read(from) == File.read(to) @@ -14,7 +12,22 @@ module Test } end - def assert_file_exist( path ) + def assert_same_entry(from, to) + _wrap_assertion { + assert_block("entry #{from} != #{to}") { + a = File.stat(from) + b = File.stat(to) + + a.mode == b.mode and + #a.atime == b.atime and + a.mtime == b.mtime and + a.uid == b.uid and + a.gid == b.gid + } + } + end + + def assert_file_exist(path) _wrap_assertion { assert_block("file not exist: #{path}") { File.exist?(path) @@ -22,7 +35,7 @@ module Test } end - def assert_file_not_exist( path ) + def assert_file_not_exist(path) _wrap_assertion { assert_block("file not exist: #{path}") { not File.exist?(path) @@ -30,7 +43,7 @@ module Test } end - def assert_directory( path ) + def assert_directory(path) _wrap_assertion { assert_block("is not directory: #{path}") { File.directory?(path) @@ -38,14 +51,22 @@ module Test } end - def assert_symlink( path ) + def assert_symlink(path) _wrap_assertion { - assert_block("is no symlink: #{path}") { + assert_block("is not a symlink: #{path}") { File.symlink?(path) } } end + def assert_not_symlink(path) + _wrap_assertion { + assert_block("is a symlink: #{path}") { + not File.symlink?(path) + } + } + end + end end end diff --git a/test/fileutils/test_fileutils.rb b/test/fileutils/test_fileutils.rb index 950e20499c..bacbb51aa8 100644 --- a/test/fileutils/test_fileutils.rb +++ b/test/fileutils/test_fileutils.rb @@ -1,6 +1,4 @@ -# -# test/fileutils/test_fileutils.rb -# +# $Id$ require 'fileutils' require 'fileasserts' @@ -96,13 +94,12 @@ class TestFileUtils end - TARGETS = %w( data/same data/all data/random data/zero ) + TARGETS = %w( data/a data/all data/random data/zero ) def prepare_data_file - same_chars = 'a' * 50 - File.open('data/same', 'w') {|f| + File.open('data/a', 'w') {|f| 32.times do - f.puts same_chars + f.puts 'a' * 50 end } @@ -236,6 +233,44 @@ end assert_same_file fname, "tmp/#{fname}" end + cp_r 'data', 'tmp2', :preserve => true + TARGETS.each do |fname| + assert_same_entry fname, "tmp/#{fname}" + assert_same_file fname, "tmp/#{fname}" + end + + # a/* -> b/* + mkdir 'tmp/cpr_src' + mkdir 'tmp/cpr_dest' + File.open('tmp/cpr_src/a', 'w') {|f| f.puts 'a' } + File.open('tmp/cpr_src/b', 'w') {|f| f.puts 'b' } + File.open('tmp/cpr_src/c', 'w') {|f| f.puts 'c' } + mkdir 'tmp/cpr_src/d' + cp_r 'tmp/cpr_src/.', 'tmp/cpr_dest' + assert_same_file 'tmp/cpr_src/a', 'tmp/cpr_dest/a' + assert_same_file 'tmp/cpr_src/b', 'tmp/cpr_dest/b' + assert_same_file 'tmp/cpr_src/c', 'tmp/cpr_dest/c' + assert_directory 'tmp/cpr_dest/d' + rm_rf 'tmp/cpr_src' + rm_rf 'tmp/cpr_dest' + +if have_symlink? + # symlink in a directory + mkdir 'tmp/cpr_src' + ln_s 'SLdest', 'tmp/cpr_src/symlink' + cp_r 'tmp/cpr_src', 'tmp/cpr_dest' + assert_symlink 'tmp/cpr_dest/symlink' + assert_equal 'SLdest', File.readlink('tmp/cpr_dest/symlink') + + # root is a symlink + ln_s 'cpr_src', 'tmp/cpr_src2' + cp_r 'tmp/cpr_src2', 'tmp/cpr_dest2' + assert_directory 'tmp/cpr_dest2' + assert_not_symlink 'tmp/cpr_dest2' + assert_symlink 'tmp/cpr_dest2/symlink' + assert_equal 'SLdest', File.readlink('tmp/cpr_dest2/symlink') +end + # pathname touch 'tmp/cprtmp' assert_nothing_raised { |