rake 10.4.2 → 13.0.3

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