cloning an Environment should make a deep copy of its construction variables

This commit is contained in:
josh committed 2013-10-08 11:54:24 -04:00
1 parent dc6bac2895
commit 0f5fee359d
2 files changed
+13 -2

No files matched your search

+2 -2
View File
@@ -6,7 +6,7 @@ module Rscons
# contains a collection of construction variables, options, builders, and
# rules for building targets.
class Environment
# [Array] of {Builder} objects.
# [Hash] of {"builder_name" => builder_object} pairs.
attr_reader :builders
# Create an Environment object.
@@ -53,7 +53,7 @@ module Rscons
@builders.each do |builder_name, builder|
env.add_builder(builder)
end
env.append(@varset)
env.append(@varset.clone)
env.append(variables)
if block_given?
+11
View File
@@ -1,5 +1,16 @@
module Rscons
describe Environment do
describe '.clone' do
it 'should create unique copies of each construction variable' do
env = Environment.new
env["CPPPATH"] << "path1"
env2 = env.clone
env2["CPPPATH"] << "path2"
env["CPPPATH"].should == ["path1"]
env2["CPPPATH"].should == ["path1", "path2"]
end
end
describe '.parse_makefile_deps' do
it 'handles dependencies on one line' do
File.should_receive(:read).with('makefile').and_return(<<EOS)