blob: 11b3d04f3fd0be05470b6ec9b1a715d62586d12b [file] [log] [blame]
nnoble097ef9b2014-12-01 17:06:10 -08001# -*- ruby -*-
2require 'rake/extensiontask'
3require 'rspec/core/rake_task'
4
5
6Rake::ExtensionTask.new 'grpc' do |ext|
7 ext.lib_dir = File.join('lib', 'grpc')
8end
9
10SPEC_SUITES = [
11 { :id => :wrapper, :title => 'wrapper layer', :files => %w(spec/*.rb) },
12 { :id => :idiomatic, :title => 'idiomatic layer', :dir => %w(spec/generic) }
13]
14
15desc "Run all RSpec tests"
16namespace :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
34end
35
36desc "Run tests"
37task :default => [ "spec:suite:wrapper", "spec:suite:idiomatic"]
38task :spec => :compile