add build test for a builder waiting on another builder

This commit is contained in:
Josh Holtrop 2019-02-17 22:20:51 -05:00
parent b882f8de99
commit 658b73e4de
2 changed files with 33 additions and 0 deletions

View File

@ -0,0 +1,23 @@
class MyObject < Rscons::Builder
def run(options)
if @builder
if File.exists?(@target)
true
else
false
end
else
@env.print_builder_run_message("#{name} #{@target}", nil)
@builder = @env.Object(@target, @sources, @vars)
wait_for(@builder)
end
end
end
build do
Environment.new do |env|
env.add_builder(MyObject)
env.MyObject("simple.o", "simple.c")
env.Program("simple.exe", "simple.o")
end
end

View File

@ -350,6 +350,16 @@ EOF
expect(File.exists?("foo")).to be_truthy
end
it 'supports a Builder waiting for another Builder' do
test_dir "simple"
result = run_rscons(rsconscript: "builder_wait_for_builder.rb")
expect(result.stderr).to eq ""
expect(result.status).to eq 0
expect(lines(result.stdout)).to include "MyObject simple.o"
expect(File.exists?("simple.o")).to be_truthy
expect(File.exists?("simple.exe")).to be_truthy
end
it 'allows cloning Environment objects' do
test_dir('clone_env')
result = run_rscons