summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Schulte <stefan.schulte@taunusstein.net>2011-05-01 15:19:33 +0200
committerStefan Schulte <stefan.schulte@taunusstein.net>2011-05-01 15:39:02 +0200
commit1f3b8e755883c865026f3d76459000b808f5a3b0 (patch)
treefa6b96c2eb192925495a147450012a6115b95779
parent040e0fdaacb767d61ef07a41098ebb9c998738e4 (diff)
downloadpuppet-1f3b8e755883c865026f3d76459000b808f5a3b0.tar.gz
puppet-1f3b8e755883c865026f3d76459000b808f5a3b0.tar.xz
puppet-1f3b8e755883c865026f3d76459000b808f5a3b0.zip
(#7300) Add specs for the mount provider
Add specs to demonstrate that the instances method is currently broken because it does not take the actual mountstate into account. As a result running "puppet resource mount" on the commandline will report every mount that appears in /etc/(v)fstab as unmounted.
-rwxr-xr-xspec/unit/provider/mount/parsed_spec.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/spec/unit/provider/mount/parsed_spec.rb b/spec/unit/provider/mount/parsed_spec.rb
index 0293e0758..2e1e1e92e 100755
--- a/spec/unit/provider/mount/parsed_spec.rb
+++ b/spec/unit/provider/mount/parsed_spec.rb
@@ -193,6 +193,47 @@ FSTAB
my_fixtures('*.fstab').each do |fstab|
platform = File.basename(fstab, '.fstab')
+
+ describe "when calling instances on #{platform}" do
+ before :each do
+ if Facter[:operatingsystem] == "Solaris" then
+ platform == 'solaris' or
+ pending "We need to stub the operatingsystem fact at load time, but can't"
+ else
+ platform != 'solaris' or
+ pending "We need to stub the operatingsystem fact at load time, but can't"
+ end
+
+ # Stub the mount output to our fixture.
+ begin
+ mount = my_fixture(platform + '.mount')
+ @provider.stubs(:mountcmd).returns File.read(mount)
+ rescue
+ pending "is #{platform}.mount missing at this point?"
+ end
+
+ # Note: we have to stub default_target before creating resources
+ # because it is used by Puppet::Type::Mount.new to populate the
+ # :target property.
+ @provider.stubs(:default_target).returns fstab
+ @retrieve = @provider.instances.collect { |prov| {:name => prov.get(:name), :ensure => prov.get(:ensure)}}
+ end
+
+ # Following mountpoint are present in all fstabs/mountoutputs
+ it "should include unmounted resources" do
+ @retrieve.should include(:name => '/', :ensure => :mounted)
+ end
+
+ it "should include mounted resources" do
+ @retrieve.should include(:name => '/boot', :ensure => :unmounted)
+ end
+
+ it "should include ghost resources" do
+ @retrieve.should include(:name => '/ghost', :ensure => :ghost)
+ end
+
+ end
+
describe "when prefetching on #{platform}" do
before :each do
if Facter[:operatingsystem] == "Solaris" then