diff options
Diffstat (limited to 'spec/rubyspec/core/file')
-rw-r--r-- | spec/rubyspec/core/file/fixtures/file_types.rb | 27 | ||||
-rw-r--r-- | spec/rubyspec/core/file/ftype_spec.rb | 6 | ||||
-rw-r--r-- | spec/rubyspec/core/file/stat/ftype_spec.rb | 7 |
3 files changed, 23 insertions, 17 deletions
diff --git a/spec/rubyspec/core/file/fixtures/file_types.rb b/spec/rubyspec/core/file/fixtures/file_types.rb index 1c446b33a6..36a5ff1a95 100644 --- a/spec/rubyspec/core/file/fixtures/file_types.rb +++ b/spec/rubyspec/core/file/fixtures/file_types.rb @@ -1,6 +1,7 @@ module FileSpecs - # Try to set up known locations of each filetype - def self.reconfigure() + def self.configure_types + return if @configured + @file = tmp("test.txt") @dir = Dir.pwd @fifo = tmp("test_fifo") @@ -15,45 +16,43 @@ module FileSpecs @link = links.first break end - end - end - # TODO: Automatic reload mechanism - reconfigure + @configured = true + end - def self.normal_file() - File.open(@file, "w") {} # 'Touch' + def self.normal_file + touch(@file) yield @file ensure rm_r @file end - def self.directory() + def self.directory yield @dir end # TODO: need a platform-independent helper here - def self.fifo() + def self.fifo system "mkfifo #{@fifo} 2> /dev/null" yield @fifo ensure rm_r @fifo end - def self.block_device() + def self.block_device yield @block end - def self.character_device() + def self.character_device yield @char end - def self.symlink() + def self.symlink yield @link end - def self.socket() + def self.socket require 'socket' name = tmp("ftype_socket.socket") rm_r name diff --git a/spec/rubyspec/core/file/ftype_spec.rb b/spec/rubyspec/core/file/ftype_spec.rb index 79ed1d5b45..7c010b3e9c 100644 --- a/spec/rubyspec/core/file/ftype_spec.rb +++ b/spec/rubyspec/core/file/ftype_spec.rb @@ -1,7 +1,11 @@ require "#{File.dirname(__FILE__)}/../../spec_helper" -require "#{File.dirname(__FILE__)}/fixtures/file_types.rb" +require "#{File.dirname(__FILE__)}/fixtures/file_types" describe "File.ftype" do + before :all do + FileSpecs.configure_types + end + it "raises ArgumentError if not given exactly one filename" do lambda { File.ftype }.should raise_error(ArgumentError) lambda { File.ftype('blah', 'bleh') }.should raise_error(ArgumentError) diff --git a/spec/rubyspec/core/file/stat/ftype_spec.rb b/spec/rubyspec/core/file/stat/ftype_spec.rb index c20109765b..588c371c39 100644 --- a/spec/rubyspec/core/file/stat/ftype_spec.rb +++ b/spec/rubyspec/core/file/stat/ftype_spec.rb @@ -1,7 +1,11 @@ require "#{File.dirname(__FILE__)}/../../../spec_helper" -require "#{File.dirname(__FILE__)}/../fixtures/file_types.rb" +require "#{File.dirname(__FILE__)}/../fixtures/file_types" describe "File::Stat#ftype" do + before :all do + FileSpecs.configure_types + end + it "returns a String" do FileSpecs.normal_file do |file| File.lstat(file).ftype.should be_kind_of(String) @@ -62,4 +66,3 @@ describe "File::Stat#ftype" do end end end - |