From 06be9a812efe9d2712ad4503b8170110cc5aa370 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Sun, 7 Jul 2013 17:34:44 -0400 Subject: [PATCH] test building with a header file --- build_tests/header/build.rb | 3 +++ build_tests/header/header.c | 7 +++++++ build_tests/header/header.h | 6 ++++++ spec/build_tests_spec.rb | 11 +++++++++-- 4 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 build_tests/header/build.rb create mode 100644 build_tests/header/header.c create mode 100644 build_tests/header/header.h diff --git a/build_tests/header/build.rb b/build_tests/header/build.rb new file mode 100644 index 0000000..2314003 --- /dev/null +++ b/build_tests/header/build.rb @@ -0,0 +1,3 @@ +Rscons::Environment.new do |env| + env.Program('header', Dir['*.c']) +end diff --git a/build_tests/header/header.c b/build_tests/header/header.c new file mode 100644 index 0000000..fb2cef8 --- /dev/null +++ b/build_tests/header/header.c @@ -0,0 +1,7 @@ +#include +#include "header.h" + +int main(int argc, char *argv[]) +{ + printf("The value is %d\n", VALUE); +} diff --git a/build_tests/header/header.h b/build_tests/header/header.h new file mode 100644 index 0000000..5985e48 --- /dev/null +++ b/build_tests/header/header.h @@ -0,0 +1,6 @@ +#ifndef HEADER_H +#define HEADER_H + +#define VALUE 2 + +#endif diff --git a/spec/build_tests_spec.rb b/spec/build_tests_spec.rb index 1d871eb..33dca01 100644 --- a/spec/build_tests_spec.rb +++ b/spec/build_tests_spec.rb @@ -3,16 +3,17 @@ require 'fileutils' describe Rscons do before(:all) do FileUtils.rm_rf('build_tests_run') - FileUtils.cp_r('build_tests', 'build_tests_run') @owd = Dir.pwd end after(:each) do Dir.chdir(@owd) + FileUtils.rm_rf('build_tests_run') end def test_dir(build_test_directory) - Dir.chdir("build_tests_run/#{build_test_directory}") + FileUtils.cp_r("build_tests/#{build_test_directory}", 'build_tests_run') + Dir.chdir("build_tests_run") if File.exists?("build.rb") system("ruby -I #{@owd}/lib -r rscons build.rb") end @@ -27,4 +28,10 @@ describe Rscons do File.exists?('simple.o').should be_true `./simple`.should == "This is a simple C program\n" end + + it 'builds a C program with one source file and one header file' do + test_dir('header') + File.exists?('header.o').should be_true + `./header`.should == "The value is 2\n" + end end