create rspec environment for build tests
This commit is contained in:
parent
a62d2605bf
commit
4152cfd1ea
1
.gitignore
vendored
1
.gitignore
vendored
@ -15,3 +15,4 @@ spec/reports
|
||||
test/tmp
|
||||
test/version_tmp
|
||||
tmp
|
||||
build_tests_run
|
||||
|
10
Rakefile
10
Rakefile
@ -1,5 +1,15 @@
|
||||
require "bundler"
|
||||
begin
|
||||
Bundler.setup(:default, :development)
|
||||
rescue Bundler::BundlerError => e
|
||||
raise LoadError.new("Unable to setup Bundler; you might need to `bundle install`: #{e.message}")
|
||||
end
|
||||
|
||||
require "bundler/gem_tasks"
|
||||
require "rspec/core/rake_task"
|
||||
require "rake/clean"
|
||||
|
||||
CLEAN.include 'build_tests_run'
|
||||
|
||||
RSpec::Core::RakeTask.new(:spec)
|
||||
|
||||
|
3
build_tests/simple/build.rb
Normal file
3
build_tests/simple/build.rb
Normal file
@ -0,0 +1,3 @@
|
||||
Rscons::Environment.new do |env|
|
||||
env.Program('simple', Dir['*.c'])
|
||||
end
|
6
build_tests/simple/simple.c
Normal file
6
build_tests/simple/simple.c
Normal file
@ -0,0 +1,6 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
printf("This is a simple C program\n");
|
||||
}
|
@ -16,4 +16,13 @@ Gem::Specification.new do |gem|
|
||||
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
||||
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
||||
gem.require_paths = ["lib"]
|
||||
|
||||
gem.add_development_dependency "rspec-core"
|
||||
gem.add_development_dependency "rspec-mocks"
|
||||
gem.add_development_dependency "rspec-expectations"
|
||||
gem.add_development_dependency "rspec"
|
||||
gem.add_development_dependency "rake"
|
||||
gem.add_development_dependency "simplecov"
|
||||
gem.add_development_dependency "json"
|
||||
gem.add_development_dependency 'rdoc'
|
||||
end
|
||||
|
30
spec/build_tests_spec.rb
Normal file
30
spec/build_tests_spec.rb
Normal file
@ -0,0 +1,30 @@
|
||||
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)
|
||||
end
|
||||
|
||||
def test_dir(build_test_directory)
|
||||
Dir.chdir("build_tests_run/#{build_test_directory}")
|
||||
if File.exists?('build.rb')
|
||||
system('ruby build.rb')
|
||||
end
|
||||
end
|
||||
|
||||
###########################################################################
|
||||
# Tests
|
||||
###########################################################################
|
||||
|
||||
it 'builds a C program with one source file' do
|
||||
test_dir('simple')
|
||||
File.exists?('simple.o').should be_true
|
||||
`./simple`.should == "This is a simple C program\n"
|
||||
end
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user