rake 10.0.4 → 10.1.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rake might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/doc/rakefile.rdoc +19 -0
- data/lib/rake/alt_system.rb +3 -4
- data/lib/rake/application.rb +114 -67
- data/lib/rake/backtrace.rb +9 -8
- data/lib/rake/contrib/ftptools.rb +6 -18
- data/lib/rake/contrib/sys.rb +2 -1
- data/lib/rake/dsl_definition.rb +1 -1
- data/lib/rake/ext/core.rb +2 -1
- data/lib/rake/ext/string.rb +1 -3
- data/lib/rake/file_list.rb +14 -14
- data/lib/rake/file_task.rb +1 -2
- data/lib/rake/file_utils.rb +9 -7
- data/lib/rake/file_utils_ext.rb +2 -1
- data/lib/rake/gempackagetask.rb +2 -1
- data/lib/rake/invocation_chain.rb +2 -0
- data/lib/rake/packagetask.rb +11 -6
- data/lib/rake/pseudo_status.rb +5 -0
- data/lib/rake/rdoctask.rb +2 -1
- data/lib/rake/ruby182_test_unit_fix.rb +4 -2
- data/lib/rake/runtest.rb +2 -2
- data/lib/rake/task.rb +9 -10
- data/lib/rake/task_arguments.rb +13 -2
- data/lib/rake/task_manager.rb +9 -8
- data/lib/rake/tasklib.rb +1 -1
- data/lib/rake/testtask.rb +10 -7
- data/lib/rake/thread_history_display.rb +1 -1
- data/lib/rake/thread_pool.rb +10 -4
- data/lib/rake/version.rb +3 -7
- data/lib/rake/win32.rb +3 -2
- data/test/helper.rb +28 -28
- data/test/test_rake_application.rb +14 -12
- data/test/test_rake_application_options.rb +7 -5
- data/test/test_rake_backtrace.rb +30 -1
- data/test/test_rake_definitions.rb +2 -3
- data/test/test_rake_file_creation_task.rb +2 -2
- data/test/test_rake_file_list.rb +9 -10
- data/test/test_rake_file_task.rb +4 -4
- data/test/test_rake_file_utils.rb +6 -2
- data/test/test_rake_ftp_file.rb +28 -13
- data/test/test_rake_functional.rb +4 -2
- data/test/test_rake_makefile_loader.rb +3 -1
- data/test/test_rake_multi_task.rb +2 -3
- data/test/test_rake_name_space.rb +1 -1
- data/test/test_rake_path_map.rb +23 -12
- data/test/test_rake_rake_test_loader.rb +2 -3
- data/test/test_rake_rules.rb +11 -12
- data/test/test_rake_task.rb +7 -7
- data/test/test_rake_task_arguments.rb +35 -2
- data/test/test_rake_task_manager.rb +3 -4
- data/test/test_rake_task_with_arguments.rb +2 -2
- data/test/test_rake_test_task.rb +1 -2
- data/test/test_rake_thread_pool.rb +36 -16
- data/test/test_thread_history_display.rb +16 -6
- data/test/test_trace_output.rb +2 -0
- metadata +2 -2
data/lib/rake/task_manager.rb
CHANGED
@@ -24,7 +24,7 @@ module Rake
|
|
24
24
|
task_name, arg_names, deps = resolve_args(args)
|
25
25
|
task_name = task_class.scope_name(@scope, task_name)
|
26
26
|
deps = [deps] unless deps.respond_to?(:to_ary)
|
27
|
-
deps = deps.
|
27
|
+
deps = deps.map { |d| d.to_s }
|
28
28
|
task = intern(task_class, task_name)
|
29
29
|
task.set_arg_names(arg_names) unless arg_names.empty?
|
30
30
|
if Rake::TaskManager.record_task_metadata
|
@@ -94,7 +94,7 @@ module Rake
|
|
94
94
|
#
|
95
95
|
def resolve_args_with_dependencies(args, hash) # :nodoc:
|
96
96
|
fail "Task Argument Error" if hash.size != 1
|
97
|
-
key, value = hash.map { |k, v| [k,v] }.first
|
97
|
+
key, value = hash.map { |k, v| [k, v] }.first
|
98
98
|
if args.empty?
|
99
99
|
task_name = key
|
100
100
|
arg_names = []
|
@@ -172,7 +172,7 @@ module Rake
|
|
172
172
|
def lookup_in_scope(name, scope)
|
173
173
|
n = scope.size
|
174
174
|
while n >= 0
|
175
|
-
tn = (scope[0,n] + [name]).join(':')
|
175
|
+
tn = (scope[0, n] + [name]).join(':')
|
176
176
|
task = @tasks[tn]
|
177
177
|
return task if task
|
178
178
|
n -= 1
|
@@ -213,7 +213,7 @@ module Rake
|
|
213
213
|
locations = caller
|
214
214
|
i = 0
|
215
215
|
while locations[i]
|
216
|
-
return locations[i+1] if locations[i] =~ /rake\/dsl_definition.rb/
|
216
|
+
return locations[i + 1] if locations[i] =~ /rake\/dsl_definition.rb/
|
217
217
|
i += 1
|
218
218
|
end
|
219
219
|
nil
|
@@ -227,18 +227,19 @@ module Rake
|
|
227
227
|
end
|
228
228
|
|
229
229
|
def trace_rule(level, message)
|
230
|
-
options.trace_output.puts "#{" "*level}#{message}" if
|
230
|
+
options.trace_output.puts "#{" " * level}#{message}" if
|
231
|
+
Rake.application.options.trace_rules
|
231
232
|
end
|
232
233
|
|
233
234
|
# Attempt to create a rule given the list of prerequisites.
|
234
235
|
def attempt_rule(task_name, extensions, block, level)
|
235
236
|
sources = make_sources(task_name, extensions)
|
236
|
-
prereqs = sources.
|
237
|
+
prereqs = sources.map { |source|
|
237
238
|
trace_rule level, "Attempting Rule #{task_name} => #{source}"
|
238
239
|
if File.exist?(source) || Rake::Task.task_defined?(source)
|
239
240
|
trace_rule level, "(#{task_name} => #{source} ... EXIST)"
|
240
241
|
source
|
241
|
-
elsif parent = enhance_with_matching_rule(source, level+1)
|
242
|
+
elsif parent = enhance_with_matching_rule(source, level + 1)
|
242
243
|
trace_rule level, "(#{task_name} => #{source} ... ENHANCE)"
|
243
244
|
parent.name
|
244
245
|
else
|
@@ -254,7 +255,7 @@ module Rake
|
|
254
255
|
# Make a list of sources from the list of file name extensions /
|
255
256
|
# translation procs.
|
256
257
|
def make_sources(task_name, extensions)
|
257
|
-
result = extensions.
|
258
|
+
result = extensions.map { |ext|
|
258
259
|
case ext
|
259
260
|
when /%/
|
260
261
|
task_name.pathmap(ext)
|
data/lib/rake/tasklib.rb
CHANGED
@@ -14,7 +14,7 @@ module Rake
|
|
14
14
|
# libraries depend on this so I can't remove it without breaking
|
15
15
|
# other people's code. So for now it stays for backwards
|
16
16
|
# compatibility. BUT DON'T USE IT.
|
17
|
-
def paste(a,b)
|
17
|
+
def paste(a, b) # :nodoc:
|
18
18
|
(a.to_s + b.to_s).intern
|
19
19
|
end
|
20
20
|
end
|
data/lib/rake/testtask.rb
CHANGED
@@ -93,15 +93,18 @@ module Rake
|
|
93
93
|
|
94
94
|
# Create the tasks defined by this task lib.
|
95
95
|
def define
|
96
|
-
desc "Run tests" + (@name
|
96
|
+
desc "Run tests" + (@name == :test ? "" : " for #{@name}")
|
97
97
|
task @name do
|
98
98
|
FileUtilsExt.verbose(@verbose) do
|
99
|
-
args =
|
99
|
+
args =
|
100
|
+
"#{ruby_opts_string} #{run_code} " +
|
101
|
+
"#{file_list_string} #{option_list}"
|
100
102
|
ruby args do |ok, status|
|
101
103
|
if !ok && status.respond_to?(:signaled?) && status.signaled?
|
102
104
|
raise SignalException.new(status.termsig)
|
103
105
|
elsif !ok
|
104
|
-
fail "Command failed with status (#{status.exitstatus}):
|
106
|
+
fail "Command failed with status (#{status.exitstatus}): " +
|
107
|
+
"[ruby #{args}]"
|
105
108
|
end
|
106
109
|
end
|
107
110
|
end
|
@@ -120,8 +123,8 @@ module Rake
|
|
120
123
|
|
121
124
|
def ruby_opts_string
|
122
125
|
opts = @ruby_opts.dup
|
123
|
-
opts.unshift(
|
124
|
-
opts.unshift(
|
126
|
+
opts.unshift("-I\"#{lib_path}\"") unless @libs.empty?
|
127
|
+
opts.unshift("-w") if @warning
|
125
128
|
opts.join(" ")
|
126
129
|
end
|
127
130
|
|
@@ -130,12 +133,12 @@ module Rake
|
|
130
133
|
end
|
131
134
|
|
132
135
|
def file_list_string
|
133
|
-
file_list.
|
136
|
+
file_list.map { |fn| "\"#{fn}\"" }.join(' ')
|
134
137
|
end
|
135
138
|
|
136
139
|
def file_list # :nodoc:
|
137
140
|
if ENV['TEST']
|
138
|
-
FileList[
|
141
|
+
FileList[ENV['TEST']]
|
139
142
|
else
|
140
143
|
result = []
|
141
144
|
result += @test_files.to_a if @test_files
|
data/lib/rake/thread_pool.rb
CHANGED
@@ -50,8 +50,10 @@ module Rake
|
|
50
50
|
rescue Exception => e
|
51
51
|
stat :joined
|
52
52
|
$stderr.puts e
|
53
|
-
$stderr.print "Queue contains #{@queue.size} items.
|
54
|
-
|
53
|
+
$stderr.print "Queue contains #{@queue.size} items. " +
|
54
|
+
"Thread pool contains #{@threads.count} threads\n"
|
55
|
+
$stderr.print "Current Thread #{Thread.current} status = " +
|
56
|
+
"#{Thread.current.status}\n"
|
55
57
|
$stderr.puts e.backtrace.join("\n")
|
56
58
|
@threads.each do |t|
|
57
59
|
$stderr.print "Thread #{t} status = #{t.status}\n"
|
@@ -125,8 +127,12 @@ module Rake
|
|
125
127
|
end
|
126
128
|
end
|
127
129
|
@threads << t
|
128
|
-
stat
|
129
|
-
|
130
|
+
stat(
|
131
|
+
:spawned,
|
132
|
+
:new_thread => t.object_id,
|
133
|
+
:thread_count => @threads.count)
|
134
|
+
@total_threads_in_play = @threads.count if
|
135
|
+
@threads.count > @total_threads_in_play
|
130
136
|
end
|
131
137
|
end
|
132
138
|
|
data/lib/rake/version.rb
CHANGED
@@ -1,13 +1,9 @@
|
|
1
1
|
module Rake
|
2
|
-
VERSION = '10.0.
|
2
|
+
VERSION = '10.1.0.beta.1'
|
3
3
|
|
4
4
|
module Version # :nodoc: all
|
5
|
-
MAJOR, MINOR, BUILD, = Rake::VERSION.split '.'
|
5
|
+
MAJOR, MINOR, BUILD, *OTHER = Rake::VERSION.split '.'
|
6
6
|
|
7
|
-
NUMBERS = [
|
8
|
-
MAJOR,
|
9
|
-
MINOR,
|
10
|
-
BUILD,
|
11
|
-
]
|
7
|
+
NUMBERS = [MAJOR, MINOR, BUILD, *OTHER]
|
12
8
|
end
|
13
9
|
end
|
data/lib/rake/win32.rb
CHANGED
@@ -40,8 +40,9 @@ module Rake
|
|
40
40
|
|
41
41
|
win32_shared_path ||= ENV['APPDATA']
|
42
42
|
win32_shared_path ||= ENV['USERPROFILE']
|
43
|
-
raise Win32HomeError,
|
44
|
-
|
43
|
+
raise Win32HomeError,
|
44
|
+
"Unable to determine home path environment variable." if
|
45
|
+
win32_shared_path.nil? or win32_shared_path.empty?
|
45
46
|
normalize(File.join(win32_shared_path, 'Rake'))
|
46
47
|
end
|
47
48
|
|
data/test/helper.rb
CHANGED
@@ -33,26 +33,27 @@ class Rake::TestCase < MiniTest::Unit::TestCase
|
|
33
33
|
|
34
34
|
test_dir = File.basename File.dirname File.expand_path __FILE__
|
35
35
|
|
36
|
-
@rake_root =
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
36
|
+
@rake_root =
|
37
|
+
if test_dir == 'test'
|
38
|
+
# rake repository
|
39
|
+
File.expand_path '../../', __FILE__
|
40
|
+
else
|
41
|
+
# ruby repository
|
42
|
+
File.expand_path '../../../', __FILE__
|
43
|
+
end
|
43
44
|
|
44
45
|
@rake_exec = File.join @rake_root, 'bin', 'rake'
|
45
46
|
@rake_lib = File.join @rake_root, 'lib'
|
46
47
|
|
47
|
-
@
|
48
|
-
@
|
49
|
-
@
|
50
|
-
@
|
51
|
-
@
|
52
|
-
@
|
53
|
-
@
|
54
|
-
@
|
55
|
-
@
|
48
|
+
@orig_pwd = Dir.pwd
|
49
|
+
@orig_appdata = ENV['APPDATA']
|
50
|
+
@orig_home = ENV['HOME']
|
51
|
+
@orig_homedrive = ENV['HOMEDRIVE']
|
52
|
+
@orig_homepath = ENV['HOMEPATH']
|
53
|
+
@orig_rake_columns = ENV['RAKE_COLUMNS']
|
54
|
+
@orig_rake_system = ENV['RAKE_SYSTEM']
|
55
|
+
@orig_rakeopt = ENV['RAKEOPT']
|
56
|
+
@orig_userprofile = ENV['USERPROFILE']
|
56
57
|
ENV.delete 'RAKE_COLUMNS'
|
57
58
|
ENV.delete 'RAKE_SYSTEM'
|
58
59
|
ENV.delete 'RAKEOPT'
|
@@ -70,22 +71,22 @@ class Rake::TestCase < MiniTest::Unit::TestCase
|
|
70
71
|
end
|
71
72
|
|
72
73
|
def teardown
|
73
|
-
Dir.chdir @
|
74
|
+
Dir.chdir @orig_pwd
|
74
75
|
FileUtils.rm_rf @tempdir
|
75
76
|
|
76
|
-
if @
|
77
|
-
ENV['APPDATA'] = @
|
77
|
+
if @orig_appdata
|
78
|
+
ENV['APPDATA'] = @orig_appdata
|
78
79
|
else
|
79
80
|
ENV.delete 'APPDATA'
|
80
81
|
end
|
81
82
|
|
82
|
-
ENV['HOME'] = @
|
83
|
-
ENV['HOMEDRIVE'] = @
|
84
|
-
ENV['HOMEPATH'] = @
|
85
|
-
ENV['RAKE_COLUMNS'] = @
|
86
|
-
ENV['RAKE_SYSTEM'] = @
|
87
|
-
ENV['RAKEOPT'] = @
|
88
|
-
ENV['USERPROFILE'] = @
|
83
|
+
ENV['HOME'] = @orig_home
|
84
|
+
ENV['HOMEDRIVE'] = @orig_homedrive
|
85
|
+
ENV['HOMEPATH'] = @orig_homepath
|
86
|
+
ENV['RAKE_COLUMNS'] = @orig_rake_columns
|
87
|
+
ENV['RAKE_SYSTEM'] = @orig_rake_system
|
88
|
+
ENV['RAKEOPT'] = @orig_rakeopt
|
89
|
+
ENV['USERPROFILE'] = @orig_userprofile
|
89
90
|
end
|
90
91
|
|
91
92
|
def ignore_deprecations
|
@@ -111,7 +112,7 @@ end
|
|
111
112
|
ENV['RAKE_SYSTEM'] = @system_dir
|
112
113
|
end
|
113
114
|
|
114
|
-
def rakefile
|
115
|
+
def rakefile(contents)
|
115
116
|
open 'Rakefile', 'w' do |io|
|
116
117
|
io << contents
|
117
118
|
end
|
@@ -288,7 +289,6 @@ FileList['src/*'].each do |src|
|
|
288
289
|
target = File.join TARGET_DIR, File.basename(src)
|
289
290
|
file target => [src, TARGET_DIR] do
|
290
291
|
cp src, target
|
291
|
-
# sleep 3 if src !~ /foo#{N-1}$/ # I'm commenting out this sleep, it doesn't seem to do anything.
|
292
292
|
end
|
293
293
|
task :run => target
|
294
294
|
end
|
@@ -23,13 +23,14 @@ class TestRakeApplication < Rake::TestCase
|
|
23
23
|
@app.terminal_columns = 80
|
24
24
|
@app.options.show_tasks = :tasks
|
25
25
|
@app.options.show_task_pattern = //
|
26
|
-
|
26
|
+
numbers = "1234567890" * 8
|
27
|
+
@app.last_description = numbers
|
27
28
|
@app.define_task(Rake::Task, "t")
|
28
29
|
|
29
30
|
out, = capture_io do @app.instance_eval { display_tasks_and_comments } end
|
30
31
|
|
31
32
|
assert_match(/^rake t/, out)
|
32
|
-
assert_match(/#
|
33
|
+
assert_match(/# #{numbers[0, 65]}\.\.\./, out)
|
33
34
|
end
|
34
35
|
|
35
36
|
def test_display_tasks_with_task_name_wider_than_tty_display
|
@@ -38,7 +39,7 @@ class TestRakeApplication < Rake::TestCase
|
|
38
39
|
@app.options.show_task_pattern = //
|
39
40
|
task_name = "task name" * 80
|
40
41
|
@app.last_description = "something short"
|
41
|
-
@app.define_task(Rake::Task, task_name
|
42
|
+
@app.define_task(Rake::Task, task_name)
|
42
43
|
|
43
44
|
out, = capture_io do @app.instance_eval { display_tasks_and_comments } end
|
44
45
|
|
@@ -53,7 +54,7 @@ class TestRakeApplication < Rake::TestCase
|
|
53
54
|
description = "something short"
|
54
55
|
task_name = "task name" * 80
|
55
56
|
@app.last_description = "something short"
|
56
|
-
@app.define_task(Rake::Task, task_name
|
57
|
+
@app.define_task(Rake::Task, task_name)
|
57
58
|
|
58
59
|
out, = capture_io do @app.instance_eval { display_tasks_and_comments } end
|
59
60
|
|
@@ -72,18 +73,19 @@ class TestRakeApplication < Rake::TestCase
|
|
72
73
|
assert_match(/# #{@app.last_description}/, out)
|
73
74
|
end
|
74
75
|
|
75
|
-
def
|
76
|
+
def test_truncating_comments_to_a_non_tty
|
76
77
|
@app.terminal_columns = 80
|
77
78
|
@app.options.show_tasks = :tasks
|
78
79
|
@app.options.show_task_pattern = //
|
79
80
|
@app.tty_output = false
|
80
|
-
|
81
|
+
numbers = "1234567890" * 8
|
82
|
+
@app.last_description = numbers
|
81
83
|
@app.define_task(Rake::Task, "t")
|
82
84
|
|
83
85
|
out, = capture_io do @app.instance_eval { display_tasks_and_comments } end
|
84
86
|
|
85
87
|
assert_match(/^rake t/, out)
|
86
|
-
assert_match(/#
|
88
|
+
assert_match(/# #{numbers[0, 65]}\.\.\./, out)
|
87
89
|
end
|
88
90
|
|
89
91
|
def test_describe_tasks
|
@@ -114,7 +116,7 @@ class TestRakeApplication < Rake::TestCase
|
|
114
116
|
|
115
117
|
def test_not_finding_rakefile
|
116
118
|
@app.instance_eval { @rakefiles = ['NEVER_FOUND'] }
|
117
|
-
assert(
|
119
|
+
assert(! @app.instance_eval do have_rakefile end)
|
118
120
|
assert_nil @app.rakefile
|
119
121
|
end
|
120
122
|
|
@@ -245,7 +247,7 @@ class TestRakeApplication < Rake::TestCase
|
|
245
247
|
end
|
246
248
|
|
247
249
|
def test_terminal_columns
|
248
|
-
|
250
|
+
old_rake_columns = ENV['RAKE_COLUMNS']
|
249
251
|
|
250
252
|
ENV['RAKE_COLUMNS'] = '42'
|
251
253
|
|
@@ -253,10 +255,10 @@ class TestRakeApplication < Rake::TestCase
|
|
253
255
|
|
254
256
|
assert_equal 42, app.terminal_columns
|
255
257
|
ensure
|
256
|
-
if
|
258
|
+
if old_rake_columns
|
257
259
|
ENV['RAKE_COLUMNS'].delete
|
258
260
|
else
|
259
|
-
ENV['RAKE_COLUMNS'] =
|
261
|
+
ENV['RAKE_COLUMNS'] = old_rake_columns
|
260
262
|
end
|
261
263
|
end
|
262
264
|
|
@@ -289,7 +291,7 @@ class TestRakeApplication < Rake::TestCase
|
|
289
291
|
# HACK no assertions
|
290
292
|
end
|
291
293
|
|
292
|
-
def
|
294
|
+
def test_handle_options_should_strip_options_from_argv
|
293
295
|
assert !@app.options.trace
|
294
296
|
|
295
297
|
valid_option = '--trace'
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require File.expand_path('../helper', __FILE__)
|
2
2
|
|
3
|
-
TESTING_REQUIRE = [
|
3
|
+
TESTING_REQUIRE = []
|
4
4
|
|
5
5
|
class TestRakeApplicationOptions < Rake::TestCase
|
6
6
|
|
@@ -22,9 +22,7 @@ class TestRakeApplicationOptions < Rake::TestCase
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def clear_argv
|
25
|
-
|
26
|
-
ARGV.pop
|
27
|
-
end
|
25
|
+
ARGV.pop until ARGV.empty?
|
28
26
|
end
|
29
27
|
|
30
28
|
def test_default_options
|
@@ -146,7 +144,11 @@ class TestRakeApplicationOptions < Rake::TestCase
|
|
146
144
|
|
147
145
|
def test_rakelib
|
148
146
|
dirs = %w(A B C).join(File::PATH_SEPARATOR)
|
149
|
-
flags(
|
147
|
+
flags(
|
148
|
+
['--rakelibdir', dirs],
|
149
|
+
["--rakelibdir=#{dirs}"],
|
150
|
+
['-R', dirs],
|
151
|
+
["-R#{dirs}"]) do |opts|
|
150
152
|
assert_equal ['A', 'B', 'C'], opts.rakelib
|
151
153
|
end
|
152
154
|
end
|
data/test/test_rake_backtrace.rb
CHANGED
@@ -1,6 +1,34 @@
|
|
1
1
|
require File.expand_path('../helper', __FILE__)
|
2
2
|
require 'open3'
|
3
3
|
|
4
|
+
class TestBacktraceSuppression < Rake::TestCase
|
5
|
+
def test_bin_rake_suppressed
|
6
|
+
paths = ["something/bin/rake:12"]
|
7
|
+
|
8
|
+
actual = Rake::Backtrace.collapse(paths)
|
9
|
+
|
10
|
+
assert_equal [], actual
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_system_dir_suppressed
|
14
|
+
path = RbConfig::CONFIG['rubylibprefix']
|
15
|
+
paths = [path + ":12"]
|
16
|
+
|
17
|
+
actual = Rake::Backtrace.collapse(paths)
|
18
|
+
|
19
|
+
assert_equal [], actual
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_near_system_dir_isnt_suppressed
|
23
|
+
path = RbConfig::CONFIG['rubylibprefix']
|
24
|
+
paths = [" " + path + ":12"]
|
25
|
+
|
26
|
+
actual = Rake::Backtrace.collapse(paths)
|
27
|
+
|
28
|
+
assert_equal paths, actual
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
4
32
|
class TestRakeBacktrace < Rake::TestCase
|
5
33
|
|
6
34
|
def setup
|
@@ -83,7 +111,8 @@ class TestRakeBacktrace < Rake::TestCase
|
|
83
111
|
return
|
84
112
|
end
|
85
113
|
end
|
86
|
-
flunk "expected #{pattern.inspect} to match something in:\n
|
114
|
+
flunk "expected #{pattern.inspect} to match something in:\n" +
|
115
|
+
"#{lines.join("\n ")}"
|
87
116
|
end
|
88
117
|
|
89
118
|
end
|