-
Notifications
You must be signed in to change notification settings - Fork 610
/
spec.rake
113 lines (92 loc) · 2.89 KB
/
spec.rake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# -*- ruby -*-
def spec_target
target = ENV['SPEC_TARGET'] || 'rubinius'
ENV['RBX_RUNTIME'] = 'runtime'
if target == 'rubinius' then
system %(bin/rbx -e 'puts "rubinius build: \#{Rubinius::BUILDREV}"')
end
target
end
desc "Run all 'known good' specs (task alias for spec:ci)"
task :spec => 'spec:ci'
namespace :spec do
namespace :setup do
# Setup for 'Subtend' specs. No need to call this yourself.
task :capi do
Dir["spec/capi/**/Rakefile"].each do |rakefile|
sh "rake -f #{rakefile}"
end
end
end
desc "Run all 'known good' specs with SydneyParser"
task :sydney do
warn "*** Running with SydneyParser enabled ***"
ENV['SYDNEY'] = '1'
sh "bin/mspec ci -t #{spec_target}"
end
desc "Run all rubyspecs under MatzRuby"
task :check do
sh "bin/mspec -t ruby #{spec_ruby}"
end
desc "Run continuous integration examples"
task :ci => :build do
sh "bin/mspec ci -t #{spec_target}"
end
desc "Run continuous integration examples including stdlib"
task :full => :build do
clear_compiler
sh "bin/mspec ci -t #{spec_target} -B full.mspec"
end
desc "Run continuous integration examples including stdlib with SydneyParser"
task :full_sydney => :build do
warn "*** Running with SydneyParser enabled ***"
ENV['SYDNEY'] = '1'
clear_compiler
sh "bin/mspec ci -t #{spec_target} -B full.mspec"
end
desc "Run continuous integration examples including stdlib on multiple processors"
task :multi => :build do
clear_compiler
sh "bin/mspec ci -j -t #{spec_target} -B full.mspec"
end
spec_targets = %w(core language library parser rubinius)
# Build a spec:<task_name> for each group of Rubinius specs
spec_targets.each do |group|
desc "Run #{group} examples"
task group do
sh "bin/mspec spec/#{group}"
end
end
desc "Run compiler examples"
task :compiler do
files = Dir["spec/compiler/*_spec.rb"].reject { |s| s =~ /new_compiler/ }
sh "bin/mspec -tr #{files.join(' ')}"
end
desc "Run capi (Rubinius C API) examples"
task :capi => "spec:setup:capi" do
sh "bin/mspec spec/capi"
end
# Specdiffs to make it easier to see what your changes have affected :)
desc 'Run specs and produce a diff against current base'
task :diff => 'diff:run'
namespace :diff do
desc 'Run specs and produce a diff against current base'
task :run do
system 'bin/mspec -f ci -o spec/reports/specdiff.txt spec'
system 'diff -u spec/reports/base.txt spec/reports/specdiff.txt'
system 'rm spec/reports/specdiff.txt'
end
desc 'Replace the base spec file with a new one'
task :replace do
system 'bin/mspec -f ci -o spec/reports/base.txt spec'
end
end
desc "Run the rspec specs for mspec"
task :mspec do
# Use the rspec spec runner (see mspec/README; gem install rspec)
sh 'spec ./mspec/spec'
end
task :r2r do
puts ARGV.inspect
end
end