nnoble | 097ef9b | 2014-12-01 17:06:10 -0800 | [diff] [blame^] | 1 | # -*- ruby -*- |
| 2 | require 'rake/extensiontask' |
| 3 | require 'rspec/core/rake_task' |
| 4 | |
| 5 | |
| 6 | Rake::ExtensionTask.new 'grpc' do |ext| |
| 7 | ext.lib_dir = File.join('lib', 'grpc') |
| 8 | end |
| 9 | |
| 10 | SPEC_SUITES = [ |
| 11 | { :id => :wrapper, :title => 'wrapper layer', :files => %w(spec/*.rb) }, |
| 12 | { :id => :idiomatic, :title => 'idiomatic layer', :dir => %w(spec/generic) } |
| 13 | ] |
| 14 | |
| 15 | desc "Run all RSpec tests" |
| 16 | namespace :spec do |
| 17 | namespace :suite do |
| 18 | SPEC_SUITES.each do |suite| |
| 19 | desc "Run all specs in #{suite[:title]} spec suite" |
| 20 | RSpec::Core::RakeTask.new(suite[:id]) do |t| |
| 21 | spec_files = [] |
| 22 | if suite[:files] |
| 23 | suite[:files].each { |f| spec_files += Dir[f] } |
| 24 | end |
| 25 | |
| 26 | if suite[:dirs] |
| 27 | suite[:dirs].each { |f| spec_files += Dir["#{f}/**/*_spec.rb"] } |
| 28 | end |
| 29 | |
| 30 | t.pattern = spec_files |
| 31 | end |
| 32 | end |
| 33 | end |
| 34 | end |
| 35 | |
| 36 | desc "Run tests" |
| 37 | task :default => [ "spec:suite:wrapper", "spec:suite:idiomatic"] |
| 38 | task :spec => :compile |