rake 10.5.0 → 13.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (159) hide show
  1. checksums.yaml +5 -5
  2. data/History.rdoc +2032 -288
  3. data/README.rdoc +40 -24
  4. data/doc/jamis.rb +1 -0
  5. data/doc/rake.1 +139 -124
  6. data/doc/rakefile.rdoc +2 -4
  7. data/{bin → exe}/rake +1 -7
  8. data/lib/rake/application.rb +131 -90
  9. data/lib/rake/backtrace.rb +3 -2
  10. data/lib/rake/clean.rb +7 -5
  11. data/lib/rake/cloneable.rb +1 -0
  12. data/lib/rake/cpu_counter.rb +10 -28
  13. data/lib/rake/default_loader.rb +1 -0
  14. data/lib/rake/dsl_definition.rb +5 -11
  15. data/lib/rake/early_time.rb +1 -0
  16. data/lib/rake/ext/core.rb +1 -0
  17. data/lib/rake/ext/string.rb +22 -21
  18. data/lib/rake/file_creation_task.rb +4 -3
  19. data/lib/rake/file_list.rb +34 -27
  20. data/lib/rake/file_task.rb +12 -4
  21. data/lib/rake/file_utils.rb +38 -32
  22. data/lib/rake/file_utils_ext.rb +8 -18
  23. data/lib/rake/invocation_chain.rb +1 -0
  24. data/lib/rake/invocation_exception_mixin.rb +1 -0
  25. data/lib/rake/late_time.rb +2 -1
  26. data/lib/rake/linked_list.rb +24 -15
  27. data/lib/rake/loaders/makefile.rb +5 -4
  28. data/lib/rake/multi_task.rb +2 -1
  29. data/lib/rake/name_space.rb +1 -1
  30. data/lib/rake/packagetask.rb +40 -17
  31. data/lib/rake/phony.rb +2 -1
  32. data/lib/rake/private_reader.rb +1 -0
  33. data/lib/rake/promise.rb +13 -12
  34. data/lib/rake/pseudo_status.rb +1 -0
  35. data/lib/rake/rake_module.rb +30 -1
  36. data/lib/rake/rake_test_loader.rb +9 -4
  37. data/lib/rake/rule_recursion_overflow_error.rb +2 -2
  38. data/lib/rake/scope.rb +3 -2
  39. data/lib/rake/task.rb +82 -31
  40. data/lib/rake/task_argument_error.rb +1 -0
  41. data/lib/rake/task_arguments.rb +15 -4
  42. data/lib/rake/task_manager.rb +56 -32
  43. data/lib/rake/tasklib.rb +2 -14
  44. data/lib/rake/testtask.rb +37 -61
  45. data/lib/rake/thread_history_display.rb +4 -3
  46. data/lib/rake/thread_pool.rb +16 -17
  47. data/lib/rake/trace_output.rb +2 -1
  48. data/lib/rake/version.rb +4 -1
  49. data/lib/rake/win32.rb +10 -15
  50. data/lib/rake.rb +35 -43
  51. data/rake.gemspec +100 -0
  52. metadata +27 -223
  53. data/.autotest +0 -7
  54. data/.rubocop.yml +0 -27
  55. data/.togglerc +0 -7
  56. data/CONTRIBUTING.rdoc +0 -38
  57. data/Manifest.txt +0 -166
  58. data/Rakefile +0 -81
  59. data/doc/release_notes/rake-0.4.14.rdoc +0 -23
  60. data/doc/release_notes/rake-0.4.15.rdoc +0 -35
  61. data/doc/release_notes/rake-0.5.0.rdoc +0 -53
  62. data/doc/release_notes/rake-0.5.3.rdoc +0 -78
  63. data/doc/release_notes/rake-0.5.4.rdoc +0 -46
  64. data/doc/release_notes/rake-0.6.0.rdoc +0 -141
  65. data/doc/release_notes/rake-0.7.0.rdoc +0 -119
  66. data/doc/release_notes/rake-0.7.1.rdoc +0 -59
  67. data/doc/release_notes/rake-0.7.2.rdoc +0 -121
  68. data/doc/release_notes/rake-0.7.3.rdoc +0 -47
  69. data/doc/release_notes/rake-0.8.0.rdoc +0 -114
  70. data/doc/release_notes/rake-0.8.2.rdoc +0 -165
  71. data/doc/release_notes/rake-0.8.3.rdoc +0 -112
  72. data/doc/release_notes/rake-0.8.4.rdoc +0 -147
  73. data/doc/release_notes/rake-0.8.5.rdoc +0 -53
  74. data/doc/release_notes/rake-0.8.6.rdoc +0 -37
  75. data/doc/release_notes/rake-0.8.7.rdoc +0 -55
  76. data/doc/release_notes/rake-0.9.0.rdoc +0 -112
  77. data/doc/release_notes/rake-0.9.1.rdoc +0 -52
  78. data/doc/release_notes/rake-0.9.2.2.rdoc +0 -55
  79. data/doc/release_notes/rake-0.9.2.rdoc +0 -49
  80. data/doc/release_notes/rake-0.9.3.rdoc +0 -102
  81. data/doc/release_notes/rake-0.9.4.rdoc +0 -60
  82. data/doc/release_notes/rake-0.9.5.rdoc +0 -55
  83. data/doc/release_notes/rake-0.9.6.rdoc +0 -64
  84. data/doc/release_notes/rake-10.0.0.rdoc +0 -178
  85. data/doc/release_notes/rake-10.0.1.rdoc +0 -58
  86. data/doc/release_notes/rake-10.0.2.rdoc +0 -53
  87. data/doc/release_notes/rake-10.0.3.rdoc +0 -191
  88. data/doc/release_notes/rake-10.1.0.rdoc +0 -61
  89. data/lib/rake/alt_system.rb +0 -110
  90. data/lib/rake/contrib/.document +0 -1
  91. data/lib/rake/contrib/compositepublisher.rb +0 -21
  92. data/lib/rake/contrib/ftptools.rb +0 -137
  93. data/lib/rake/contrib/publisher.rb +0 -81
  94. data/lib/rake/contrib/rubyforgepublisher.rb +0 -18
  95. data/lib/rake/contrib/sshpublisher.rb +0 -61
  96. data/lib/rake/contrib/sys.rb +0 -4
  97. data/lib/rake/ext/module.rb +0 -2
  98. data/lib/rake/ext/pathname.rb +0 -25
  99. data/lib/rake/ext/time.rb +0 -18
  100. data/lib/rake/gempackagetask.rb +0 -4
  101. data/lib/rake/pathmap.rb +0 -3
  102. data/lib/rake/rdoctask.rb +0 -4
  103. data/lib/rake/ruby182_test_unit_fix.rb +0 -29
  104. data/lib/rake/runtest.rb +0 -27
  105. data/rakelib/publish.rake +0 -20
  106. data/rakelib/test_times.rake +0 -25
  107. data/test/file_creation.rb +0 -34
  108. data/test/helper.rb +0 -129
  109. data/test/support/rakefile_definitions.rb +0 -478
  110. data/test/support/ruby_runner.rb +0 -34
  111. data/test/test_private_reader.rb +0 -42
  112. data/test/test_rake.rb +0 -40
  113. data/test/test_rake_application.rb +0 -643
  114. data/test/test_rake_application_options.rb +0 -468
  115. data/test/test_rake_backtrace.rb +0 -119
  116. data/test/test_rake_clean.rb +0 -61
  117. data/test/test_rake_cpu_counter.rb +0 -68
  118. data/test/test_rake_definitions.rb +0 -84
  119. data/test/test_rake_directory_task.rb +0 -76
  120. data/test/test_rake_dsl.rb +0 -40
  121. data/test/test_rake_early_time.rb +0 -31
  122. data/test/test_rake_extension.rb +0 -59
  123. data/test/test_rake_file_creation_task.rb +0 -56
  124. data/test/test_rake_file_list.rb +0 -670
  125. data/test/test_rake_file_list_path_map.rb +0 -8
  126. data/test/test_rake_file_task.rb +0 -197
  127. data/test/test_rake_file_utils.rb +0 -314
  128. data/test/test_rake_ftp_file.rb +0 -74
  129. data/test/test_rake_functional.rb +0 -482
  130. data/test/test_rake_invocation_chain.rb +0 -64
  131. data/test/test_rake_late_time.rb +0 -18
  132. data/test/test_rake_linked_list.rb +0 -84
  133. data/test/test_rake_makefile_loader.rb +0 -46
  134. data/test/test_rake_multi_task.rb +0 -64
  135. data/test/test_rake_name_space.rb +0 -57
  136. data/test/test_rake_package_task.rb +0 -79
  137. data/test/test_rake_path_map.rb +0 -168
  138. data/test/test_rake_path_map_explode.rb +0 -34
  139. data/test/test_rake_path_map_partial.rb +0 -18
  140. data/test/test_rake_pathname_extensions.rb +0 -15
  141. data/test/test_rake_pseudo_status.rb +0 -21
  142. data/test/test_rake_rake_test_loader.rb +0 -20
  143. data/test/test_rake_reduce_compat.rb +0 -26
  144. data/test/test_rake_require.rb +0 -40
  145. data/test/test_rake_rules.rb +0 -388
  146. data/test/test_rake_scope.rb +0 -44
  147. data/test/test_rake_task.rb +0 -393
  148. data/test/test_rake_task_argument_parsing.rb +0 -119
  149. data/test/test_rake_task_arguments.rb +0 -127
  150. data/test/test_rake_task_lib.rb +0 -9
  151. data/test/test_rake_task_manager.rb +0 -178
  152. data/test/test_rake_task_manager_argument_resolution.rb +0 -19
  153. data/test/test_rake_task_with_arguments.rb +0 -172
  154. data/test/test_rake_test_task.rb +0 -146
  155. data/test/test_rake_thread_pool.rb +0 -145
  156. data/test/test_rake_top_level_functions.rb +0 -71
  157. data/test/test_rake_win32.rb +0 -72
  158. data/test/test_thread_history_display.rb +0 -101
  159. 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
@@ -1,119 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
- require 'open3'
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
- skip if path.nil?
16
- path = File.expand_path path
17
-
18
- paths = [path + ":12"]
19
-
20
- actual = Rake::Backtrace.collapse(paths)
21
-
22
- assert_equal [], actual
23
- end
24
-
25
- def test_near_system_dir_isnt_suppressed
26
- path = RbConfig::CONFIG['rubylibprefix']
27
- skip if path.nil?
28
- path = File.expand_path path
29
-
30
- paths = [" " + path + ":12"]
31
-
32
- actual = Rake::Backtrace.collapse(paths)
33
-
34
- assert_equal paths, actual
35
- end
36
- end
37
-
38
- class TestRakeBacktrace < Rake::TestCase
39
- include RubyRunner
40
-
41
- def setup
42
- super
43
-
44
- skip 'tmpdir is suppressed in backtrace' if
45
- Rake::Backtrace::SUPPRESS_PATTERN =~ Dir.pwd
46
- end
47
-
48
- def invoke(*args)
49
- rake(*args)
50
- @err
51
- end
52
-
53
- def test_single_collapse
54
- rakefile %q{
55
- task :foo do
56
- raise "foooo!"
57
- end
58
- }
59
-
60
- lines = invoke("foo").split("\n")
61
-
62
- assert_equal "rake aborted!", lines[0]
63
- assert_equal "foooo!", lines[1]
64
- assert_something_matches %r!\A#{Regexp.quote Dir.pwd}/Rakefile:3!i, lines
65
- assert_something_matches %r!\ATasks:!, lines
66
- end
67
-
68
- def test_multi_collapse
69
- rakefile %q{
70
- task :foo do
71
- Rake.application.invoke_task(:bar)
72
- end
73
- task :bar do
74
- raise "barrr!"
75
- end
76
- }
77
-
78
- lines = invoke("foo").split("\n")
79
-
80
- assert_equal "rake aborted!", lines[0]
81
- assert_equal "barrr!", lines[1]
82
- assert_something_matches %r!\A#{Regexp.quote Dir.pwd}/Rakefile:6!i, lines
83
- assert_something_matches %r!\A#{Regexp.quote Dir.pwd}/Rakefile:3!i, lines
84
- assert_something_matches %r!\ATasks:!, lines
85
- end
86
-
87
- def test_suppress_option
88
- rakefile %q{
89
- task :baz do
90
- raise "bazzz!"
91
- end
92
- }
93
-
94
- lines = invoke("baz").split("\n")
95
- assert_equal "rake aborted!", lines[0]
96
- assert_equal "bazzz!", lines[1]
97
- assert_something_matches %r!Rakefile!i, lines
98
-
99
- lines = invoke("--suppress-backtrace", ".ak.file", "baz").split("\n")
100
- assert_equal "rake aborted!", lines[0]
101
- assert_equal "bazzz!", lines[1]
102
- refute_match %r!Rakefile!i, lines[2]
103
- end
104
-
105
- private
106
-
107
- # Assert that the pattern matches at least one line in +lines+.
108
- def assert_something_matches(pattern, lines)
109
- lines.each do |ln|
110
- if pattern =~ ln
111
- assert_match pattern, ln
112
- return
113
- end
114
- end
115
- flunk "expected #{pattern.inspect} to match something in:\n" +
116
- "#{lines.join("\n ")}"
117
- end
118
-
119
- end
@@ -1,61 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
- require 'rake/clean'
3
-
4
- class TestRakeClean < Rake::TestCase
5
- def test_clean
6
- load 'rake/clean.rb', true
7
-
8
- assert Rake::Task['clean'], "Should define clean"
9
- assert Rake::Task['clobber'], "Should define clobber"
10
- assert Rake::Task['clobber'].prerequisites.include?("clean"),
11
- "Clobber should require clean"
12
- end
13
-
14
- def test_cleanup
15
- file_name = create_undeletable_file
16
-
17
- out, _ = capture_io do
18
- Rake::Cleaner.cleanup(file_name, :verbose => false)
19
- end
20
- assert_match(/failed to remove/i, out)
21
-
22
- ensure
23
- remove_undeletable_file
24
- end
25
-
26
- def test_cleanup_ignores_missing_files
27
- file_name = File.join(@tempdir, "missing_directory", "no_such_file")
28
-
29
- out, _ = capture_io do
30
- Rake::Cleaner.cleanup(file_name, :verbose => false)
31
- end
32
- refute_match(/failed to remove/i, out)
33
- end
34
-
35
- private
36
-
37
- def create_undeletable_file
38
- dir_name = File.join(@tempdir, "deletedir")
39
- file_name = File.join(dir_name, "deleteme")
40
- FileUtils.mkdir(dir_name)
41
- FileUtils.touch(file_name)
42
- FileUtils.chmod(0, file_name)
43
- FileUtils.chmod(0, dir_name)
44
- begin
45
- FileUtils.chmod(0644, file_name)
46
- rescue
47
- file_name
48
- else
49
- skip "Permission to delete files is different on thie system"
50
- end
51
- end
52
-
53
- def remove_undeletable_file
54
- dir_name = File.join(@tempdir, "deletedir")
55
- file_name = File.join(dir_name, "deleteme")
56
- FileUtils.chmod(0777, dir_name)
57
- FileUtils.chmod(0777, file_name)
58
- Rake::Cleaner.cleanup(file_name, :verbose => false)
59
- Rake::Cleaner.cleanup(dir_name, :verbose => false)
60
- end
61
- end
@@ -1,68 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
-
3
- class TestRakeCpuCounter < Rake::TestCase
4
-
5
- def setup
6
- super
7
-
8
- @cpu_counter = Rake::CpuCounter.new
9
- end
10
-
11
- def test_count
12
- num = @cpu_counter.count
13
- skip 'cannot count CPU' if num == nil
14
- assert_kind_of Numeric, num
15
- assert_operator num, :>=, 1
16
- end
17
-
18
- def test_count_with_default_nil
19
- def @cpu_counter.count; nil; end
20
- assert_equal(8, @cpu_counter.count_with_default(8))
21
- assert_equal(4, @cpu_counter.count_with_default)
22
- end
23
-
24
- def test_count_with_default_raise
25
- def @cpu_counter.count; raise; end
26
- assert_equal(8, @cpu_counter.count_with_default(8))
27
- assert_equal(4, @cpu_counter.count_with_default)
28
- end
29
-
30
- class TestClassMethod < Rake::TestCase
31
- def setup
32
- super
33
-
34
- @klass = Class.new(Rake::CpuCounter)
35
- end
36
-
37
- def test_count
38
- @klass.class_eval do
39
- def count; 8; end
40
- end
41
- assert_equal(8, @klass.count)
42
- end
43
-
44
- def test_count_nil
45
- counted = false
46
- @klass.class_eval do
47
- define_method(:count) do
48
- counted = true
49
- nil
50
- end
51
- end
52
- assert_equal(4, @klass.count)
53
- assert_equal(true, counted)
54
- end
55
-
56
- def test_count_raise
57
- counted = false
58
- @klass.class_eval do
59
- define_method(:count) do
60
- counted = true
61
- raise
62
- end
63
- end
64
- assert_equal(4, @klass.count)
65
- assert_equal(true, counted)
66
- end
67
- end
68
- end