aboutsummaryrefslogtreecommitdiffstats
path: root/spec/rubyspec/core/file
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rubyspec/core/file')
-rw-r--r--spec/rubyspec/core/file/fixtures/file_types.rb27
-rw-r--r--spec/rubyspec/core/file/ftype_spec.rb6
-rw-r--r--spec/rubyspec/core/file/stat/ftype_spec.rb7
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
-