rake 0.8.7 → 0.9.2

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 (140) hide show
  1. data/.gemtest +0 -0
  2. data/CHANGES +78 -9
  3. data/{README → README.rdoc} +14 -10
  4. data/RRR +9 -0
  5. data/Rakefile +100 -125
  6. data/TODO +1 -1
  7. data/bin/rake +4 -3
  8. data/doc/command_line_usage.rdoc +18 -6
  9. data/doc/glossary.rdoc +2 -2
  10. data/doc/jamis.rb +2 -2
  11. data/doc/proto_rake.rdoc +22 -22
  12. data/doc/rake.1.gz +0 -0
  13. data/doc/rakefile.rdoc +56 -33
  14. data/doc/rational.rdoc +6 -6
  15. data/doc/release_notes/rake-0.4.15.rdoc +1 -1
  16. data/doc/release_notes/rake-0.5.0.rdoc +1 -1
  17. data/doc/release_notes/rake-0.7.0.rdoc +1 -1
  18. data/doc/release_notes/rake-0.7.2.rdoc +3 -3
  19. data/doc/release_notes/rake-0.7.3.rdoc +2 -2
  20. data/doc/release_notes/rake-0.8.0.rdoc +1 -1
  21. data/doc/release_notes/rake-0.8.2.rdoc +3 -3
  22. data/doc/release_notes/rake-0.8.3.rdoc +2 -2
  23. data/doc/release_notes/rake-0.8.4.rdoc +1 -1
  24. data/doc/release_notes/rake-0.8.5.rdoc +1 -1
  25. data/doc/release_notes/rake-0.8.6.rdoc +1 -1
  26. data/doc/release_notes/rake-0.8.7.rdoc +1 -1
  27. data/doc/release_notes/rake-0.9.0.rdoc +112 -0
  28. data/doc/release_notes/rake-0.9.1.rdoc +52 -0
  29. data/doc/release_notes/rake-0.9.2.rdoc +49 -0
  30. data/install.rb +14 -12
  31. data/lib/rake/alt_system.rb +7 -6
  32. data/lib/rake/application.rb +589 -0
  33. data/lib/rake/classic_namespace.rb +1 -0
  34. data/lib/rake/clean.rb +2 -4
  35. data/lib/rake/cloneable.rb +25 -0
  36. data/lib/rake/contrib/compositepublisher.rb +2 -5
  37. data/lib/rake/contrib/ftptools.rb +5 -8
  38. data/lib/rake/contrib/publisher.rb +2 -8
  39. data/lib/rake/contrib/rubyforgepublisher.rb +2 -4
  40. data/lib/rake/contrib/sshpublisher.rb +4 -6
  41. data/lib/rake/contrib/sys.rb +7 -25
  42. data/lib/rake/default_loader.rb +10 -0
  43. data/lib/rake/dsl_definition.rb +167 -0
  44. data/lib/rake/early_time.rb +18 -0
  45. data/lib/rake/ext/core.rb +27 -0
  46. data/lib/rake/ext/module.rb +39 -0
  47. data/lib/rake/ext/string.rb +167 -0
  48. data/lib/rake/ext/time.rb +14 -0
  49. data/lib/rake/file_creation_task.rb +24 -0
  50. data/lib/rake/file_list.rb +403 -0
  51. data/lib/rake/file_task.rb +47 -0
  52. data/lib/rake/file_utils.rb +112 -0
  53. data/lib/rake/file_utils_ext.rb +142 -0
  54. data/lib/rake/gempackagetask.rb +6 -90
  55. data/lib/rake/invocation_chain.rb +51 -0
  56. data/lib/rake/invocation_exception_mixin.rb +16 -0
  57. data/lib/rake/loaders/makefile.rb +13 -15
  58. data/lib/rake/multi_task.rb +16 -0
  59. data/lib/rake/name_space.rb +25 -0
  60. data/lib/rake/packagetask.rb +13 -12
  61. data/lib/rake/pathmap.rb +1 -0
  62. data/lib/rake/pseudo_status.rb +24 -0
  63. data/lib/rake/rake_module.rb +29 -0
  64. data/lib/rake/rake_test_loader.rb +10 -2
  65. data/lib/rake/rdoctask.rb +211 -190
  66. data/lib/rake/ruby182_test_unit_fix.rb +9 -7
  67. data/lib/rake/rule_recursion_overflow_error.rb +20 -0
  68. data/lib/rake/runtest.rb +4 -6
  69. data/lib/rake/task.rb +327 -0
  70. data/lib/rake/task_argument_error.rb +7 -0
  71. data/lib/rake/task_arguments.rb +74 -0
  72. data/lib/rake/task_manager.rb +307 -0
  73. data/lib/rake/tasklib.rb +1 -2
  74. data/lib/rake/testtask.rb +57 -27
  75. data/lib/rake/version.rb +10 -0
  76. data/lib/rake/win32.rb +4 -4
  77. data/lib/rake.rb +29 -2470
  78. data/test/data/access/Rakefile +35 -0
  79. data/test/data/comments/Rakefile +18 -0
  80. data/test/data/default/Rakefile +1 -3
  81. data/test/data/deprecated_import/Rakefile +1 -0
  82. data/test/data/dryrun/Rakefile +1 -1
  83. data/test/data/extra/Rakefile +1 -0
  84. data/test/data/file_creation_task/Rakefile +1 -3
  85. data/test/data/multidesc/Rakefile +0 -2
  86. data/test/data/namespace/Rakefile +9 -2
  87. data/test/data/rakelib/test1.rb +1 -0
  88. data/test/data/statusreturn/Rakefile +0 -2
  89. data/test/data/verbose/Rakefile +34 -0
  90. data/test/{filecreation.rb → file_creation.rb} +11 -9
  91. data/test/helper.rb +44 -0
  92. data/test/in_environment.rb +11 -6
  93. data/test/test_rake.rb +3 -6
  94. data/test/test_rake_application.rb +364 -0
  95. data/test/test_rake_application_options.rb +382 -0
  96. data/test/{test_clean.rb → test_rake_clean.rb} +2 -4
  97. data/test/{test_definitions.rb → test_rake_definitions.rb} +7 -12
  98. data/test/test_rake_directory_task.rb +55 -0
  99. data/test/test_rake_dsl.rb +73 -0
  100. data/test/{test_earlytime.rb → test_rake_early_time.rb} +3 -7
  101. data/test/{test_extension.rb → test_rake_extension.rb} +4 -8
  102. data/test/{test_file_creation_task.rb → test_rake_file_creation_task.rb} +7 -7
  103. data/test/{test_filelist.rb → test_rake_file_list.rb} +45 -35
  104. data/test/test_rake_file_list_path_map.rb +8 -0
  105. data/test/{test_file_task.rb → test_rake_file_task.rb} +23 -62
  106. data/test/{test_fileutils.rb → test_rake_file_utils.rb} +34 -33
  107. data/test/{test_ftp.rb → test_rake_ftp_file.rb} +5 -5
  108. data/test/{session_functional.rb → test_rake_functional.rb} +173 -44
  109. data/test/test_rake_invocation_chain.rb +52 -0
  110. data/test/{test_makefile_loader.rb → test_rake_makefile_loader.rb} +2 -5
  111. data/test/{test_multitask.rb → test_rake_multi_task.rb} +18 -12
  112. data/test/{test_namespace.rb → test_rake_name_space.rb} +4 -16
  113. data/test/test_rake_package_task.rb +78 -0
  114. data/test/{test_pathmap.rb → test_rake_path_map.rb} +5 -58
  115. data/test/test_rake_path_map_explode.rb +31 -0
  116. data/test/test_rake_path_map_partial.rb +18 -0
  117. data/test/{test_pseudo_status.rb → test_rake_pseudo_status.rb} +2 -8
  118. data/test/{test_rdoc_task.rb → test_rake_rdoc_task.rb} +22 -29
  119. data/test/{test_require.rb → test_rake_require.rb} +11 -11
  120. data/test/{test_rules.rb → test_rake_rules.rb} +12 -15
  121. data/test/{test_tasks.rb → test_rake_task.rb} +75 -178
  122. data/test/test_rake_task_argument_parsing.rb +116 -0
  123. data/test/{test_task_arguments.rb → test_rake_task_arguments.rb} +7 -10
  124. data/test/{test_tasklib.rb → test_rake_task_lib.rb} +2 -5
  125. data/test/{test_task_manager.rb → test_rake_task_manager.rb} +12 -40
  126. data/test/test_rake_task_manager_argument_resolution.rb +36 -0
  127. data/test/test_rake_task_with_arguments.rb +162 -0
  128. data/test/test_rake_test_task.rb +122 -0
  129. data/test/{test_top_level_functions.rb → test_rake_top_level_functions.rb} +12 -22
  130. data/test/{test_win32.rb → test_rake_win32.rb} +21 -10
  131. data/test/test_sys.rb +20 -0
  132. metadata +129 -51
  133. data/test/capture_stdout.rb +0 -26
  134. data/test/contrib/test_sys.rb +0 -47
  135. data/test/functional.rb +0 -15
  136. data/test/rake_test_setup.rb +0 -24
  137. data/test/test_application.rb +0 -675
  138. data/test/test_invocation_chain.rb +0 -81
  139. data/test/test_package_task.rb +0 -118
  140. data/test/test_test_task.rb +0 -77
@@ -1,10 +1,7 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'test/unit'
4
- require 'rake'
1
+ require File.expand_path('../helper', __FILE__)
5
2
 
6
3
  ######################################################################
7
- class TestTaskArguments < Test::Unit::TestCase
4
+ class TestRakeTaskArguments < Rake::TestCase
8
5
  def teardown
9
6
  ENV.delete('rev')
10
7
  ENV.delete('VER')
@@ -50,12 +47,12 @@ class TestTaskArguments < Test::Unit::TestCase
50
47
  assert_nil ta.cc
51
48
  end
52
49
 
53
- def test_args_can_reference_env_values
50
+ def test_args_do_not_reference_env_values
54
51
  ta = Rake::TaskArguments.new(["aa"], [1])
55
52
  ENV['rev'] = "1.2"
56
53
  ENV['VER'] = "2.3"
57
- assert_equal "1.2", ta.rev
58
- assert_equal "2.3", ta.ver
54
+ assert_nil ta.rev
55
+ assert_nil ta.ver
59
56
  end
60
57
 
61
58
  def test_creating_new_argument_scopes
@@ -73,7 +70,7 @@ class TestTaskArguments < Test::Unit::TestCase
73
70
  child = Rake::TaskArguments.new(['aa'], [2], parent)
74
71
  assert_equal 2, child.aa
75
72
  end
76
-
73
+
77
74
  def test_default_arguments_values_can_be_merged
78
75
  ta = Rake::TaskArguments.new(["aa", "bb"], [nil, "original_val"])
79
76
  ta.with_defaults({ :aa => 'default_val' })
@@ -81,7 +78,7 @@ class TestTaskArguments < Test::Unit::TestCase
81
78
  assert_equal 'original_val', ta[:bb]
82
79
  end
83
80
 
84
- def test_default_arguements_that_dont_match_names_are_ignored
81
+ def test_default_arguments_that_dont_match_names_are_ignored
85
82
  ta = Rake::TaskArguments.new(["aa", "bb"], [nil, "original_val"])
86
83
  ta.with_defaults({ "cc" => "default_val" })
87
84
  assert_nil ta[:cc]
@@ -1,10 +1,7 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'test/unit'
1
+ require File.expand_path('../helper', __FILE__)
4
2
  require 'rake/tasklib'
5
3
 
6
-
7
- class TestTaskLib < Test::Unit::TestCase
4
+ class TestRakeTaskLib < Rake::TestCase
8
5
  def test_paste
9
6
  tl = Rake::TaskLib.new
10
7
  assert_equal :ab, tl.paste(:a, :b)
@@ -1,22 +1,15 @@
1
- #!/usr/bin/env ruby
1
+ require File.expand_path('../helper', __FILE__)
2
2
 
3
- require 'test/unit'
4
- require 'rake'
5
- require 'test/rake_test_setup'
6
-
7
- class TaskManager
8
- include Rake::TaskManager
9
- end
10
-
11
- class TestTaskManager < Test::Unit::TestCase
12
- include TestMethods
3
+ class TestRakeTaskManager < Rake::TestCase
13
4
 
14
5
  def setup
15
- @tm = TaskManager.new
6
+ super
7
+
8
+ @tm = Rake::TestCase::TaskManager.new
16
9
  end
17
10
 
18
11
  def test_create_task_manager
19
- assert_not_nil @tm
12
+ refute_nil @tm
20
13
  assert_equal [], @tm.tasks
21
14
  end
22
15
 
@@ -65,14 +58,14 @@ class TestTaskManager < Test::Unit::TestCase
65
58
  end
66
59
 
67
60
  def test_name_lookup_with_implicit_file_tasks
68
- t = @tm["README"]
69
- assert_equal "README", t.name
61
+ t = @tm["README.rdoc"]
62
+ assert_equal "README.rdoc", t.name
70
63
  assert Rake::FileTask === t
71
64
  end
72
65
 
73
66
  def test_name_lookup_with_nonexistent_task
74
- assert_exception(RuntimeError) {
75
- t = @tm["DOES NOT EXIST"]
67
+ assert_raises(RuntimeError) {
68
+ @tm["DOES NOT EXIST"]
76
69
  }
77
70
  end
78
71
 
@@ -129,7 +122,7 @@ class TestTaskManager < Test::Unit::TestCase
129
122
  end
130
123
  end
131
124
  assert_equal t1, @tm[:t, []]
132
- assert_equal t2, @tm[:t, ["a"]]
125
+ assert_equal t2, @tm[:t, ["a"]]
133
126
  assert_equal t3, @tm[:t, ["a", "b"]]
134
127
  assert_equal s, @tm[:s, ["a", "b"]]
135
128
  assert_equal s, @tm[:s, ["a"]]
@@ -147,27 +140,6 @@ class TestTaskManager < Test::Unit::TestCase
147
140
  @tm["a:x"].invoke
148
141
  assert_equal ["next z"], values
149
142
  end
150
-
151
- end
152
-
153
- class TestTaskManagerArgumentResolution < Test::Unit::TestCase
154
- def test_good_arg_patterns
155
- assert_equal [:t, [], []], task(:t)
156
- assert_equal [:t, [], [:x]], task(:t => :x)
157
- assert_equal [:t, [], [:x, :y]], task(:t => [:x, :y])
158
143
 
159
- assert_equal [:t, [:a, :b], []], task(:t, :a, :b)
160
- assert_equal [:t, [], [:x]], task(:t, :needs => :x)
161
- assert_equal [:t, [:a, :b], [:x]], task(:t, :a, :b, :needs => :x)
162
- assert_equal [:t, [:a, :b], [:x, :y]], task(:t, :a, :b, :needs => [:x, :y])
163
-
164
- assert_equal [:t, [:a, :b], []], task(:t, [:a, :b])
165
- assert_equal [:t, [:a, :b], [:x]], task(:t, [:a, :b] => :x)
166
- assert_equal [:t, [:a, :b], [:x, :y]], task(:t, [:a, :b] => [:x, :y])
167
- end
168
-
169
- def task(*args)
170
- tm = TaskManager.new
171
- tm.resolve_args(args)
172
- end
173
144
  end
145
+
@@ -0,0 +1,36 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ class TestRakeTaskManagerArgumentResolution < Rake::TestCase
4
+
5
+ def setup
6
+ super
7
+
8
+ Rake.application.options.ignore_deprecate = true
9
+ end
10
+
11
+ def teardown
12
+ Rake.application.options.ignore_deprecate = false
13
+
14
+ super
15
+ end
16
+
17
+ def test_good_arg_patterns
18
+ assert_equal [:t, [], []], task(:t)
19
+ assert_equal [:t, [], [:x]], task(:t => :x)
20
+ assert_equal [:t, [], [:x, :y]], task(:t => [:x, :y])
21
+
22
+ assert_equal [:t, [:a, :b], []], task(:t, :a, :b)
23
+ assert_equal [:t, [], [:x]], task(:t, :needs => :x)
24
+ assert_equal [:t, [:a, :b], [:x]], task(:t, :a, :b, :needs => :x)
25
+ assert_equal [:t, [:a, :b], [:x, :y]], task(:t, :a, :b, :needs => [:x, :y])
26
+
27
+ assert_equal [:t, [:a, :b], []], task(:t, [:a, :b])
28
+ assert_equal [:t, [:a, :b], [:x]], task(:t, [:a, :b] => :x)
29
+ assert_equal [:t, [:a, :b], [:x, :y]], task(:t, [:a, :b] => [:x, :y])
30
+ end
31
+
32
+ def task(*args)
33
+ tm = Rake::TestCase::TaskManager.new
34
+ tm.resolve_args(args)
35
+ end
36
+ end
@@ -0,0 +1,162 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ class TestRakeTaskWithArguments < Rake::TestCase
4
+ include Rake
5
+
6
+ def setup
7
+ super
8
+
9
+ Task.clear
10
+ Rake::TaskManager.record_task_metadata = true
11
+ end
12
+
13
+ def teardown
14
+ Rake::TaskManager.record_task_metadata = false
15
+
16
+ super
17
+ end
18
+
19
+ def test_no_args_given
20
+ t = task :t
21
+ assert_equal [], t.arg_names
22
+ end
23
+
24
+ def test_args_given
25
+ t = task :t, :a, :b
26
+ assert_equal [:a, :b], t.arg_names
27
+ end
28
+
29
+ def test_name_and_needs
30
+ t = task(:t => [:pre])
31
+ assert_equal "t", t.name
32
+ assert_equal [], t.arg_names
33
+ assert_equal ["pre"], t.prerequisites
34
+ end
35
+
36
+ def test_name_args_and_explicit_needs
37
+ ignore_deprecations do
38
+ t = task(:t, :x, :y, :needs => [:pre])
39
+ assert_equal "t", t.name
40
+ assert_equal [:x, :y], t.arg_names
41
+ assert_equal ["pre"], t.prerequisites
42
+ end
43
+ end
44
+
45
+ def test_illegal_keys_in_task_name_hash
46
+ ignore_deprecations do
47
+ assert_raises RuntimeError do
48
+ t = task(:t, :x, :y => 1, :needs => [:pre])
49
+ end
50
+ end
51
+ end
52
+
53
+ def test_arg_list_is_empty_if_no_args_given
54
+ t = task(:t) { |tt, args| assert_equal({}, args.to_hash) }
55
+ t.invoke(1, 2, 3)
56
+ end
57
+
58
+ def test_tasks_can_access_arguments_as_hash
59
+ t = task :t, :a, :b, :c do |tt, args|
60
+ assert_equal({:a => 1, :b => 2, :c => 3}, args.to_hash)
61
+ assert_equal 1, args[:a]
62
+ assert_equal 2, args[:b]
63
+ assert_equal 3, args[:c]
64
+ assert_equal 1, args.a
65
+ assert_equal 2, args.b
66
+ assert_equal 3, args.c
67
+ end
68
+ t.invoke(1, 2, 3)
69
+ end
70
+
71
+ def test_actions_of_various_arity_are_ok_with_args
72
+ notes = []
73
+ t = task(:t, :x) do
74
+ notes << :a
75
+ end
76
+ t.enhance do | |
77
+ notes << :b
78
+ end
79
+ t.enhance do |task|
80
+ notes << :c
81
+ assert_kind_of Task, task
82
+ end
83
+ t.enhance do |t2, args|
84
+ notes << :d
85
+ assert_equal t, t2
86
+ assert_equal({:x => 1}, args.to_hash)
87
+ end
88
+ t.invoke(1)
89
+ assert_equal [:a, :b, :c, :d], notes
90
+ end
91
+
92
+ def test_arguments_are_passed_to_block
93
+ t = task(:t, :a, :b) { |tt, args|
94
+ assert_equal( { :a => 1, :b => 2 }, args.to_hash )
95
+ }
96
+ t.invoke(1, 2)
97
+ end
98
+
99
+ def test_extra_parameters_are_ignored
100
+ t = task(:t, :a) { |tt, args|
101
+ assert_equal 1, args.a
102
+ assert_nil args.b
103
+ }
104
+ t.invoke(1, 2)
105
+ end
106
+
107
+ def test_arguments_are_passed_to_all_blocks
108
+ counter = 0
109
+ t = task :t, :a
110
+ task :t do |tt, args|
111
+ assert_equal 1, args.a
112
+ counter += 1
113
+ end
114
+ task :t do |tt, args|
115
+ assert_equal 1, args.a
116
+ counter += 1
117
+ end
118
+ t.invoke(1)
119
+ assert_equal 2, counter
120
+ end
121
+
122
+ def test_block_with_no_parameters_is_ok
123
+ t = task(:t) { }
124
+ t.invoke(1, 2)
125
+ end
126
+
127
+ def test_name_with_args
128
+ desc "T"
129
+ t = task(:tt, :a, :b)
130
+ assert_equal "tt", t.name
131
+ assert_equal "T", t.comment
132
+ assert_equal "[a,b]", t.arg_description
133
+ assert_equal "tt[a,b]", t.name_with_args
134
+ assert_equal [:a, :b],t.arg_names
135
+ end
136
+
137
+ def test_named_args_are_passed_to_prereqs
138
+ value = nil
139
+ pre = task(:pre, :rev) { |t, args| value = args.rev }
140
+ t = task(:t, [:name, :rev] => [:pre])
141
+ t.invoke("bill", "1.2")
142
+ assert_equal "1.2", value
143
+ end
144
+
145
+ def test_args_not_passed_if_no_prereq_names
146
+ pre = task(:pre) { |t, args|
147
+ assert_equal({}, args.to_hash)
148
+ assert_equal "bill", args.name
149
+ }
150
+ t = task(:t, [:name, :rev] => [:pre])
151
+ t.invoke("bill", "1.2")
152
+ end
153
+
154
+ def test_args_not_passed_if_no_arg_names
155
+ pre = task(:pre, :rev) { |t, args|
156
+ assert_equal({}, args.to_hash)
157
+ }
158
+ t = task(:t => [:pre])
159
+ t.invoke("bill", "1.2")
160
+ end
161
+ end
162
+
@@ -0,0 +1,122 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+ require 'rake/testtask'
3
+
4
+ class TestRakeTestTask < Rake::TestCase
5
+ include Rake
6
+
7
+ def setup
8
+ super
9
+
10
+ Task.clear
11
+ ENV.delete('TEST')
12
+ end
13
+
14
+ def teardown
15
+ FileUtils.rm_rf("testdata")
16
+
17
+ super
18
+ end
19
+
20
+ def test_no_task
21
+ assert ! Task.task_defined?(:test)
22
+ end
23
+
24
+ def test_defaults
25
+ tt = Rake::TestTask.new do |t| end
26
+ refute_nil tt
27
+ assert_equal :test, tt.name
28
+ assert_equal ['lib'], tt.libs
29
+ assert_equal 'test/test*.rb', tt.pattern
30
+ assert_equal false, tt.verbose
31
+ assert Task.task_defined?(:test)
32
+ end
33
+
34
+ def test_non_defaults
35
+ tt = Rake::TestTask.new(:example) do |t|
36
+ t.libs = ['src', 'ext']
37
+ t.pattern = 'test/tc_*.rb'
38
+ t.verbose = true
39
+ end
40
+ refute_nil tt
41
+ assert_equal :example, tt.name
42
+ assert_equal ['src', 'ext'], tt.libs
43
+ assert_equal 'test/tc_*.rb', tt.pattern
44
+ assert_equal true, tt.verbose
45
+ assert Task.task_defined?(:example)
46
+ end
47
+
48
+ def test_pattern
49
+ tt = Rake::TestTask.new do |t|
50
+ t.pattern = '*.rb'
51
+ end
52
+ assert_equal ['*.rb'], tt.file_list.to_a
53
+ end
54
+
55
+ def test_env_test
56
+ ENV['TEST'] = 'testfile.rb'
57
+ tt = Rake::TestTask.new do |t|
58
+ t.pattern = '*'
59
+ end
60
+ assert_equal ["testfile.rb"], tt.file_list.to_a
61
+ end
62
+
63
+ def test_test_files
64
+ tt = Rake::TestTask.new do |t|
65
+ t.test_files = FileList['a.rb', 'b.rb']
66
+ end
67
+ assert_equal ["a.rb", 'b.rb'], tt.file_list.to_a
68
+ end
69
+
70
+ def test_both_pattern_and_test_files
71
+ tt = Rake::TestTask.new do |t|
72
+ t.test_files = FileList['a.rb', 'b.rb']
73
+ t.pattern = '*.rb'
74
+ end
75
+ assert_equal ['a.rb', 'b.rb', '*.rb'], tt.file_list.to_a
76
+ end
77
+
78
+ def test_direct_run_has_quoted_paths
79
+ test_task = Rake::TestTask.new(:tx) do |t|
80
+ t.loader = :direct
81
+ end
82
+ assert_match(/-e ".*"/, test_task.run_code)
83
+ end
84
+
85
+ def test_testrb_run_has_quoted_paths_on_ruby_182
86
+ test_task = Rake::TestTask.new(:tx) do |t|
87
+ t.loader = :testrb
88
+ end
89
+ flexmock(test_task).should_receive(:ruby_version).and_return('1.8.2')
90
+ assert_match(/^-S testrb +".*"$/, test_task.run_code)
91
+ end
92
+
93
+ def test_testrb_run_has_quoted_paths_on_ruby_186
94
+ test_task = Rake::TestTask.new(:tx) do |t|
95
+ t.loader = :testrb
96
+ end
97
+ flexmock(test_task).should_receive(:ruby_version).and_return('1.8.6')
98
+ assert_match(/^-S testrb +$/, test_task.run_code)
99
+ end
100
+
101
+ def test_rake_run_has_quoted_paths
102
+ test_task = Rake::TestTask.new(:tx) do |t|
103
+ t.loader = :rake
104
+ end
105
+ assert_match(/".*"/, test_task.run_code)
106
+ end
107
+
108
+ def test_nested_libs_will_be_flattened
109
+ test_task = Rake::TestTask.new(:tx) do |t|
110
+ t.libs << ["A", "B"]
111
+ end
112
+ sep = File::PATH_SEPARATOR
113
+ assert_match(/lib#{sep}A#{sep}B/, test_task.ruby_opts_string)
114
+ end
115
+
116
+ def test_empty_lib_path_implies_no_dash_I_option
117
+ test_task = Rake::TestTask.new(:tx) do |t|
118
+ t.libs = []
119
+ end
120
+ refute_match(/-I/, test_task.ruby_opts_string)
121
+ end
122
+ end
@@ -1,29 +1,19 @@
1
- #!/usr/bin/env ruby
1
+ require File.expand_path('../helper', __FILE__)
2
2
 
3
- begin
4
- require 'rubygems'
5
- rescue LoadError
6
- # got no gems
7
- end
8
-
9
- require 'test/unit'
10
- require 'flexmock/test_unit'
11
- require 'test/capture_stdout'
12
- require 'test/rake_test_setup'
13
- require 'rake'
14
-
15
- class TestTopLevelFunctions < Test::Unit::TestCase
16
- include CaptureStdout
17
- include TestMethods
3
+ class TestRakeTopLevelFunctions < Rake::TestCase
18
4
 
19
5
  def setup
20
6
  super
7
+
21
8
  @app = Rake.application
22
9
  Rake.application = flexmock("app")
10
+ Rake.application.should_receive(:deprecate).
11
+ and_return { |old, new, call| @app.deprecate(old, new, call) }
23
12
  end
24
13
 
25
14
  def teardown
26
15
  Rake.application = @app
16
+
27
17
  super
28
18
  end
29
19
 
@@ -40,7 +30,7 @@ class TestTopLevelFunctions < Test::Unit::TestCase
40
30
  end
41
31
 
42
32
  def test_when_writing
43
- out = capture_stdout do
33
+ out, = capture_io do
44
34
  when_writing("NOTWRITING") do
45
35
  puts "WRITING"
46
36
  end
@@ -49,15 +39,15 @@ class TestTopLevelFunctions < Test::Unit::TestCase
49
39
  end
50
40
 
51
41
  def test_when_not_writing
52
- RakeFileUtils.nowrite_flag = true
53
- out = capture_stdout do
42
+ Rake::FileUtilsExt.nowrite_flag = true
43
+ _, err = capture_io do
54
44
  when_writing("NOTWRITING") do
55
45
  puts "WRITING"
56
46
  end
57
47
  end
58
- assert_equal "DRYRUN: NOTWRITING\n", out
48
+ assert_equal "DRYRUN: NOTWRITING\n", err
59
49
  ensure
60
- RakeFileUtils.nowrite_flag = false
50
+ Rake::FileUtilsExt.nowrite_flag = false
61
51
  end
62
52
 
63
53
  def test_missing_constants_task
@@ -81,6 +71,6 @@ class TestTopLevelFunctions < Test::Unit::TestCase
81
71
  end
82
72
 
83
73
  def test_missing_other_constant
84
- assert_exception(NameError) do Object.const_missing(:Xyz) end
74
+ assert_raises(NameError) do Object.const_missing(:Xyz) end
85
75
  end
86
76
  end
@@ -1,14 +1,7 @@
1
- #!/usr/bin/env ruby
1
+ require File.expand_path('../helper', __FILE__)
2
2
 
3
- require 'test/unit'
4
- require 'test/rake_test_setup'
5
- require 'test/in_environment'
6
-
7
- require 'rake'
8
-
9
- class TestWin32 < Test::Unit::TestCase
3
+ class TestRakeWin32 < Rake::TestCase
10
4
  include InEnvironment
11
- include TestMethods
12
5
 
13
6
  Win32 = Rake::Win32
14
7
 
@@ -63,10 +56,28 @@ class TestWin32 < Test::Unit::TestCase
63
56
  'APPDATA' => nil,
64
57
  "USERPROFILE" => nil
65
58
  ) do
66
- assert_exception(Rake::Win32::Win32HomeError) do
59
+ assert_raises(Rake::Win32::Win32HomeError) do
67
60
  Win32.win32_system_dir
68
61
  end
69
62
  end
70
63
  end
71
64
 
65
+ def test_win32_backtrace_with_different_case
66
+ ex = nil
67
+ begin
68
+ raise 'test exception'
69
+ rescue => ex
70
+ end
71
+
72
+ ex.set_backtrace ['abc', 'rakefile']
73
+
74
+ rake = Rake::Application.new
75
+ rake.options.trace = true
76
+ rake.instance_variable_set(:@rakefile, 'Rakefile')
77
+
78
+ _, err = capture_io { rake.display_error_message(ex) }
79
+
80
+ assert_match(/rakefile/, err)
81
+ end
82
+
72
83
  end
data/test/test_sys.rb ADDED
@@ -0,0 +1,20 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+ begin
3
+ old_verbose = $VERBOSE
4
+ $VERBOSE = nil
5
+ require 'rake/contrib/sys'
6
+ ensure
7
+ $VERBOSE = old_verbose
8
+ end
9
+
10
+ class TestSys < Rake::TestCase
11
+
12
+ def test_split_all
13
+ assert_equal ['a'], Sys.split_all('a')
14
+ assert_equal ['..'], Sys.split_all('..')
15
+ assert_equal ['/'], Sys.split_all('/')
16
+ assert_equal ['a', 'b'], Sys.split_all('a/b')
17
+ assert_equal ['/', 'a', 'b'], Sys.split_all('/a/b')
18
+ assert_equal ['..', 'a', 'b'], Sys.split_all('../a/b')
19
+ end
20
+ end