From 9e0ce5a55ca2f907b89ebf957f43d7d9e930fb35 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Sun, 25 Nov 2018 21:58:22 -0500 Subject: [PATCH] add spec for check_cfg with a :package argument --- build_tests/configure/check_cfg_package.rb | 7 ++++ spec/build_tests_spec.rb | 42 +++++++++++++++------- 2 files changed, 37 insertions(+), 12 deletions(-) create mode 100644 build_tests/configure/check_cfg_package.rb diff --git a/build_tests/configure/check_cfg_package.rb b/build_tests/configure/check_cfg_package.rb new file mode 100644 index 0000000..cab5ef5 --- /dev/null +++ b/build_tests/configure/check_cfg_package.rb @@ -0,0 +1,7 @@ +configure do + check_cfg package: "mypackage" +end + +Rscons::Environment.new(echo: :command) do |env| + env.Program("myconfigtest", "simple.c") +end diff --git a/spec/build_tests_spec.rb b/spec/build_tests_spec.rb index e332c83..28491d7 100644 --- a/spec/build_tests_spec.rb +++ b/spec/build_tests_spec.rb @@ -65,6 +65,7 @@ describe Rscons do def create_exe(exe_name, contents) exe_file = "#{@build_test_run_dir}/_bin/#{exe_name}" File.open(exe_file, "wb") do |fh| + fh.puts("#!/bin/sh") fh.puts(contents) end FileUtils.chmod(0755, exe_file) @@ -1790,18 +1791,35 @@ EOF end context "check_cfg" do - it "stores flags and uses them during a build operation" do - test_dir "configure" - create_exe "my-config", "echo '-DMYCONFIG -lm'" - result = run_rscons(rsconscript: "check_cfg.rb", op: "configure") - expect(result.stderr).to eq "" - expect(result.status).to eq 0 - expect(result.stdout).to match /Checking 'my-config'\.\.\. found/ - result = run_rscons(rsconscript: "check_cfg.rb", op: "build") - expect(result.stderr).to eq "" - expect(result.status).to eq 0 - expect(result.stdout).to match /gcc.*-o.*\.o.*-DMYCONFIG/ - expect(result.stdout).to match /gcc.*-o myconfigtest.*-lm/ + context "when passed a package" do + it "stores flags and uses them during a build operation" do + test_dir "configure" + create_exe "pkg-config", "echo '-DMYPACKAGE'" + result = run_rscons(rsconscript: "check_cfg_package.rb", op: "configure") + expect(result.stderr).to eq "" + expect(result.status).to eq 0 + expect(result.stdout).to match /Checking for package 'mypackage'\.\.\. found/ + result = run_rscons(rsconscript: "check_cfg_package.rb", op: "build") + expect(result.stderr).to eq "" + expect(result.status).to eq 0 + expect(result.stdout).to match /gcc.*-o.*\.o.*-DMYPACKAGE/ + end + end + + context "when passed a program" do + it "stores flags and uses them during a build operation" do + test_dir "configure" + create_exe "my-config", "echo '-DMYCONFIG -lm'" + result = run_rscons(rsconscript: "check_cfg.rb", op: "configure") + expect(result.stderr).to eq "" + expect(result.status).to eq 0 + expect(result.stdout).to match /Checking 'my-config'\.\.\. found/ + result = run_rscons(rsconscript: "check_cfg.rb", op: "build") + expect(result.stderr).to eq "" + expect(result.status).to eq 0 + expect(result.stdout).to match /gcc.*-o.*\.o.*-DMYCONFIG/ + expect(result.stdout).to match /gcc.*-o myconfigtest.*-lm/ + end end end end