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