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.
- data/.gemtest +0 -0
- data/CHANGES +78 -9
- data/{README → README.rdoc} +14 -10
- data/RRR +9 -0
- data/Rakefile +100 -125
- data/TODO +1 -1
- data/bin/rake +4 -3
- data/doc/command_line_usage.rdoc +18 -6
- data/doc/glossary.rdoc +2 -2
- data/doc/jamis.rb +2 -2
- data/doc/proto_rake.rdoc +22 -22
- data/doc/rake.1.gz +0 -0
- data/doc/rakefile.rdoc +56 -33
- data/doc/rational.rdoc +6 -6
- data/doc/release_notes/rake-0.4.15.rdoc +1 -1
- data/doc/release_notes/rake-0.5.0.rdoc +1 -1
- data/doc/release_notes/rake-0.7.0.rdoc +1 -1
- data/doc/release_notes/rake-0.7.2.rdoc +3 -3
- data/doc/release_notes/rake-0.7.3.rdoc +2 -2
- data/doc/release_notes/rake-0.8.0.rdoc +1 -1
- data/doc/release_notes/rake-0.8.2.rdoc +3 -3
- data/doc/release_notes/rake-0.8.3.rdoc +2 -2
- data/doc/release_notes/rake-0.8.4.rdoc +1 -1
- data/doc/release_notes/rake-0.8.5.rdoc +1 -1
- data/doc/release_notes/rake-0.8.6.rdoc +1 -1
- data/doc/release_notes/rake-0.8.7.rdoc +1 -1
- data/doc/release_notes/rake-0.9.0.rdoc +112 -0
- data/doc/release_notes/rake-0.9.1.rdoc +52 -0
- data/doc/release_notes/rake-0.9.2.rdoc +49 -0
- data/install.rb +14 -12
- data/lib/rake/alt_system.rb +7 -6
- data/lib/rake/application.rb +589 -0
- data/lib/rake/classic_namespace.rb +1 -0
- data/lib/rake/clean.rb +2 -4
- data/lib/rake/cloneable.rb +25 -0
- data/lib/rake/contrib/compositepublisher.rb +2 -5
- data/lib/rake/contrib/ftptools.rb +5 -8
- data/lib/rake/contrib/publisher.rb +2 -8
- data/lib/rake/contrib/rubyforgepublisher.rb +2 -4
- data/lib/rake/contrib/sshpublisher.rb +4 -6
- data/lib/rake/contrib/sys.rb +7 -25
- data/lib/rake/default_loader.rb +10 -0
- data/lib/rake/dsl_definition.rb +167 -0
- data/lib/rake/early_time.rb +18 -0
- data/lib/rake/ext/core.rb +27 -0
- data/lib/rake/ext/module.rb +39 -0
- data/lib/rake/ext/string.rb +167 -0
- data/lib/rake/ext/time.rb +14 -0
- data/lib/rake/file_creation_task.rb +24 -0
- data/lib/rake/file_list.rb +403 -0
- data/lib/rake/file_task.rb +47 -0
- data/lib/rake/file_utils.rb +112 -0
- data/lib/rake/file_utils_ext.rb +142 -0
- data/lib/rake/gempackagetask.rb +6 -90
- data/lib/rake/invocation_chain.rb +51 -0
- data/lib/rake/invocation_exception_mixin.rb +16 -0
- data/lib/rake/loaders/makefile.rb +13 -15
- data/lib/rake/multi_task.rb +16 -0
- data/lib/rake/name_space.rb +25 -0
- data/lib/rake/packagetask.rb +13 -12
- data/lib/rake/pathmap.rb +1 -0
- data/lib/rake/pseudo_status.rb +24 -0
- data/lib/rake/rake_module.rb +29 -0
- data/lib/rake/rake_test_loader.rb +10 -2
- data/lib/rake/rdoctask.rb +211 -190
- data/lib/rake/ruby182_test_unit_fix.rb +9 -7
- data/lib/rake/rule_recursion_overflow_error.rb +20 -0
- data/lib/rake/runtest.rb +4 -6
- data/lib/rake/task.rb +327 -0
- data/lib/rake/task_argument_error.rb +7 -0
- data/lib/rake/task_arguments.rb +74 -0
- data/lib/rake/task_manager.rb +307 -0
- data/lib/rake/tasklib.rb +1 -2
- data/lib/rake/testtask.rb +57 -27
- data/lib/rake/version.rb +10 -0
- data/lib/rake/win32.rb +4 -4
- data/lib/rake.rb +29 -2470
- data/test/data/access/Rakefile +35 -0
- data/test/data/comments/Rakefile +18 -0
- data/test/data/default/Rakefile +1 -3
- data/test/data/deprecated_import/Rakefile +1 -0
- data/test/data/dryrun/Rakefile +1 -1
- data/test/data/extra/Rakefile +1 -0
- data/test/data/file_creation_task/Rakefile +1 -3
- data/test/data/multidesc/Rakefile +0 -2
- data/test/data/namespace/Rakefile +9 -2
- data/test/data/rakelib/test1.rb +1 -0
- data/test/data/statusreturn/Rakefile +0 -2
- data/test/data/verbose/Rakefile +34 -0
- data/test/{filecreation.rb → file_creation.rb} +11 -9
- data/test/helper.rb +44 -0
- data/test/in_environment.rb +11 -6
- data/test/test_rake.rb +3 -6
- data/test/test_rake_application.rb +364 -0
- data/test/test_rake_application_options.rb +382 -0
- data/test/{test_clean.rb → test_rake_clean.rb} +2 -4
- data/test/{test_definitions.rb → test_rake_definitions.rb} +7 -12
- data/test/test_rake_directory_task.rb +55 -0
- data/test/test_rake_dsl.rb +73 -0
- data/test/{test_earlytime.rb → test_rake_early_time.rb} +3 -7
- data/test/{test_extension.rb → test_rake_extension.rb} +4 -8
- data/test/{test_file_creation_task.rb → test_rake_file_creation_task.rb} +7 -7
- data/test/{test_filelist.rb → test_rake_file_list.rb} +45 -35
- data/test/test_rake_file_list_path_map.rb +8 -0
- data/test/{test_file_task.rb → test_rake_file_task.rb} +23 -62
- data/test/{test_fileutils.rb → test_rake_file_utils.rb} +34 -33
- data/test/{test_ftp.rb → test_rake_ftp_file.rb} +5 -5
- data/test/{session_functional.rb → test_rake_functional.rb} +173 -44
- data/test/test_rake_invocation_chain.rb +52 -0
- data/test/{test_makefile_loader.rb → test_rake_makefile_loader.rb} +2 -5
- data/test/{test_multitask.rb → test_rake_multi_task.rb} +18 -12
- data/test/{test_namespace.rb → test_rake_name_space.rb} +4 -16
- data/test/test_rake_package_task.rb +78 -0
- data/test/{test_pathmap.rb → test_rake_path_map.rb} +5 -58
- data/test/test_rake_path_map_explode.rb +31 -0
- data/test/test_rake_path_map_partial.rb +18 -0
- data/test/{test_pseudo_status.rb → test_rake_pseudo_status.rb} +2 -8
- data/test/{test_rdoc_task.rb → test_rake_rdoc_task.rb} +22 -29
- data/test/{test_require.rb → test_rake_require.rb} +11 -11
- data/test/{test_rules.rb → test_rake_rules.rb} +12 -15
- data/test/{test_tasks.rb → test_rake_task.rb} +75 -178
- data/test/test_rake_task_argument_parsing.rb +116 -0
- data/test/{test_task_arguments.rb → test_rake_task_arguments.rb} +7 -10
- data/test/{test_tasklib.rb → test_rake_task_lib.rb} +2 -5
- data/test/{test_task_manager.rb → test_rake_task_manager.rb} +12 -40
- data/test/test_rake_task_manager_argument_resolution.rb +36 -0
- data/test/test_rake_task_with_arguments.rb +162 -0
- data/test/test_rake_test_task.rb +122 -0
- data/test/{test_top_level_functions.rb → test_rake_top_level_functions.rb} +12 -22
- data/test/{test_win32.rb → test_rake_win32.rb} +21 -10
- data/test/test_sys.rb +20 -0
- metadata +129 -51
- data/test/capture_stdout.rb +0 -26
- data/test/contrib/test_sys.rb +0 -47
- data/test/functional.rb +0 -15
- data/test/rake_test_setup.rb +0 -24
- data/test/test_application.rb +0 -675
- data/test/test_invocation_chain.rb +0 -81
- data/test/test_package_task.rb +0 -118
- data/test/test_test_task.rb +0 -77
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
require 'test/unit'
|
|
4
|
-
require 'rake'
|
|
1
|
+
require File.expand_path('../helper', __FILE__)
|
|
5
2
|
|
|
6
3
|
######################################################################
|
|
7
|
-
class
|
|
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
|
|
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
|
-
|
|
58
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
1
|
+
require File.expand_path('../helper', __FILE__)
|
|
2
2
|
|
|
3
|
-
|
|
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
|
-
|
|
6
|
+
super
|
|
7
|
+
|
|
8
|
+
@tm = Rake::TestCase::TaskManager.new
|
|
16
9
|
end
|
|
17
10
|
|
|
18
11
|
def test_create_task_manager
|
|
19
|
-
|
|
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
|
-
|
|
75
|
-
|
|
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
|
-
|
|
1
|
+
require File.expand_path('../helper', __FILE__)
|
|
2
2
|
|
|
3
|
-
|
|
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 =
|
|
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
|
-
|
|
53
|
-
|
|
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",
|
|
48
|
+
assert_equal "DRYRUN: NOTWRITING\n", err
|
|
59
49
|
ensure
|
|
60
|
-
|
|
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
|
-
|
|
74
|
+
assert_raises(NameError) do Object.const_missing(:Xyz) end
|
|
85
75
|
end
|
|
86
76
|
end
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
require File.expand_path('../helper', __FILE__)
|
|
2
2
|
|
|
3
|
-
|
|
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
|
-
|
|
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
|