require 'fileutils' describe Rscons do FileUtils.rm_rf('build_test') def setup_testdir(files, &blk) FileUtils.mkdir_p('build_test') files.each do |fname| src = "spec/build_items/#{fname}" dst = "build_test/#{fname}" FileUtils.mkdir_p(File.dirname(dst)) FileUtils.cp_r(src, dst) end Dir.chdir('build_test', &blk) FileUtils.rm_rf('build_test') end before do $stdout.stub(:puts) { nil } end ########################################################################### # Build Tests ########################################################################### it 'builds a C program with one source file' do setup_testdir(['simple.c']) do env = Rscons::Environment.new env.Program('simple', 'simple.c') File.exist?('simple.o').should be_true `./simple`.should =~ /This is a simple C program/ end end end