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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
require File.expand_path('../helper', __FILE__)
require 'rake/testtask'
class TestRakeTestTask < Rake::TestCase
include Rake
def test_initialize
tt = Rake::TestTask.new do |t| end
refute_nil tt
assert_equal :test, tt.name
assert_equal ['lib'], tt.libs
assert_equal 'test/test*.rb', tt.pattern
assert_equal false, tt.verbose
assert Task.task_defined?(:test)
end
def test_initialize_override
tt = Rake::TestTask.new(:example) do |t|
t.description = "Run example tests"
t.libs = ['src', 'ext']
t.pattern = 'test/tc_*.rb'
t.verbose = true
end
refute_nil tt
assert_equal "Run example tests", tt.description
assert_equal :example, tt.name
assert_equal ['src', 'ext'], tt.libs
assert_equal 'test/tc_*.rb', tt.pattern
assert_equal true, tt.verbose
assert Task.task_defined?(:example)
end
def test_file_list_env_test
ENV['TEST'] = 'testfile.rb'
tt = Rake::TestTask.new do |t|
t.pattern = '*'
end
assert_equal ["testfile.rb"], tt.file_list.to_a
ensure
ENV.delete 'TEST'
end
def test_libs_equals
test_task = Rake::TestTask.new do |t|
t.libs << ["A", "B"]
end
path = %w[lib A B].join File::PATH_SEPARATOR
assert_equal "-I\"#{path}\"", test_task.ruby_opts_string
end
def test_libs_equals_empty
test_task = Rake::TestTask.new do |t|
t.libs = []
end
assert_equal '', test_task.ruby_opts_string
end
def test_pattern_equals
tt = Rake::TestTask.new do |t|
t.pattern = '*.rb'
end
assert_equal ['*.rb'], tt.file_list.to_a
end
def test_pattern_equals_test_files_equals
tt = Rake::TestTask.new do |t|
t.test_files = FileList['a.rb', 'b.rb']
t.pattern = '*.rb'
end
assert_equal ['a.rb', 'b.rb', '*.rb'], tt.file_list.to_a
end
def test_run_code_direct
test_task = Rake::TestTask.new do |t|
t.loader = :direct
end
assert_equal '-e "ARGV.each{|f| require f}"', test_task.run_code
end
def test_run_code_rake
spec = Gem::Specification.new 'rake', 0
spec.loaded_from = File.join Gem::Specification.dirs.last, 'rake-0.gemspec'
rake, Gem.loaded_specs['rake'] = Gem.loaded_specs['rake'], spec
test_task = Rake::TestTask.new do |t|
t.loader = :rake
end
assert_match(/\A-I".*?" ".*?"\Z/, test_task.run_code)
ensure
Gem.loaded_specs['rake'] = rake
end
def test_run_code_rake_default_gem
skip 'this ruby does not have default gems' unless
Gem::Specification.method_defined? :default_specifications_dir
default_spec = Gem::Specification.new 'rake', 0
default_spec.loaded_from = File.join Gem::Specification.default_specifications_dir, 'rake-0.gemspec'
begin
rake, Gem.loaded_specs['rake'] = Gem.loaded_specs['rake'], default_spec
test_task = Rake::TestTask.new do |t|
t.loader = :rake
end
assert_match(/\A(-I".*?" *)* ".*?"\Z/, test_task.run_code)
ensure
Gem.loaded_specs['rake'] = rake
end
end
def test_run_code_testrb_ruby_1_8_2
test_task = Rake::TestTask.new do |t|
t.loader = :testrb
end
def test_task.ruby_version() '1.8.2' end
assert_match(/^-S testrb +".*"$/, test_task.run_code)
end
def test_run_code_testrb_ruby_1_8_6
test_task = Rake::TestTask.new do |t|
t.loader = :testrb
end
def test_task.ruby_version() '1.8.6' end
assert_match(/^-S testrb +$/, test_task.run_code)
end
def test_test_files_equals
tt = Rake::TestTask.new do |t|
t.test_files = FileList['a.rb', 'b.rb']
end
assert_equal ["a.rb", 'b.rb'], tt.file_list.to_a
end
end
|