From d52bdaf046131fc1390ffb5f73ffd5be44a65e94 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Tue, 27 Aug 2019 18:51:56 -0400 Subject: [PATCH] build tests: do ldc2 tests even if omit_gdc_tests set --- spec/build_tests_spec.rb | 88 ++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/spec/build_tests_spec.rb b/spec/build_tests_spec.rb index d3e2212..2995fce 100644 --- a/spec/build_tests_spec.rb +++ b/spec/build_tests_spec.rb @@ -591,51 +591,51 @@ EOF expect(result.stdout).to eq "" end + it "supports building D sources with gdc" do + test_dir("d") + result = run_rscons + expect(result.stderr).to eq "" + slines = lines(result.stdout) + verify_lines(slines, [%r{gdc -c -o build/e.1/main.o -MMD -MF build/e.1/main.mf main.d}]) + verify_lines(slines, [%r{gdc -c -o build/e.1/mod.o -MMD -MF build/e.1/mod.mf mod.d}]) + verify_lines(slines, [%r{gdc -o hello-d.exe build/e.1/main.o build/e.1/mod.o}]) + expect(`./hello-d.exe`.rstrip).to eq "Hello from D, value is 42!" + end + + it "supports building D sources with ldc2" do + test_dir("d") + result = run_rscons(rsconscript: "build-ldc2.rb") + expect(result.stderr).to eq "" + slines = lines(result.stdout) + verify_lines(slines, [%r{ldc2 -c -of build/e.1/main.o(bj)? -deps=build/e.1/main.mf main.d}]) + verify_lines(slines, [%r{ldc2 -c -of build/e.1/mod.o(bj)? -deps=build/e.1/mod.mf mod.d}]) + verify_lines(slines, [%r{ldc2 -of hello-d.exe build/e.1/main.o(bj)? build/e.1/mod.o(bj)?}]) + expect(`./hello-d.exe`.rstrip).to eq "Hello from D, value is 42!" + end + + it "rebuilds D modules with ldc2 when deep dependencies change" do + test_dir("d") + result = run_rscons(rsconscript: "build-ldc2.rb") + expect(result.stderr).to eq "" + slines = lines(result.stdout) + verify_lines(slines, [%r{ldc2 -c -of build/e.1/main.o(bj)? -deps=build/e.1/main.mf main.d}]) + verify_lines(slines, [%r{ldc2 -c -of build/e.1/mod.o(bj)? -deps=build/e.1/mod.mf mod.d}]) + verify_lines(slines, [%r{ldc2 -of hello-d.exe build/e.1/main.o(bj)? build/e.1/mod.o(bj)?}]) + expect(`./hello-d.exe`.rstrip).to eq "Hello from D, value is 42!" + contents = File.read("mod.d", mode: "rb").sub("42", "33") + File.open("mod.d", "wb") do |fh| + fh.write(contents) + end + result = run_rscons(rsconscript: "build-ldc2.rb") + expect(result.stderr).to eq "" + slines = lines(result.stdout) + verify_lines(slines, [%r{ldc2 -c -of build/e.1/main.o(bj)? -deps=build/e.1/main.mf main.d}]) + verify_lines(slines, [%r{ldc2 -c -of build/e.1/mod.o(bj)? -deps=build/e.1/mod.mf mod.d}]) + verify_lines(slines, [%r{ldc2 -of hello-d.exe build/e.1/main.o(bj)? build/e.1/mod.o(bj)?}]) + expect(`./hello-d.exe`.rstrip).to eq "Hello from D, value is 33!" + end + unless ENV["omit_gdc_tests"] - it "supports building D sources with gdc" do - test_dir("d") - result = run_rscons - expect(result.stderr).to eq "" - slines = lines(result.stdout) - verify_lines(slines, [%r{gdc -c -o build/e.1/main.o -MMD -MF build/e.1/main.mf main.d}]) - verify_lines(slines, [%r{gdc -c -o build/e.1/mod.o -MMD -MF build/e.1/mod.mf mod.d}]) - verify_lines(slines, [%r{gdc -o hello-d.exe build/e.1/main.o build/e.1/mod.o}]) - expect(`./hello-d.exe`.rstrip).to eq "Hello from D, value is 42!" - end - - it "supports building D sources with ldc2" do - test_dir("d") - result = run_rscons(rsconscript: "build-ldc2.rb") - expect(result.stderr).to eq "" - slines = lines(result.stdout) - verify_lines(slines, [%r{ldc2 -c -of build/e.1/main.o(bj)? -deps=build/e.1/main.mf main.d}]) - verify_lines(slines, [%r{ldc2 -c -of build/e.1/mod.o(bj)? -deps=build/e.1/mod.mf mod.d}]) - verify_lines(slines, [%r{ldc2 -of hello-d.exe build/e.1/main.o(bj)? build/e.1/mod.o(bj)?}]) - expect(`./hello-d.exe`.rstrip).to eq "Hello from D, value is 42!" - end - - it "rebuilds D modules with ldc2 when deep dependencies change" do - test_dir("d") - result = run_rscons(rsconscript: "build-ldc2.rb") - expect(result.stderr).to eq "" - slines = lines(result.stdout) - verify_lines(slines, [%r{ldc2 -c -of build/e.1/main.o(bj)? -deps=build/e.1/main.mf main.d}]) - verify_lines(slines, [%r{ldc2 -c -of build/e.1/mod.o(bj)? -deps=build/e.1/mod.mf mod.d}]) - verify_lines(slines, [%r{ldc2 -of hello-d.exe build/e.1/main.o(bj)? build/e.1/mod.o(bj)?}]) - expect(`./hello-d.exe`.rstrip).to eq "Hello from D, value is 42!" - contents = File.read("mod.d", mode: "rb").sub("42", "33") - File.open("mod.d", "wb") do |fh| - fh.write(contents) - end - result = run_rscons(rsconscript: "build-ldc2.rb") - expect(result.stderr).to eq "" - slines = lines(result.stdout) - verify_lines(slines, [%r{ldc2 -c -of build/e.1/main.o(bj)? -deps=build/e.1/main.mf main.d}]) - verify_lines(slines, [%r{ldc2 -c -of build/e.1/mod.o(bj)? -deps=build/e.1/mod.mf mod.d}]) - verify_lines(slines, [%r{ldc2 -of hello-d.exe build/e.1/main.o(bj)? build/e.1/mod.o(bj)?}]) - expect(`./hello-d.exe`.rstrip).to eq "Hello from D, value is 33!" - end - it "links with the D linker when object files were built from D sources" do test_dir("d") result = run_rscons(rsconscript: "link_objects.rb")