rake 10.5.0 → 13.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. checksums.yaml +5 -5
  2. data/CONTRIBUTING.rdoc +13 -8
  3. data/Gemfile +10 -0
  4. data/History.rdoc +2015 -288
  5. data/README.rdoc +40 -24
  6. data/Rakefile +25 -65
  7. data/bin/bundle +105 -0
  8. data/bin/console +7 -0
  9. data/bin/rake +20 -24
  10. data/bin/rdoc +29 -0
  11. data/bin/rubocop +29 -0
  12. data/bin/setup +6 -0
  13. data/doc/jamis.rb +1 -0
  14. data/doc/rake.1 +139 -124
  15. data/doc/rakefile.rdoc +2 -4
  16. data/exe/rake +27 -0
  17. data/lib/rake.rb +35 -43
  18. data/lib/rake/application.rb +124 -90
  19. data/lib/rake/backtrace.rb +3 -2
  20. data/lib/rake/clean.rb +7 -5
  21. data/lib/rake/cloneable.rb +1 -0
  22. data/lib/rake/cpu_counter.rb +10 -28
  23. data/lib/rake/default_loader.rb +1 -0
  24. data/lib/rake/dsl_definition.rb +5 -11
  25. data/lib/rake/early_time.rb +1 -0
  26. data/lib/rake/ext/core.rb +1 -0
  27. data/lib/rake/ext/string.rb +22 -21
  28. data/lib/rake/file_creation_task.rb +4 -3
  29. data/lib/rake/file_list.rb +34 -27
  30. data/lib/rake/file_task.rb +12 -4
  31. data/lib/rake/file_utils.rb +38 -32
  32. data/lib/rake/file_utils_ext.rb +8 -18
  33. data/lib/rake/invocation_chain.rb +1 -0
  34. data/lib/rake/invocation_exception_mixin.rb +1 -0
  35. data/lib/rake/late_time.rb +2 -1
  36. data/lib/rake/linked_list.rb +24 -15
  37. data/lib/rake/loaders/makefile.rb +5 -4
  38. data/lib/rake/multi_task.rb +2 -1
  39. data/lib/rake/name_space.rb +1 -1
  40. data/lib/rake/packagetask.rb +40 -17
  41. data/lib/rake/phony.rb +2 -1
  42. data/lib/rake/private_reader.rb +1 -0
  43. data/lib/rake/promise.rb +13 -12
  44. data/lib/rake/pseudo_status.rb +1 -0
  45. data/lib/rake/rake_module.rb +30 -1
  46. data/lib/rake/rake_test_loader.rb +18 -13
  47. data/lib/rake/rule_recursion_overflow_error.rb +2 -2
  48. data/lib/rake/scope.rb +3 -2
  49. data/lib/rake/task.rb +82 -31
  50. data/lib/rake/task_argument_error.rb +1 -0
  51. data/lib/rake/task_arguments.rb +15 -4
  52. data/lib/rake/task_manager.rb +54 -30
  53. data/lib/rake/tasklib.rb +2 -14
  54. data/lib/rake/testtask.rb +37 -61
  55. data/lib/rake/thread_history_display.rb +4 -3
  56. data/lib/rake/thread_pool.rb +16 -17
  57. data/lib/rake/trace_output.rb +2 -1
  58. data/lib/rake/version.rb +4 -1
  59. data/lib/rake/win32.rb +10 -15
  60. data/rake.gemspec +43 -0
  61. metadata +32 -219
  62. data/.autotest +0 -7
  63. data/.rubocop.yml +0 -27
  64. data/.togglerc +0 -7
  65. data/Manifest.txt +0 -166
  66. data/doc/release_notes/rake-0.4.14.rdoc +0 -23
  67. data/doc/release_notes/rake-0.4.15.rdoc +0 -35
  68. data/doc/release_notes/rake-0.5.0.rdoc +0 -53
  69. data/doc/release_notes/rake-0.5.3.rdoc +0 -78
  70. data/doc/release_notes/rake-0.5.4.rdoc +0 -46
  71. data/doc/release_notes/rake-0.6.0.rdoc +0 -141
  72. data/doc/release_notes/rake-0.7.0.rdoc +0 -119
  73. data/doc/release_notes/rake-0.7.1.rdoc +0 -59
  74. data/doc/release_notes/rake-0.7.2.rdoc +0 -121
  75. data/doc/release_notes/rake-0.7.3.rdoc +0 -47
  76. data/doc/release_notes/rake-0.8.0.rdoc +0 -114
  77. data/doc/release_notes/rake-0.8.2.rdoc +0 -165
  78. data/doc/release_notes/rake-0.8.3.rdoc +0 -112
  79. data/doc/release_notes/rake-0.8.4.rdoc +0 -147
  80. data/doc/release_notes/rake-0.8.5.rdoc +0 -53
  81. data/doc/release_notes/rake-0.8.6.rdoc +0 -37
  82. data/doc/release_notes/rake-0.8.7.rdoc +0 -55
  83. data/doc/release_notes/rake-0.9.0.rdoc +0 -112
  84. data/doc/release_notes/rake-0.9.1.rdoc +0 -52
  85. data/doc/release_notes/rake-0.9.2.2.rdoc +0 -55
  86. data/doc/release_notes/rake-0.9.2.rdoc +0 -49
  87. data/doc/release_notes/rake-0.9.3.rdoc +0 -102
  88. data/doc/release_notes/rake-0.9.4.rdoc +0 -60
  89. data/doc/release_notes/rake-0.9.5.rdoc +0 -55
  90. data/doc/release_notes/rake-0.9.6.rdoc +0 -64
  91. data/doc/release_notes/rake-10.0.0.rdoc +0 -178
  92. data/doc/release_notes/rake-10.0.1.rdoc +0 -58
  93. data/doc/release_notes/rake-10.0.2.rdoc +0 -53
  94. data/doc/release_notes/rake-10.0.3.rdoc +0 -191
  95. data/doc/release_notes/rake-10.1.0.rdoc +0 -61
  96. data/lib/rake/alt_system.rb +0 -110
  97. data/lib/rake/contrib/.document +0 -1
  98. data/lib/rake/contrib/compositepublisher.rb +0 -21
  99. data/lib/rake/contrib/ftptools.rb +0 -137
  100. data/lib/rake/contrib/publisher.rb +0 -81
  101. data/lib/rake/contrib/rubyforgepublisher.rb +0 -18
  102. data/lib/rake/contrib/sshpublisher.rb +0 -61
  103. data/lib/rake/contrib/sys.rb +0 -4
  104. data/lib/rake/ext/module.rb +0 -2
  105. data/lib/rake/ext/pathname.rb +0 -25
  106. data/lib/rake/ext/time.rb +0 -18
  107. data/lib/rake/gempackagetask.rb +0 -4
  108. data/lib/rake/pathmap.rb +0 -3
  109. data/lib/rake/rdoctask.rb +0 -4
  110. data/lib/rake/ruby182_test_unit_fix.rb +0 -29
  111. data/lib/rake/runtest.rb +0 -27
  112. data/rakelib/publish.rake +0 -20
  113. data/rakelib/test_times.rake +0 -25
  114. data/test/file_creation.rb +0 -34
  115. data/test/helper.rb +0 -129
  116. data/test/support/rakefile_definitions.rb +0 -478
  117. data/test/support/ruby_runner.rb +0 -34
  118. data/test/test_private_reader.rb +0 -42
  119. data/test/test_rake.rb +0 -40
  120. data/test/test_rake_application.rb +0 -643
  121. data/test/test_rake_application_options.rb +0 -468
  122. data/test/test_rake_backtrace.rb +0 -119
  123. data/test/test_rake_clean.rb +0 -61
  124. data/test/test_rake_cpu_counter.rb +0 -68
  125. data/test/test_rake_definitions.rb +0 -84
  126. data/test/test_rake_directory_task.rb +0 -76
  127. data/test/test_rake_dsl.rb +0 -40
  128. data/test/test_rake_early_time.rb +0 -31
  129. data/test/test_rake_extension.rb +0 -59
  130. data/test/test_rake_file_creation_task.rb +0 -56
  131. data/test/test_rake_file_list.rb +0 -670
  132. data/test/test_rake_file_list_path_map.rb +0 -8
  133. data/test/test_rake_file_task.rb +0 -197
  134. data/test/test_rake_file_utils.rb +0 -314
  135. data/test/test_rake_ftp_file.rb +0 -74
  136. data/test/test_rake_functional.rb +0 -482
  137. data/test/test_rake_invocation_chain.rb +0 -64
  138. data/test/test_rake_late_time.rb +0 -18
  139. data/test/test_rake_linked_list.rb +0 -84
  140. data/test/test_rake_makefile_loader.rb +0 -46
  141. data/test/test_rake_multi_task.rb +0 -64
  142. data/test/test_rake_name_space.rb +0 -57
  143. data/test/test_rake_package_task.rb +0 -79
  144. data/test/test_rake_path_map.rb +0 -168
  145. data/test/test_rake_path_map_explode.rb +0 -34
  146. data/test/test_rake_path_map_partial.rb +0 -18
  147. data/test/test_rake_pathname_extensions.rb +0 -15
  148. data/test/test_rake_pseudo_status.rb +0 -21
  149. data/test/test_rake_rake_test_loader.rb +0 -20
  150. data/test/test_rake_reduce_compat.rb +0 -26
  151. data/test/test_rake_require.rb +0 -40
  152. data/test/test_rake_rules.rb +0 -388
  153. data/test/test_rake_scope.rb +0 -44
  154. data/test/test_rake_task.rb +0 -393
  155. data/test/test_rake_task_argument_parsing.rb +0 -119
  156. data/test/test_rake_task_arguments.rb +0 -127
  157. data/test/test_rake_task_lib.rb +0 -9
  158. data/test/test_rake_task_manager.rb +0 -178
  159. data/test/test_rake_task_manager_argument_resolution.rb +0 -19
  160. data/test/test_rake_task_with_arguments.rb +0 -172
  161. data/test/test_rake_test_task.rb +0 -146
  162. data/test/test_rake_thread_pool.rb +0 -145
  163. data/test/test_rake_top_level_functions.rb +0 -71
  164. data/test/test_rake_win32.rb +0 -72
  165. data/test/test_thread_history_display.rb +0 -101
  166. 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#{RAKEVERSION}\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