diff --git a/build_tests/simple/build_sources.rb b/build_tests/simple/build_sources.rb index 3db4ac5..ba19d82 100644 --- a/build_tests/simple/build_sources.rb +++ b/build_tests/simple/build_sources.rb @@ -10,5 +10,13 @@ end Rscons::Environment.new do |env| env.add_builder(MyProgram.new) - env.MyProgram("simple.exe", "simple.c") + env.Object("simple.o", "simple.c") + File.open("two.c", "wb") do |fh| + fh.puts <<-EOF + void two(void) + { + } + EOF + end + env.MyProgram("simple.exe", ["simple.o", "two.c"]) end diff --git a/spec/build_tests_spec.rb b/spec/build_tests_spec.rb index 74a24a7..67487b1 100644 --- a/spec/build_tests_spec.rb +++ b/spec/build_tests_spec.rb @@ -647,10 +647,21 @@ EOF expect(result.stderr).to eq "" expect(lines(result.stdout)).to eq [ "CC simple.o", + "CC two.o", "MyProgram simple.exe", ] end + it "prints the failed build command for a threaded builder when called via Environment#run_builder without delayed execution" do + test_dir("simple") + File.open("simple.c", "wb") do |fh| + fh.write("FOOBAR") + end + result = run_test(rsconsfile: "run_builder.rb") + expect(result.stderr).to match /Failed to build/ + expect(result.stdout).to match /Failed command was: gcc/ + end + context "Directory builder" do it "creates the requested directory" do test_dir("simple")