diff options
| author | Luke Kanies <luke@madstop.com> | 2009-07-23 16:51:22 -0700 |
|---|---|---|
| committer | James Turnbull <james@lovedthanlost.net> | 2009-07-25 12:00:02 +1000 |
| commit | b3b76dffdd9cd8ed5c3d0230624bf05015bec5b8 (patch) | |
| tree | 169d9be6b86aa460f1a563c2821874ddb12cc974 /spec/integration | |
| parent | 9120712f97c12dad0c743271b4f64cf545319b69 (diff) | |
Fixing #2296 - overlapping recursions work again
This fixes the behaviour when you have file recursions
that overlap - we again correctly use the most
specific information.
It's still a bit expensive when you do this, but
at least it behaves correctly, and it should be
a rare circumstance.
Signed-off-by: Luke Kanies <luke@madstop.com>
Diffstat (limited to 'spec/integration')
| -rwxr-xr-x | spec/integration/type/file.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/spec/integration/type/file.rb b/spec/integration/type/file.rb index cced1ed1c..3b03d53e3 100755 --- a/spec/integration/type/file.rb +++ b/spec/integration/type/file.rb @@ -115,6 +115,27 @@ describe Puppet::Type.type(:file) do File.lstat(newpath).ftype.should == "file" end end + + it "should not recursively manage files managed by a more specific explicit file" do + dir = tmpfile("file_source_integration_source") + + subdir = File.join(dir, "subdir") + file = File.join(subdir, "file") + + FileUtils.mkdir_p(subdir) + File.open(file, "w") { |f| f.puts "" } + + base = Puppet::Type::File.new(:name => dir, :recurse => true, :backup => false, :mode => "755") + sub = Puppet::Type::File.new(:name => subdir, :recurse => true, :backup => false, :mode => "644") + + @catalog = Puppet::Resource::Catalog.new + @catalog.add_resource base + @catalog.add_resource sub + + @catalog.apply + + (File.stat(file).mode & 007777).should == 0644 + end end describe "when generating resources" do |
