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.
- data/.gemtest +0 -0
- data/CHANGES +77 -9
- data/{README → README.rdoc} +14 -10
- data/Rakefile +129 -118
- data/TODO +1 -1
- 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 +55 -32
- 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/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.rb +2 -0
- data/lib/rake/dsl_definition.rb +143 -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/contrib/test_sys.rb +8 -31
- data/test/data/access/Rakefile +33 -0
- data/test/data/comments/Rakefile +18 -0
- data/test/data/default/Rakefile +1 -1
- data/test/data/deprecated_import/Rakefile +1 -0
- data/test/data/dryrun/Rakefile +1 -1
- data/test/data/file_creation_task/Rakefile +1 -1
- data/test/data/namespace/Rakefile +9 -0
- data/test/data/rakelib/test1.rb +1 -0
- data/test/data/verbose/Rakefile +34 -0
- data/test/{filecreation.rb → file_creation.rb} +11 -7
- data/test/functional/functional_test.rb +25 -0
- data/test/{session_functional.rb → functional/session_based_tests.rb} +141 -23
- data/test/in_environment.rb +7 -5
- data/test/{test_application.rb → lib/application_test.rb} +331 -143
- data/test/{test_clean.rb → lib/clean_test.rb} +1 -0
- data/test/{test_definitions.rb → lib/definitions_test.rb} +3 -3
- data/test/lib/dsl_test.rb +52 -0
- data/test/{test_earlytime.rb → lib/earlytime_test.rb} +1 -2
- data/test/{test_extension.rb → lib/extension_test.rb} +2 -2
- data/test/{test_file_creation_task.rb → lib/file_creation_task_test.rb} +1 -1
- data/test/{test_file_task.rb → lib/file_task_test.rb} +4 -4
- data/test/{test_filelist.rb → lib/filelist_test.rb} +38 -24
- data/test/{test_fileutils.rb → lib/fileutils_test.rb} +27 -22
- data/test/{test_multitask.rb → lib/multitask_test.rb} +14 -6
- data/test/lib/package_task_test.rb +82 -0
- data/test/{test_pathmap.rb → lib/pathmap_test.rb} +3 -2
- data/test/{test_rake.rb → lib/rake_test.rb} +1 -1
- data/test/{test_rdoc_task.rb → lib/rdoc_task_test.rb} +19 -23
- data/test/{test_require.rb → lib/require_test.rb} +8 -2
- data/test/{test_rules.rb → lib/rules_test.rb} +2 -3
- data/test/{test_task_arguments.rb → lib/task_arguments_test.rb} +5 -5
- data/test/{test_task_manager.rb → lib/task_manager_test.rb} +15 -5
- data/test/{test_tasks.rb → lib/task_test.rb} +84 -21
- data/test/{test_test_task.rb → lib/test_task_test.rb} +3 -3
- data/test/lib/testtask_test.rb +49 -0
- data/test/{test_top_level_functions.rb → lib/top_level_functions_test.rb} +5 -3
- data/test/{test_win32.rb → lib/win32_test.rb} +19 -0
- data/test/rake_test_setup.rb +5 -9
- data/test/ruby_version_test.rb +3 -0
- data/test/test_helper.rb +19 -0
- metadata +108 -49
- data/test/functional.rb +0 -15
- data/test/test_package_task.rb +0 -118
- /data/test/{test_ftp.rb → lib/ftp_test.rb} +0 -0
- /data/test/{test_invocation_chain.rb → lib/invocation_chain_test.rb} +0 -0
- /data/test/{test_makefile_loader.rb → lib/makefile_loader_test.rb} +0 -0
- /data/test/{test_namespace.rb → lib/namespace_test.rb} +0 -0
- /data/test/{test_pseudo_status.rb → lib/pseudo_status_test.rb} +0 -0
- /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 '
|
|
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
|
-
|
|
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",
|
|
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(/
|
|
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/
|
|
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
|
|
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
|
|
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
|
-
|
|
58
|
-
|
|
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
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
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
|
-
|
|
262
|
-
|
|
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
|
|
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
|
|
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
|
|
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 ['
|
|
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', '
|
|
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
|
-
|
|
53
|
-
out =
|
|
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
|
-
|
|
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
|
data/test/rake_test_setup.rb
CHANGED
|
@@ -8,17 +8,13 @@ rescue LoadError
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
require 'flexmock/test_unit'
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
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
|
data/test/test_helper.rb
ADDED
|
@@ -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
|