diff options
Diffstat (limited to 'tests/common.rb')
-rw-r--r-- | tests/common.rb | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/tests/common.rb b/tests/common.rb index 518aab2..81d45fc 100644 --- a/tests/common.rb +++ b/tests/common.rb @@ -19,6 +19,7 @@ # require 'fileutils' +require 'shellwords' include FileUtils # Set the default umask for all tests @@ -92,7 +93,9 @@ def testenv(bindfs_args, options = {}, &block) options = { :title => bindfs_args, :valgrind => valgrind_options != nil, - :valgrind_opts => valgrind_options + :valgrind_opts => valgrind_options, + :srcdir_name => 'src', + :mntdir_name => 'mnt' }.merge(options) # todo: less repetitive and more careful error handling and cleanup @@ -100,6 +103,9 @@ def testenv(bindfs_args, options = {}, &block) puts "--- #{options[:title]} ---" puts "[ #{bindfs_args} ]" + srcdir = options[:srcdir_name] + mntdir = options[:mntdir_name] + begin Dir.mkdir TESTDIR_NAME rescue Exception => ex @@ -108,15 +114,15 @@ def testenv(bindfs_args, options = {}, &block) begin Dir.chdir TESTDIR_NAME - Dir.mkdir 'src' - Dir.mkdir 'mnt' + Dir.mkdir srcdir + Dir.mkdir mntdir rescue Exception => ex fail!("ERROR preparing testdir at #{TESTDIR_NAME}", ex) end bindfs_pid = nil begin - cmd = "../#{EXECUTABLE_PATH} #{bindfs_args} -f src mnt" + cmd = "../#{EXECUTABLE_PATH} #{bindfs_args} -f #{Shellwords.escape(srcdir)} #{Shellwords.escape(mntdir)}" if options[:valgrind] cmd = "valgrind --error-exitcode=100 #{options[:valgrind_opts]} #{cmd}" end @@ -146,7 +152,7 @@ def testenv(bindfs_args, options = {}, &block) end begin - unless system(umount_cmd + ' mnt') + unless system(umount_cmd + ' ' + Shellwords.escape(mntdir)) raise Exception.new(umount_cmd + " failed with status #{$?}") end Process.wait bindfs_pid |