rake 11.1.2 → 11.2.0

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.

Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +14 -0
  3. data/.rubocop.yml +0 -9
  4. data/.travis.yml +28 -0
  5. data/CONTRIBUTING.rdoc +3 -5
  6. data/Gemfile +3 -0
  7. data/History.rdoc +1770 -273
  8. data/Rakefile +15 -68
  9. data/appveyor.yml +24 -0
  10. data/bin/console +7 -0
  11. data/bin/setup +6 -0
  12. data/doc/release_notes/README.md +4 -0
  13. data/doc/release_notes/rake-0.7.3.rdoc +0 -0
  14. data/{bin → exe}/rake +0 -6
  15. data/lib/rake.rb +1 -3
  16. data/lib/rake/application.rb +3 -6
  17. data/lib/rake/cpu_counter.rb +3 -17
  18. data/lib/rake/file_utils.rb +22 -6
  19. data/lib/rake/packagetask.rb +12 -1
  20. data/lib/rake/rake_test_loader.rb +0 -1
  21. data/lib/rake/rule_recursion_overflow_error.rb +0 -1
  22. data/lib/rake/task.rb +3 -3
  23. data/lib/rake/task_arguments.rb +2 -1
  24. data/lib/rake/testtask.rb +5 -1
  25. data/lib/rake/thread_pool.rb +0 -1
  26. data/lib/rake/version.rb +2 -0
  27. data/rake.gemspec +30 -0
  28. metadata +21 -110
  29. data/.autotest +0 -7
  30. data/.togglerc +0 -7
  31. data/Manifest.txt +0 -154
  32. data/lib/rake/contrib/.document +0 -1
  33. data/rakelib/test_times.rake +0 -25
  34. data/test/file_creation.rb +0 -34
  35. data/test/helper.rb +0 -134
  36. data/test/support/rakefile_definitions.rb +0 -476
  37. data/test/support/ruby_runner.rb +0 -34
  38. data/test/test_private_reader.rb +0 -42
  39. data/test/test_rake.rb +0 -40
  40. data/test/test_rake_application.rb +0 -659
  41. data/test/test_rake_application_options.rb +0 -468
  42. data/test/test_rake_backtrace.rb +0 -119
  43. data/test/test_rake_clean.rb +0 -61
  44. data/test/test_rake_cpu_counter.rb +0 -68
  45. data/test/test_rake_definitions.rb +0 -84
  46. data/test/test_rake_directory_task.rb +0 -76
  47. data/test/test_rake_dsl.rb +0 -40
  48. data/test/test_rake_early_time.rb +0 -31
  49. data/test/test_rake_extension.rb +0 -59
  50. data/test/test_rake_file_creation_task.rb +0 -56
  51. data/test/test_rake_file_list.rb +0 -687
  52. data/test/test_rake_file_list_path_map.rb +0 -15
  53. data/test/test_rake_file_task.rb +0 -197
  54. data/test/test_rake_file_utils.rb +0 -318
  55. data/test/test_rake_ftp_file.rb +0 -74
  56. data/test/test_rake_functional.rb +0 -484
  57. data/test/test_rake_invocation_chain.rb +0 -64
  58. data/test/test_rake_late_time.rb +0 -18
  59. data/test/test_rake_linked_list.rb +0 -84
  60. data/test/test_rake_makefile_loader.rb +0 -46
  61. data/test/test_rake_multi_task.rb +0 -64
  62. data/test/test_rake_name_space.rb +0 -57
  63. data/test/test_rake_package_task.rb +0 -79
  64. data/test/test_rake_path_map.rb +0 -168
  65. data/test/test_rake_path_map_explode.rb +0 -34
  66. data/test/test_rake_path_map_partial.rb +0 -18
  67. data/test/test_rake_pathname_extensions.rb +0 -15
  68. data/test/test_rake_pseudo_status.rb +0 -21
  69. data/test/test_rake_rake_test_loader.rb +0 -20
  70. data/test/test_rake_reduce_compat.rb +0 -26
  71. data/test/test_rake_require.rb +0 -40
  72. data/test/test_rake_rules.rb +0 -388
  73. data/test/test_rake_scope.rb +0 -44
  74. data/test/test_rake_task.rb +0 -430
  75. data/test/test_rake_task_argument_parsing.rb +0 -119
  76. data/test/test_rake_task_arguments.rb +0 -134
  77. data/test/test_rake_task_manager.rb +0 -178
  78. data/test/test_rake_task_manager_argument_resolution.rb +0 -19
  79. data/test/test_rake_task_with_arguments.rb +0 -172
  80. data/test/test_rake_test_task.rb +0 -130
  81. data/test/test_rake_thread_pool.rb +0 -145
  82. data/test/test_rake_top_level_functions.rb +0 -71
  83. data/test/test_rake_win32.rb +0 -72
  84. data/test/test_thread_history_display.rb +0 -101
  85. data/test/test_trace_output.rb +0 -52
@@ -1,468 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
-
3
- TESTING_REQUIRE = []
4
-
5
- class TestRakeApplicationOptions < Rake::TestCase
6
-
7
- def setup
8
- super
9
-
10
- @testkey = ENV['TESTKEY']
11
- clear_argv
12
- Rake::FileUtilsExt.verbose_flag = false
13
- Rake::FileUtilsExt.nowrite_flag = false
14
- TESTING_REQUIRE.clear
15
- end
16
-
17
- def teardown
18
- ENV['TESTKEY'] = @testkey
19
- clear_argv
20
- Rake::FileUtilsExt.verbose_flag = false
21
- Rake::FileUtilsExt.nowrite_flag = false
22
-
23
- super
24
- end
25
-
26
- def clear_argv
27
- ARGV.pop until ARGV.empty?
28
- end
29
-
30
- def test_default_options
31
- opts = command_line
32
- assert_nil opts.backtrace
33
- assert_nil opts.dryrun
34
- assert_nil opts.ignore_system
35
- assert_nil opts.load_system
36
- assert_nil opts.always_multitask
37
- assert_nil opts.nosearch
38
- assert_equal ['rakelib'], opts.rakelib
39
- assert_nil opts.show_prereqs
40
- assert_nil opts.show_task_pattern
41
- assert_nil opts.show_tasks
42
- assert_nil opts.silent
43
- assert_nil opts.trace
44
- assert_nil opts.thread_pool_size
45
- assert_equal ['rakelib'], opts.rakelib
46
- assert ! Rake::FileUtilsExt.verbose_flag
47
- assert ! Rake::FileUtilsExt.nowrite_flag
48
- end
49
-
50
- def test_dry_run
51
- flags('--dry-run', '-n') do |opts|
52
- assert opts.dryrun
53
- assert opts.trace
54
- assert Rake::FileUtilsExt.verbose_flag
55
- assert Rake::FileUtilsExt.nowrite_flag
56
- end
57
- end
58
-
59
- def test_describe
60
- flags('--describe') do |opts|
61
- assert_equal :describe, opts.show_tasks
62
- assert_equal(//.to_s, opts.show_task_pattern.to_s)
63
- end
64
- end
65
-
66
- def test_describe_with_pattern
67
- flags('--describe=X') do |opts|
68
- assert_equal :describe, opts.show_tasks
69
- assert_equal(/X/.to_s, opts.show_task_pattern.to_s)
70
- end
71
- end
72
-
73
- def test_execute
74
- $xyzzy = 0
75
- flags('--execute=$xyzzy=1', '-e $xyzzy=1') do |opts|
76
- assert_equal 1, $xyzzy
77
- assert_equal :exit, @exit
78
- $xyzzy = 0
79
- end
80
- end
81
-
82
- def test_execute_and_continue
83
- $xyzzy = 0
84
- flags('--execute-continue=$xyzzy=1', '-E $xyzzy=1') do |opts|
85
- assert_equal 1, $xyzzy
86
- refute_equal :exit, @exit
87
- $xyzzy = 0
88
- end
89
- end
90
-
91
- def test_execute_and_print
92
- $xyzzy = 0
93
- out, = capture_io do
94
- flags('--execute-print=$xyzzy="pugh"', '-p $xyzzy="pugh"') do |opts|
95
- assert_equal 'pugh', $xyzzy
96
- assert_equal :exit, @exit
97
- $xyzzy = 0
98
- end
99
- end
100
-
101
- assert_match(/^pugh$/, out)
102
- end
103
-
104
- def test_help
105
- out, = capture_io do
106
- flags '--help', '-H', '-h'
107
- end
108
-
109
- assert_match(/\Arake/, out)
110
- assert_match(/\boptions\b/, out)
111
- assert_match(/\btargets\b/, out)
112
- assert_equal :exit, @exit
113
- end
114
-
115
- def test_jobs
116
- flags([]) do |opts|
117
- assert_nil opts.thread_pool_size
118
- end
119
- flags(['--jobs', '0'], ['-j', '0']) do |opts|
120
- assert_equal 0, opts.thread_pool_size
121
- end
122
- flags(['--jobs', '1'], ['-j', '1']) do |opts|
123
- assert_equal 0, opts.thread_pool_size
124
- end
125
- flags(['--jobs', '4'], ['-j', '4']) do |opts|
126
- assert_equal 3, opts.thread_pool_size
127
- end
128
- flags(['--jobs', 'asdas'], ['-j', 'asdas']) do |opts|
129
- assert_equal Rake.suggested_thread_count-1, opts.thread_pool_size
130
- end
131
- flags('--jobs', '-j') do |opts|
132
- assert opts.thread_pool_size > 1_000_000, "thread pool size should be huge (was #{opts.thread_pool_size})"
133
- end
134
- end
135
-
136
- def test_libdir
137
- flags(['--libdir', 'xx'], ['-I', 'xx'], ['-Ixx']) do |opts|
138
- $:.include?('xx')
139
- end
140
- ensure
141
- $:.delete('xx')
142
- end
143
-
144
- def test_multitask
145
- flags('--multitask', '-m') do |opts|
146
- assert_equal opts.always_multitask, true
147
- end
148
- end
149
-
150
- def test_rakefile
151
- flags(['--rakefile', 'RF'], ['--rakefile=RF'], ['-f', 'RF'], ['-fRF']) do |opts|
152
- assert_equal ['RF'], @app.instance_eval { @rakefiles }
153
- end
154
- end
155
-
156
- def test_rakelib
157
- dirs = %w(A B C).join(File::PATH_SEPARATOR)
158
- flags(
159
- ['--rakelibdir', dirs],
160
- ["--rakelibdir=#{dirs}"],
161
- ['-R', dirs],
162
- ["-R#{dirs}"]) do |opts|
163
- assert_equal ['A', 'B', 'C'], opts.rakelib
164
- end
165
- end
166
-
167
- def test_require
168
- $LOAD_PATH.unshift @tempdir
169
-
170
- open 'reqfile.rb', 'w' do |io| io << 'TESTING_REQUIRE << 1' end
171
- open 'reqfile2.rb', 'w' do |io| io << 'TESTING_REQUIRE << 2' end
172
- open 'reqfile3.rake', 'w' do |io| io << 'TESTING_REQUIRE << 3' end
173
-
174
- flags(['--require', 'reqfile'], '-rreqfile2', '-rreqfile3')
175
-
176
- assert_includes TESTING_REQUIRE, 1
177
- assert_includes TESTING_REQUIRE, 2
178
- assert_includes TESTING_REQUIRE, 3
179
-
180
- assert_equal 3, TESTING_REQUIRE.size
181
- ensure
182
- $LOAD_PATH.delete @tempdir
183
- end
184
-
185
- def test_missing_require
186
- ex = assert_raises(LoadError) do
187
- flags(['--require', 'test/missing']) do |opts|
188
- end
189
- end
190
- assert_match(/such file/, ex.message)
191
- assert_match(/test\/missing/, ex.message)
192
- end
193
-
194
- def test_prereqs
195
- flags('--prereqs', '-P') do |opts|
196
- assert opts.show_prereqs
197
- end
198
- end
199
-
200
- def test_quiet
201
- Rake::FileUtilsExt.verbose_flag = true
202
- flags('--quiet', '-q') do |opts|
203
- assert ! Rake::FileUtilsExt.verbose_flag, "verbose flag should be false"
204
- assert ! opts.silent, "should not be silent"
205
- end
206
- end
207
-
208
- def test_no_search
209
- flags('--nosearch', '--no-search', '-N') do |opts|
210
- assert opts.nosearch
211
- end
212
- end
213
-
214
- def test_silent
215
- Rake::FileUtilsExt.verbose_flag = true
216
- flags('--silent', '-s') do |opts|
217
- assert ! Rake::FileUtilsExt.verbose_flag, "verbose flag should be false"
218
- assert opts.silent, "should be silent"
219
- end
220
- end
221
-
222
- def test_system
223
- flags('--system', '-g') do |opts|
224
- assert opts.load_system
225
- end
226
- end
227
-
228
- def test_no_system
229
- flags('--no-system', '-G') do |opts|
230
- assert opts.ignore_system
231
- end
232
- end
233
-
234
- def test_trace
235
- flags('--trace', '-t') do |opts|
236
- assert opts.trace, "should enable trace option"
237
- assert opts.backtrace, "should enabled backtrace option"
238
- assert_equal $stderr, opts.trace_output
239
- assert Rake::FileUtilsExt.verbose_flag
240
- assert ! Rake::FileUtilsExt.nowrite_flag
241
- end
242
- end
243
-
244
- def test_trace_with_stdout
245
- flags('--trace=stdout', '-tstdout') do |opts|
246
- assert opts.trace, "should enable trace option"
247
- assert opts.backtrace, "should enabled backtrace option"
248
- assert_equal $stdout, opts.trace_output
249
- assert Rake::FileUtilsExt.verbose_flag
250
- assert ! Rake::FileUtilsExt.nowrite_flag
251
- end
252
- end
253
-
254
- def test_trace_with_stderr
255
- flags('--trace=stderr', '-tstderr') do |opts|
256
- assert opts.trace, "should enable trace option"
257
- assert opts.backtrace, "should enabled backtrace option"
258
- assert_equal $stderr, opts.trace_output
259
- assert Rake::FileUtilsExt.verbose_flag
260
- assert ! Rake::FileUtilsExt.nowrite_flag
261
- end
262
- end
263
-
264
- def test_trace_with_error
265
- ex = assert_raises(Rake::CommandLineOptionError) do
266
- flags('--trace=xyzzy') do |opts| end
267
- end
268
- assert_match(/un(known|recognized).*\btrace\b.*xyzzy/i, ex.message)
269
- end
270
-
271
- def test_trace_with_following_task_name
272
- flags(['--trace', 'taskname'], ['-t', 'taskname']) do |opts|
273
- assert opts.trace, "should enable trace option"
274
- assert opts.backtrace, "should enabled backtrace option"
275
- assert_equal $stderr, opts.trace_output
276
- assert Rake::FileUtilsExt.verbose_flag
277
- assert_equal ['taskname'], @app.top_level_tasks
278
- end
279
- end
280
-
281
- def test_backtrace
282
- flags('--backtrace') do |opts|
283
- assert opts.backtrace, "should enable backtrace option"
284
- assert_equal $stderr, opts.trace_output
285
- assert ! opts.trace, "should not enable trace option"
286
- end
287
- end
288
-
289
- def test_backtrace_with_stdout
290
- flags('--backtrace=stdout') do |opts|
291
- assert opts.backtrace, "should enable backtrace option"
292
- assert_equal $stdout, opts.trace_output
293
- assert ! opts.trace, "should not enable trace option"
294
- end
295
- end
296
-
297
- def test_backtrace_with_stderr
298
- flags('--backtrace=stderr') do |opts|
299
- assert opts.backtrace, "should enable backtrace option"
300
- assert_equal $stderr, opts.trace_output
301
- assert ! opts.trace, "should not enable trace option"
302
- end
303
- end
304
-
305
- def test_backtrace_with_error
306
- ex = assert_raises(Rake::CommandLineOptionError) do
307
- flags('--backtrace=xyzzy') do |opts| end
308
- end
309
- assert_match(/un(known|recognized).*\bbacktrace\b.*xyzzy/i, ex.message)
310
- end
311
-
312
- def test_backtrace_with_following_task_name
313
- flags(['--backtrace', 'taskname']) do |opts|
314
- assert ! opts.trace, "should enable trace option"
315
- assert opts.backtrace, "should enabled backtrace option"
316
- assert_equal $stderr, opts.trace_output
317
- assert_equal ['taskname'], @app.top_level_tasks
318
- end
319
- end
320
-
321
- def test_trace_rules
322
- flags('--rules') do |opts|
323
- assert opts.trace_rules
324
- end
325
- end
326
-
327
- def test_tasks
328
- flags('--tasks', '-T') do |opts|
329
- assert_equal :tasks, opts.show_tasks
330
- assert_equal(//.to_s, opts.show_task_pattern.to_s)
331
- assert_equal nil, opts.show_all_tasks
332
- end
333
- flags(['--tasks', 'xyz'], ['-Txyz']) do |opts|
334
- assert_equal :tasks, opts.show_tasks
335
- assert_equal(/xyz/.to_s, opts.show_task_pattern.to_s)
336
- assert_equal nil, opts.show_all_tasks
337
- end
338
- flags(['--tasks', 'xyz', '--comments']) do |opts|
339
- assert_equal :tasks, opts.show_tasks
340
- assert_equal(/xyz/.to_s, opts.show_task_pattern.to_s)
341
- assert_equal false, opts.show_all_tasks
342
- end
343
- end
344
-
345
- def test_where
346
- flags('--where', '-W') do |opts|
347
- assert_equal :lines, opts.show_tasks
348
- assert_equal(//.to_s, opts.show_task_pattern.to_s)
349
- assert_equal true, opts.show_all_tasks
350
- end
351
- flags(['--where', 'xyz'], ['-Wxyz']) do |opts|
352
- assert_equal :lines, opts.show_tasks
353
- assert_equal(/xyz/.to_s, opts.show_task_pattern.to_s)
354
- assert_equal true, opts.show_all_tasks
355
- end
356
- flags(['--where', 'xyz', '--comments'], ['-Wxyz', '--comments']) do |opts|
357
- assert_equal :lines, opts.show_tasks
358
- assert_equal(/xyz/.to_s, opts.show_task_pattern.to_s)
359
- assert_equal false, opts.show_all_tasks
360
- end
361
- end
362
-
363
- def test_no_deprecated_messages
364
- flags('--no-deprecation-warnings', '-X') do |opts|
365
- assert opts.ignore_deprecate
366
- end
367
- end
368
-
369
- def test_verbose
370
- capture_io do
371
- flags('--verbose', '-v') do |opts|
372
- assert Rake::FileUtilsExt.verbose_flag, "verbose should be true"
373
- assert ! opts.silent, "opts should not be silent"
374
- end
375
- end
376
- end
377
-
378
- def test_version
379
- out, _ = capture_io do
380
- flags '--version', '-V'
381
- end
382
-
383
- assert_match(/\bversion\b/, out)
384
- assert_match(/\b#{Rake::VERSION}\b/, out)
385
- assert_equal :exit, @exit
386
- end
387
-
388
- def test_bad_option
389
- _, err = capture_io do
390
- ex = assert_raises(OptionParser::InvalidOption) do
391
- flags('--bad-option')
392
- end
393
-
394
- if ex.message =~ /^While/ # Ruby 1.9 error message
395
- assert_match(/while parsing/i, ex.message)
396
- else # Ruby 1.8 error message
397
- assert_match(/(invalid|unrecognized) option/i, ex.message)
398
- assert_match(/--bad-option/, ex.message)
399
- end
400
- end
401
-
402
- assert_equal '', err
403
- end
404
-
405
- def test_task_collection
406
- command_line("a", "b")
407
- assert_equal ["a", "b"], @tasks.sort
408
- end
409
-
410
- def test_default_task_collection
411
- command_line()
412
- assert_equal ["default"], @tasks
413
- end
414
-
415
- def test_environment_definition
416
- ENV.delete('TESTKEY')
417
- command_line("TESTKEY=12")
418
- assert_equal '12', ENV['TESTKEY']
419
- end
420
-
421
- def test_multiline_environment_definition
422
- ENV.delete('TESTKEY')
423
- command_line("TESTKEY=a\nb\n")
424
- assert_equal "a\nb\n", ENV['TESTKEY']
425
- end
426
-
427
- def test_environment_and_tasks_together
428
- ENV.delete('TESTKEY')
429
- command_line("a", "b", "TESTKEY=12")
430
- assert_equal ["a", "b"], @tasks.sort
431
- assert_equal '12', ENV['TESTKEY']
432
- end
433
-
434
- def test_rake_explicit_task_library
435
- Rake.add_rakelib 'app/task', 'other'
436
-
437
- libs = Rake.application.options.rakelib
438
-
439
- assert libs.include?("app/task")
440
- assert libs.include?("other")
441
- end
442
-
443
- private
444
-
445
- def flags(*sets)
446
- sets.each do |set|
447
- ARGV.clear
448
-
449
- @exit = catch(:system_exit) { command_line(*set) }
450
-
451
- yield(@app.options) if block_given?
452
- end
453
- end
454
-
455
- def command_line(*options)
456
- options.each do |opt| ARGV << opt end
457
- @app = Rake::Application.new
458
- def @app.exit(*args)
459
- throw :system_exit, :exit
460
- end
461
- @app.instance_eval do
462
- args = handle_options
463
- collect_command_line_tasks(args)
464
- end
465
- @tasks = @app.top_level_tasks
466
- @app.options
467
- end
468
- end