rake 0.8.7 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. data/.gemtest +0 -0
  2. data/CHANGES +77 -9
  3. data/{README → README.rdoc} +14 -10
  4. data/Rakefile +129 -118
  5. data/TODO +1 -1
  6. data/doc/command_line_usage.rdoc +18 -6
  7. data/doc/glossary.rdoc +2 -2
  8. data/doc/jamis.rb +2 -2
  9. data/doc/proto_rake.rdoc +22 -22
  10. data/doc/rake.1.gz +0 -0
  11. data/doc/rakefile.rdoc +55 -32
  12. data/doc/rational.rdoc +6 -6
  13. data/doc/release_notes/rake-0.4.15.rdoc +1 -1
  14. data/doc/release_notes/rake-0.5.0.rdoc +1 -1
  15. data/doc/release_notes/rake-0.7.0.rdoc +1 -1
  16. data/doc/release_notes/rake-0.7.2.rdoc +3 -3
  17. data/doc/release_notes/rake-0.7.3.rdoc +2 -2
  18. data/doc/release_notes/rake-0.8.0.rdoc +1 -1
  19. data/doc/release_notes/rake-0.8.2.rdoc +3 -3
  20. data/doc/release_notes/rake-0.8.3.rdoc +2 -2
  21. data/doc/release_notes/rake-0.8.4.rdoc +1 -1
  22. data/doc/release_notes/rake-0.8.5.rdoc +1 -1
  23. data/doc/release_notes/rake-0.8.6.rdoc +1 -1
  24. data/doc/release_notes/rake-0.8.7.rdoc +1 -1
  25. data/doc/release_notes/rake-0.9.0.rdoc +112 -0
  26. data/install.rb +14 -12
  27. data/lib/rake/alt_system.rb +7 -6
  28. data/lib/rake/application.rb +589 -0
  29. data/lib/rake/classic_namespace.rb +1 -0
  30. data/lib/rake/clean.rb +2 -4
  31. data/lib/rake/cloneable.rb +25 -0
  32. data/lib/rake/contrib/compositepublisher.rb +2 -5
  33. data/lib/rake/contrib/ftptools.rb +5 -8
  34. data/lib/rake/contrib/publisher.rb +2 -8
  35. data/lib/rake/contrib/rubyforgepublisher.rb +2 -4
  36. data/lib/rake/contrib/sshpublisher.rb +4 -6
  37. data/lib/rake/contrib/sys.rb +7 -25
  38. data/lib/rake/default_loader.rb +10 -0
  39. data/lib/rake/dsl.rb +2 -0
  40. data/lib/rake/dsl_definition.rb +143 -0
  41. data/lib/rake/early_time.rb +18 -0
  42. data/lib/rake/ext/core.rb +27 -0
  43. data/lib/rake/ext/module.rb +39 -0
  44. data/lib/rake/ext/string.rb +167 -0
  45. data/lib/rake/ext/time.rb +14 -0
  46. data/lib/rake/file_creation_task.rb +24 -0
  47. data/lib/rake/file_list.rb +403 -0
  48. data/lib/rake/file_task.rb +47 -0
  49. data/lib/rake/file_utils.rb +112 -0
  50. data/lib/rake/file_utils_ext.rb +142 -0
  51. data/lib/rake/gempackagetask.rb +6 -90
  52. data/lib/rake/invocation_chain.rb +51 -0
  53. data/lib/rake/invocation_exception_mixin.rb +16 -0
  54. data/lib/rake/loaders/makefile.rb +13 -15
  55. data/lib/rake/multi_task.rb +16 -0
  56. data/lib/rake/name_space.rb +25 -0
  57. data/lib/rake/packagetask.rb +13 -12
  58. data/lib/rake/pathmap.rb +1 -0
  59. data/lib/rake/pseudo_status.rb +24 -0
  60. data/lib/rake/rake_module.rb +29 -0
  61. data/lib/rake/rake_test_loader.rb +10 -2
  62. data/lib/rake/rdoctask.rb +211 -190
  63. data/lib/rake/ruby182_test_unit_fix.rb +9 -7
  64. data/lib/rake/rule_recursion_overflow_error.rb +20 -0
  65. data/lib/rake/runtest.rb +4 -6
  66. data/lib/rake/task.rb +327 -0
  67. data/lib/rake/task_argument_error.rb +7 -0
  68. data/lib/rake/task_arguments.rb +74 -0
  69. data/lib/rake/task_manager.rb +307 -0
  70. data/lib/rake/tasklib.rb +1 -2
  71. data/lib/rake/testtask.rb +57 -27
  72. data/lib/rake/version.rb +10 -0
  73. data/lib/rake/win32.rb +4 -4
  74. data/lib/rake.rb +29 -2470
  75. data/test/contrib/test_sys.rb +8 -31
  76. data/test/data/access/Rakefile +33 -0
  77. data/test/data/comments/Rakefile +18 -0
  78. data/test/data/default/Rakefile +1 -1
  79. data/test/data/deprecated_import/Rakefile +1 -0
  80. data/test/data/dryrun/Rakefile +1 -1
  81. data/test/data/file_creation_task/Rakefile +1 -1
  82. data/test/data/namespace/Rakefile +9 -0
  83. data/test/data/rakelib/test1.rb +1 -0
  84. data/test/data/verbose/Rakefile +34 -0
  85. data/test/{filecreation.rb → file_creation.rb} +11 -7
  86. data/test/functional/functional_test.rb +25 -0
  87. data/test/{session_functional.rb → functional/session_based_tests.rb} +141 -23
  88. data/test/in_environment.rb +7 -5
  89. data/test/{test_application.rb → lib/application_test.rb} +331 -143
  90. data/test/{test_clean.rb → lib/clean_test.rb} +1 -0
  91. data/test/{test_definitions.rb → lib/definitions_test.rb} +3 -3
  92. data/test/lib/dsl_test.rb +52 -0
  93. data/test/{test_earlytime.rb → lib/earlytime_test.rb} +1 -2
  94. data/test/{test_extension.rb → lib/extension_test.rb} +2 -2
  95. data/test/{test_file_creation_task.rb → lib/file_creation_task_test.rb} +1 -1
  96. data/test/{test_file_task.rb → lib/file_task_test.rb} +4 -4
  97. data/test/{test_filelist.rb → lib/filelist_test.rb} +38 -24
  98. data/test/{test_fileutils.rb → lib/fileutils_test.rb} +27 -22
  99. data/test/{test_multitask.rb → lib/multitask_test.rb} +14 -6
  100. data/test/lib/package_task_test.rb +82 -0
  101. data/test/{test_pathmap.rb → lib/pathmap_test.rb} +3 -2
  102. data/test/{test_rake.rb → lib/rake_test.rb} +1 -1
  103. data/test/{test_rdoc_task.rb → lib/rdoc_task_test.rb} +19 -23
  104. data/test/{test_require.rb → lib/require_test.rb} +8 -2
  105. data/test/{test_rules.rb → lib/rules_test.rb} +2 -3
  106. data/test/{test_task_arguments.rb → lib/task_arguments_test.rb} +5 -5
  107. data/test/{test_task_manager.rb → lib/task_manager_test.rb} +15 -5
  108. data/test/{test_tasks.rb → lib/task_test.rb} +84 -21
  109. data/test/{test_test_task.rb → lib/test_task_test.rb} +3 -3
  110. data/test/lib/testtask_test.rb +49 -0
  111. data/test/{test_top_level_functions.rb → lib/top_level_functions_test.rb} +5 -3
  112. data/test/{test_win32.rb → lib/win32_test.rb} +19 -0
  113. data/test/rake_test_setup.rb +5 -9
  114. data/test/ruby_version_test.rb +3 -0
  115. data/test/test_helper.rb +19 -0
  116. metadata +108 -49
  117. data/test/functional.rb +0 -15
  118. data/test/test_package_task.rb +0 -118
  119. /data/test/{test_ftp.rb → lib/ftp_test.rb} +0 -0
  120. /data/test/{test_invocation_chain.rb → lib/invocation_chain_test.rb} +0 -0
  121. /data/test/{test_makefile_loader.rb → lib/makefile_loader_test.rb} +0 -0
  122. /data/test/{test_namespace.rb → lib/namespace_test.rb} +0 -0
  123. /data/test/{test_pseudo_status.rb → lib/pseudo_status_test.rb} +0 -0
  124. /data/test/{test_tasklib.rb → lib/tasklib_test.rb} +0 -0
@@ -1,24 +1,31 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'test/unit'
4
- require 'rake/rdoctask'
4
+ require 'test/capture_stdout'
5
+ begin
6
+ old_verbose = $VERBOSE
7
+ $VERBOSE = nil
8
+ require 'rake/rdoctask'
9
+ ensure
10
+ $VERBOSE = old_verbose
11
+ end
5
12
  require 'test/rake_test_setup'
6
13
 
7
14
  class TestRDocTask < Test::Unit::TestCase
8
15
  include Rake
9
16
  include TestMethods
10
-
17
+
11
18
  def setup
12
19
  Task.clear
13
20
  end
14
-
21
+
15
22
  def test_tasks_creation
16
23
  Rake::RDocTask.new
17
24
  assert Task[:rdoc]
18
25
  assert Task[:clobber_rdoc]
19
26
  assert Task[:rerdoc]
20
27
  end
21
-
28
+
22
29
  def test_tasks_creation_with_custom_name_symbol
23
30
  rd = Rake::RDocTask.new(:rdoc_dev)
24
31
  assert Task[:rdoc_dev]
@@ -26,7 +33,7 @@ class TestRDocTask < Test::Unit::TestCase
26
33
  assert Task[:rerdoc_dev]
27
34
  assert_equal :rdoc_dev, rd.name
28
35
  end
29
-
36
+
30
37
  def test_tasks_creation_with_custom_name_string
31
38
  rd = Rake::RDocTask.new("rdoc_dev")
32
39
  assert Task[:rdoc_dev]
@@ -34,7 +41,7 @@ class TestRDocTask < Test::Unit::TestCase
34
41
  assert Task[:rerdoc_dev]
35
42
  assert_equal "rdoc_dev", rd.name
36
43
  end
37
-
44
+
38
45
  def test_tasks_creation_with_custom_name_hash
39
46
  options = { :rdoc => "rdoc", :clobber_rdoc => "rdoc:clean", :rerdoc => "rdoc:force" }
40
47
  rd = Rake::RDocTask.new(options)
@@ -44,45 +51,34 @@ class TestRDocTask < Test::Unit::TestCase
44
51
  assert_raises(RuntimeError) { Task[:clobber_rdoc] }
45
52
  assert_equal options, rd.name
46
53
  end
47
-
54
+
48
55
  def test_tasks_creation_with_custom_name_hash_will_use_default_if_an_option_isnt_given
49
- rd = Rake::RDocTask.new(:clobber_rdoc => "rdoc:clean")
56
+ Rake::RDocTask.new(:clobber_rdoc => "rdoc:clean")
50
57
  assert Task[:rdoc]
51
58
  assert Task[:"rdoc:clean"]
52
59
  assert Task[:rerdoc]
53
60
  end
54
-
61
+
55
62
  def test_tasks_creation_with_custom_name_hash_raises_exception_if_invalid_option_given
56
63
  assert_raises(ArgumentError) do
57
64
  Rake::RDocTask.new(:foo => "bar")
58
65
  end
59
-
66
+
60
67
  begin
61
68
  Rake::RDocTask.new(:foo => "bar")
62
69
  rescue ArgumentError => e
63
70
  assert_match(/foo/, e.message)
64
71
  end
65
72
  end
66
-
67
- def test_inline_source_is_enabled_by_default
68
- rd = Rake::RDocTask.new
69
- assert rd.option_list.include?('--inline-source')
70
- end
71
-
73
+
72
74
  def test_inline_source_option_is_only_appended_if_option_not_already_given
73
75
  rd = Rake::RDocTask.new
74
76
  rd.options << '--inline-source'
75
77
  assert_equal 1, rd.option_list.grep('--inline-source').size
76
-
78
+
77
79
  rd = Rake::RDocTask.new
78
80
  rd.options << '-S'
79
81
  assert_equal 1, rd.option_list.grep('-S').size
80
82
  assert_equal 0, rd.option_list.grep('--inline-source').size
81
83
  end
82
-
83
- def test_inline_source_option_can_be_disabled
84
- rd = Rake::RDocTask.new
85
- rd.inline_source = false
86
- assert !rd.option_list.include?('--inline-source')
87
- end
88
84
  end
@@ -17,8 +17,13 @@ class TestRequire < Test::Unit::TestCase
17
17
 
18
18
  def test_wont_reload_rake_library
19
19
  app = Rake::Application.new
20
+
21
+ paths = ['test/data/rakelib']
22
+ loaded_files = []
23
+ app.rake_require("test2", paths, loaded_files)
24
+
20
25
  assert ! app.instance_eval {
21
- rake_require("test2", ['test/data/rakelib'], ['test2'])
26
+ rake_require("test2", paths, loaded_files)
22
27
  }
23
28
  end
24
29
 
@@ -29,7 +34,8 @@ class TestRequire < Test::Unit::TestCase
29
34
  rake_require("testx", ['test/data/rakelib'], [])
30
35
  }
31
36
  }
32
- assert_match(/x/, ex.message)
37
+ assert_match(/(can *not|can't)\s+find/i, ex.message)
38
+ assert_match(/testx/, ex.message)
33
39
  end
34
40
  end
35
41
 
@@ -3,7 +3,7 @@
3
3
  require 'test/unit'
4
4
  require 'fileutils'
5
5
  require 'rake'
6
- require 'test/filecreation'
6
+ require 'test/file_creation'
7
7
  require 'test/rake_test_setup'
8
8
 
9
9
  ######################################################################
@@ -97,7 +97,7 @@ class TestRules < Test::Unit::TestCase
97
97
  assert_equal [OBJFILE], @runs
98
98
  end
99
99
 
100
- def test_file_names_beginning_with_dot_can_be_tricked_into_refering_to_file
100
+ def test_file_names_beginning_with_dot_can_be_tricked_into_referring_to_file
101
101
  verbose(false) do
102
102
  chdir("testdata") do
103
103
  create_file('.foo')
@@ -278,7 +278,6 @@ class TestRules < Test::Unit::TestCase
278
278
  end
279
279
 
280
280
  def test_rule_with_proc_dependent_will_trigger
281
- ran = false
282
281
  mkdir_p("testdata/src/jw")
283
282
  create_file("testdata/src/jw/X.java")
284
283
  rule %r(classes/.*\.class) => [
@@ -50,12 +50,12 @@ class TestTaskArguments < Test::Unit::TestCase
50
50
  assert_nil ta.cc
51
51
  end
52
52
 
53
- def test_args_can_reference_env_values
53
+ def test_args_do_not_reference_env_values
54
54
  ta = Rake::TaskArguments.new(["aa"], [1])
55
55
  ENV['rev'] = "1.2"
56
56
  ENV['VER'] = "2.3"
57
- assert_equal "1.2", ta.rev
58
- assert_equal "2.3", ta.ver
57
+ assert_nil ta.rev
58
+ assert_nil ta.ver
59
59
  end
60
60
 
61
61
  def test_creating_new_argument_scopes
@@ -73,7 +73,7 @@ class TestTaskArguments < Test::Unit::TestCase
73
73
  child = Rake::TaskArguments.new(['aa'], [2], parent)
74
74
  assert_equal 2, child.aa
75
75
  end
76
-
76
+
77
77
  def test_default_arguments_values_can_be_merged
78
78
  ta = Rake::TaskArguments.new(["aa", "bb"], [nil, "original_val"])
79
79
  ta.with_defaults({ :aa => 'default_val' })
@@ -81,7 +81,7 @@ class TestTaskArguments < Test::Unit::TestCase
81
81
  assert_equal 'original_val', ta[:bb]
82
82
  end
83
83
 
84
- def test_default_arguements_that_dont_match_names_are_ignored
84
+ def test_default_arguments_that_dont_match_names_are_ignored
85
85
  ta = Rake::TaskArguments.new(["aa", "bb"], [nil, "original_val"])
86
86
  ta.with_defaults({ "cc" => "default_val" })
87
87
  assert_nil ta[:cc]
@@ -65,14 +65,14 @@ class TestTaskManager < Test::Unit::TestCase
65
65
  end
66
66
 
67
67
  def test_name_lookup_with_implicit_file_tasks
68
- t = @tm["README"]
69
- assert_equal "README", t.name
68
+ t = @tm["README.rdoc"]
69
+ assert_equal "README.rdoc", t.name
70
70
  assert Rake::FileTask === t
71
71
  end
72
72
 
73
73
  def test_name_lookup_with_nonexistent_task
74
74
  assert_exception(RuntimeError) {
75
- t = @tm["DOES NOT EXIST"]
75
+ @tm["DOES NOT EXIST"]
76
76
  }
77
77
  end
78
78
 
@@ -129,7 +129,7 @@ class TestTaskManager < Test::Unit::TestCase
129
129
  end
130
130
  end
131
131
  assert_equal t1, @tm[:t, []]
132
- assert_equal t2, @tm[:t, ["a"]]
132
+ assert_equal t2, @tm[:t, ["a"]]
133
133
  assert_equal t3, @tm[:t, ["a", "b"]]
134
134
  assert_equal s, @tm[:s, ["a", "b"]]
135
135
  assert_equal s, @tm[:s, ["a"]]
@@ -147,10 +147,20 @@ class TestTaskManager < Test::Unit::TestCase
147
147
  @tm["a:x"].invoke
148
148
  assert_equal ["next z"], values
149
149
  end
150
-
150
+
151
151
  end
152
152
 
153
153
  class TestTaskManagerArgumentResolution < Test::Unit::TestCase
154
+ def setup
155
+ super
156
+ Rake.application.options.ignore_deprecate = true
157
+ end
158
+
159
+ def teardown
160
+ Rake.application.options.ignore_deprecate = false
161
+ super
162
+ end
163
+
154
164
  def test_good_arg_patterns
155
165
  assert_equal [:t, [], []], task(:t)
156
166
  assert_equal [:t, [], [:x]], task(:t => :x)
@@ -3,8 +3,6 @@
3
3
  require 'test/unit'
4
4
  require 'fileutils'
5
5
  require 'rake'
6
- require 'test/filecreation'
7
- require 'test/capture_stdout'
8
6
  require 'test/rake_test_setup'
9
7
 
10
8
  ######################################################################
@@ -12,9 +10,16 @@ class TestTask < Test::Unit::TestCase
12
10
  include CaptureStdout
13
11
  include Rake
14
12
  include TestMethods
13
+ include Rake::DSL
15
14
 
16
15
  def setup
17
16
  Task.clear
17
+ Rake::TaskManager.record_task_metadata = true
18
+ end
19
+
20
+ def teardown
21
+ super
22
+ Rake::TaskManager.record_task_metadata = false
18
23
  end
19
24
 
20
25
  def test_create
@@ -27,10 +32,13 @@ class TestTask < Test::Unit::TestCase
27
32
  assert_equal t, arg
28
33
  assert_nil t.source
29
34
  assert_equal [], t.sources
35
+ assert_equal 1, t.locations.size
36
+ assert_match(/#{Regexp.quote(__FILE__)}/, t.locations.first)
30
37
  end
31
38
 
32
39
  def test_inspect
33
- t = task(:foo, :needs => [:bar, :baz])
40
+ # t = task(:foo, :needs => [:bar, :baz])
41
+ t = task(:foo => [:bar, :baz])
34
42
  assert_equal "<Rake::Task foo => [bar, baz]>", t.inspect
35
43
  end
36
44
 
@@ -61,7 +69,7 @@ class TestTask < Test::Unit::TestCase
61
69
  Rake.application.options.dryrun = true
62
70
  runlist = []
63
71
  t1 = task(:t1) { |t| runlist << t.name; 3321 }
64
- out = capture_stdout { t1.invoke }
72
+ out = capture_stderr { t1.invoke }
65
73
  assert_match(/execute .*t1/i, out)
66
74
  assert_match(/dry run/i, out)
67
75
  assert_no_match(/invoke/i, out)
@@ -73,7 +81,7 @@ class TestTask < Test::Unit::TestCase
73
81
  def test_tasks_can_be_traced
74
82
  Rake.application.options.trace = true
75
83
  t1 = task(:t1)
76
- out = capture_stdout {
84
+ out = capture_stderr {
77
85
  t1.invoke
78
86
  }
79
87
  assert_match(/invoke t1/i, out)
@@ -174,6 +182,56 @@ class TestTask < Test::Unit::TestCase
174
182
  assert_equal ["b", "c"], Task[:a].prerequisites
175
183
  end
176
184
 
185
+ def test_prerequiste_tasks_returns_tasks_not_strings
186
+ a = task :a => ["b", "c"]
187
+ b = task :b
188
+ c = task :c
189
+ assert_equal [b, c], a.prerequisite_tasks
190
+ end
191
+
192
+ def test_prerequiste_tasks_fails_if_prerequisites_are_undefined
193
+ a = task :a => ["b", "c"]
194
+ b = task :b
195
+ assert_exception(RuntimeError) do
196
+ a.prerequisite_tasks
197
+ end
198
+ end
199
+
200
+ def test_prerequiste_tasks_honors_namespaces
201
+ a = b = nil
202
+ namespace "X" do
203
+ a = task :a => ["b", "c"]
204
+ b = task :b
205
+ end
206
+ c = task :c
207
+
208
+ assert_equal [b, c], a.prerequisite_tasks
209
+ end
210
+
211
+ def test_timestamp_returns_now_if_all_prereqs_have_no_times
212
+ a = task :a => ["b", "c"]
213
+ b = task :b
214
+ c = task :c
215
+
216
+ faux_stamp = 100
217
+ flexmock(Time, :now => faux_stamp)
218
+
219
+ assert_equal faux_stamp, a.timestamp
220
+ end
221
+
222
+ def test_timestamp_returns_latest_prereq_timestamp
223
+ a = task :a => ["b", "c"]
224
+ b = task :b
225
+ c = task :c
226
+
227
+ faux_stamp = 100
228
+ flexmock(Time, :now => faux_stamp-10)
229
+ flexmock(b, :timestamp => faux_stamp - 1)
230
+ flexmock(c, :timestamp => faux_stamp)
231
+
232
+ assert_equal faux_stamp, a.timestamp
233
+ end
234
+
177
235
  def test_investigation_output
178
236
  t1 = task(:t1 => [:t2, :t3]) { |t| runlist << t.name; 3321 }
179
237
  task(:t2)
@@ -221,9 +279,17 @@ class TestTaskWithArguments < Test::Unit::TestCase
221
279
  include CaptureStdout
222
280
  include Rake
223
281
  include TestMethods
282
+ include Rake::DSL
224
283
 
225
284
  def setup
285
+ super
226
286
  Task.clear
287
+ Rake::TaskManager.record_task_metadata = true
288
+ end
289
+
290
+ def teardown
291
+ Rake::TaskManager.record_task_metadata = false
292
+ super
227
293
  end
228
294
 
229
295
  def test_no_args_given
@@ -243,23 +309,20 @@ class TestTaskWithArguments < Test::Unit::TestCase
243
309
  assert_equal ["pre"], t.prerequisites
244
310
  end
245
311
 
246
- def test_name_and_explicit_needs
247
- t = task(:t, :needs => [:pre])
248
- assert_equal "t", t.name
249
- assert_equal [], t.arg_names
250
- assert_equal ["pre"], t.prerequisites
251
- end
252
-
253
312
  def test_name_args_and_explicit_needs
254
- t = task(:t, :x, :y, :needs => [:pre])
255
- assert_equal "t", t.name
256
- assert_equal [:x, :y], t.arg_names
257
- assert_equal ["pre"], t.prerequisites
313
+ ignore_deprecations do
314
+ t = task(:t, :x, :y, :needs => [:pre])
315
+ assert_equal "t", t.name
316
+ assert_equal [:x, :y], t.arg_names
317
+ assert_equal ["pre"], t.prerequisites
318
+ end
258
319
  end
259
320
 
260
321
  def test_illegal_keys_in_task_name_hash
261
- assert_exception RuntimeError do
262
- t = task(:t, :x, :y => 1, :needs => [:pre])
322
+ ignore_deprecations do
323
+ assert_exception RuntimeError do
324
+ t = task(:t, :x, :y => 1, :needs => [:pre])
325
+ end
263
326
  end
264
327
  end
265
328
 
@@ -350,7 +413,7 @@ class TestTaskWithArguments < Test::Unit::TestCase
350
413
  def test_named_args_are_passed_to_prereqs
351
414
  value = nil
352
415
  pre = task(:pre, :rev) { |t, args| value = args.rev }
353
- t = task(:t, :name, :rev, :needs => [:pre])
416
+ t = task(:t, [:name, :rev] => [:pre])
354
417
  t.invoke("bill", "1.2")
355
418
  assert_equal "1.2", value
356
419
  end
@@ -360,7 +423,7 @@ class TestTaskWithArguments < Test::Unit::TestCase
360
423
  assert_equal({}, args.to_hash)
361
424
  assert_equal "bill", args.name
362
425
  }
363
- t = task(:t, :name, :rev, :needs => [:pre])
426
+ t = task(:t, [:name, :rev] => [:pre])
364
427
  t.invoke("bill", "1.2")
365
428
  end
366
429
 
@@ -368,7 +431,7 @@ class TestTaskWithArguments < Test::Unit::TestCase
368
431
  pre = task(:pre, :rev) { |t, args|
369
432
  assert_equal({}, args.to_hash)
370
433
  }
371
- t = task(:t, :needs => [:pre])
434
+ t = task(:t => [:pre])
372
435
  t.invoke("bill", "1.2")
373
436
  end
374
437
  end
@@ -6,7 +6,7 @@ require 'rake/testtask'
6
6
  class TestTestTask < Test::Unit::TestCase
7
7
  include Rake
8
8
  include TestMethods
9
-
9
+
10
10
  def setup
11
11
  Task.clear
12
12
  ENV.delete('TEST')
@@ -48,7 +48,7 @@ class TestTestTask < Test::Unit::TestCase
48
48
  tt = Rake::TestTask.new do |t|
49
49
  t.pattern = '*.rb'
50
50
  end
51
- assert_equal ['install.rb'], tt.file_list.to_a
51
+ assert_equal ['*.rb'], tt.file_list.to_a
52
52
  end
53
53
 
54
54
  def test_env_test
@@ -71,7 +71,7 @@ class TestTestTask < Test::Unit::TestCase
71
71
  t.test_files = FileList['a.rb', 'b.rb']
72
72
  t.pattern = '*.rb'
73
73
  end
74
- assert_equal ['a.rb', 'b.rb', 'install.rb'], tt.file_list.to_a
74
+ assert_equal ['a.rb', 'b.rb', '*.rb'], tt.file_list.to_a
75
75
  end
76
76
 
77
77
  end
@@ -0,0 +1,49 @@
1
+ require 'test/test_helper'
2
+ require 'rake/testtask'
3
+
4
+ class TestTaskTest < Test::Unit::TestCase
5
+ def test_direct_run_has_quoted_paths
6
+ test_task = Rake::TestTask.new(:tx) do |t|
7
+ t.loader = :direct
8
+ end
9
+ assert_match(/-e ".*"/, test_task.run_code)
10
+ end
11
+
12
+ def test_testrb_run_has_quoted_paths_on_ruby_182
13
+ test_task = Rake::TestTask.new(:tx) do |t|
14
+ t.loader = :testrb
15
+ end
16
+ flexmock(test_task).should_receive(:ruby_version).and_return('1.8.2')
17
+ assert_match(/^-S testrb +".*"$/, test_task.run_code)
18
+ end
19
+
20
+ def test_testrb_run_has_quoted_paths_on_ruby_186
21
+ test_task = Rake::TestTask.new(:tx) do |t|
22
+ t.loader = :testrb
23
+ end
24
+ flexmock(test_task).should_receive(:ruby_version).and_return('1.8.6')
25
+ assert_match(/^-S testrb +$/, test_task.run_code)
26
+ end
27
+
28
+ def test_rake_run_has_quoted_paths
29
+ test_task = Rake::TestTask.new(:tx) do |t|
30
+ t.loader = :rake
31
+ end
32
+ assert_match(/".*"/, test_task.run_code)
33
+ end
34
+
35
+ def test_nested_libs_will_be_flattened
36
+ test_task = Rake::TestTask.new(:tx) do |t|
37
+ t.libs << ["A", "B"]
38
+ end
39
+ sep = File::PATH_SEPARATOR
40
+ assert_match(/lib#{sep}A#{sep}B/, test_task.ruby_opts_string)
41
+ end
42
+
43
+ def test_empty_lib_path_implies_no_dash_I_option
44
+ test_task = Rake::TestTask.new(:tx) do |t|
45
+ t.libs = []
46
+ end
47
+ assert_no_match(/-I/, test_task.ruby_opts_string)
48
+ end
49
+ end
@@ -20,6 +20,8 @@ class TestTopLevelFunctions < Test::Unit::TestCase
20
20
  super
21
21
  @app = Rake.application
22
22
  Rake.application = flexmock("app")
23
+ Rake.application.should_receive(:deprecate).
24
+ and_return { |old, new, call| @app.deprecate(old, new, call) }
23
25
  end
24
26
 
25
27
  def teardown
@@ -49,15 +51,15 @@ class TestTopLevelFunctions < Test::Unit::TestCase
49
51
  end
50
52
 
51
53
  def test_when_not_writing
52
- RakeFileUtils.nowrite_flag = true
53
- out = capture_stdout do
54
+ Rake::FileUtilsExt.nowrite_flag = true
55
+ out = capture_stderr do
54
56
  when_writing("NOTWRITING") do
55
57
  puts "WRITING"
56
58
  end
57
59
  end
58
60
  assert_equal "DRYRUN: NOTWRITING\n", out
59
61
  ensure
60
- RakeFileUtils.nowrite_flag = false
62
+ Rake::FileUtilsExt.nowrite_flag = false
61
63
  end
62
64
 
63
65
  def test_missing_constants_task
@@ -9,6 +9,7 @@ require 'rake'
9
9
  class TestWin32 < Test::Unit::TestCase
10
10
  include InEnvironment
11
11
  include TestMethods
12
+ include CaptureStdout
12
13
 
13
14
  Win32 = Rake::Win32
14
15
 
@@ -69,4 +70,22 @@ class TestWin32 < Test::Unit::TestCase
69
70
  end
70
71
  end
71
72
 
73
+ def test_win32_backtrace_with_different_case
74
+ ex = nil
75
+ begin
76
+ raise 'test exception'
77
+ rescue => ex
78
+ end
79
+
80
+ ex.set_backtrace ['abc', 'rakefile']
81
+
82
+ rake = Rake::Application.new
83
+ rake.options.trace = true
84
+ rake.instance_variable_set(:@rakefile, 'Rakefile')
85
+
86
+ err = capture_stderr { rake.display_error_message(ex) }
87
+
88
+ assert_match(/rakefile/, err)
89
+ end
90
+
72
91
  end
@@ -8,17 +8,13 @@ rescue LoadError
8
8
  end
9
9
 
10
10
  require 'flexmock/test_unit'
11
-
12
- if RUBY_VERSION >= "1.9.0"
13
- class Test::Unit::TestCase
14
- # def passed?
15
- # true
16
- # end
17
- end
18
- end
11
+ require 'test/file_creation'
12
+ require 'test/capture_stdout'
13
+ require 'test/test_helper'
19
14
 
20
15
  module TestMethods
21
- def assert_exception(ex, msg=nil, &block)
16
+ # Shim method for compatibility
17
+ def assert_exception(ex, msg="", &block)
22
18
  assert_raise(ex, msg, &block)
23
19
  end
24
20
  end
@@ -0,0 +1,3 @@
1
+ require 'test/unit'
2
+
3
+ puts "\nRUBY VERSION = #{RUBY_VERSION}"
@@ -0,0 +1,19 @@
1
+ begin
2
+ require 'rubygems'
3
+ rescue LoadError
4
+ end
5
+ require 'test/unit'
6
+ require 'flexmock/test_unit'
7
+
8
+ require 'rake'
9
+
10
+ class Test::Unit::TestCase
11
+ include Rake::DSL
12
+
13
+ def ignore_deprecations
14
+ Rake.application.options.ignore_deprecate = true
15
+ yield
16
+ ensure
17
+ Rake.application.options.ignore_deprecate = false
18
+ end
19
+ end