rake 11.1.2 → 11.2.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.
Potentially problematic release.
This version of rake might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.gitignore +14 -0
- data/.rubocop.yml +0 -9
- data/.travis.yml +28 -0
- data/CONTRIBUTING.rdoc +3 -5
- data/Gemfile +3 -0
- data/History.rdoc +1770 -273
- data/Rakefile +15 -68
- data/appveyor.yml +24 -0
- data/bin/console +7 -0
- data/bin/setup +6 -0
- data/doc/release_notes/README.md +4 -0
- data/doc/release_notes/rake-0.7.3.rdoc +0 -0
- data/{bin → exe}/rake +0 -6
- data/lib/rake.rb +1 -3
- data/lib/rake/application.rb +3 -6
- data/lib/rake/cpu_counter.rb +3 -17
- data/lib/rake/file_utils.rb +22 -6
- data/lib/rake/packagetask.rb +12 -1
- data/lib/rake/rake_test_loader.rb +0 -1
- data/lib/rake/rule_recursion_overflow_error.rb +0 -1
- data/lib/rake/task.rb +3 -3
- data/lib/rake/task_arguments.rb +2 -1
- data/lib/rake/testtask.rb +5 -1
- data/lib/rake/thread_pool.rb +0 -1
- data/lib/rake/version.rb +2 -0
- data/rake.gemspec +30 -0
- metadata +21 -110
- data/.autotest +0 -7
- data/.togglerc +0 -7
- data/Manifest.txt +0 -154
- data/lib/rake/contrib/.document +0 -1
- data/rakelib/test_times.rake +0 -25
- data/test/file_creation.rb +0 -34
- data/test/helper.rb +0 -134
- data/test/support/rakefile_definitions.rb +0 -476
- data/test/support/ruby_runner.rb +0 -34
- data/test/test_private_reader.rb +0 -42
- data/test/test_rake.rb +0 -40
- data/test/test_rake_application.rb +0 -659
- data/test/test_rake_application_options.rb +0 -468
- data/test/test_rake_backtrace.rb +0 -119
- data/test/test_rake_clean.rb +0 -61
- data/test/test_rake_cpu_counter.rb +0 -68
- data/test/test_rake_definitions.rb +0 -84
- data/test/test_rake_directory_task.rb +0 -76
- data/test/test_rake_dsl.rb +0 -40
- data/test/test_rake_early_time.rb +0 -31
- data/test/test_rake_extension.rb +0 -59
- data/test/test_rake_file_creation_task.rb +0 -56
- data/test/test_rake_file_list.rb +0 -687
- data/test/test_rake_file_list_path_map.rb +0 -15
- data/test/test_rake_file_task.rb +0 -197
- data/test/test_rake_file_utils.rb +0 -318
- data/test/test_rake_ftp_file.rb +0 -74
- data/test/test_rake_functional.rb +0 -484
- data/test/test_rake_invocation_chain.rb +0 -64
- data/test/test_rake_late_time.rb +0 -18
- data/test/test_rake_linked_list.rb +0 -84
- data/test/test_rake_makefile_loader.rb +0 -46
- data/test/test_rake_multi_task.rb +0 -64
- data/test/test_rake_name_space.rb +0 -57
- data/test/test_rake_package_task.rb +0 -79
- data/test/test_rake_path_map.rb +0 -168
- data/test/test_rake_path_map_explode.rb +0 -34
- data/test/test_rake_path_map_partial.rb +0 -18
- data/test/test_rake_pathname_extensions.rb +0 -15
- data/test/test_rake_pseudo_status.rb +0 -21
- data/test/test_rake_rake_test_loader.rb +0 -20
- data/test/test_rake_reduce_compat.rb +0 -26
- data/test/test_rake_require.rb +0 -40
- data/test/test_rake_rules.rb +0 -388
- data/test/test_rake_scope.rb +0 -44
- data/test/test_rake_task.rb +0 -430
- data/test/test_rake_task_argument_parsing.rb +0 -119
- data/test/test_rake_task_arguments.rb +0 -134
- data/test/test_rake_task_manager.rb +0 -178
- data/test/test_rake_task_manager_argument_resolution.rb +0 -19
- data/test/test_rake_task_with_arguments.rb +0 -172
- data/test/test_rake_test_task.rb +0 -130
- data/test/test_rake_thread_pool.rb +0 -145
- data/test/test_rake_top_level_functions.rb +0 -71
- data/test/test_rake_win32.rb +0 -72
- data/test/test_thread_history_display.rb +0 -101
- data/test/test_trace_output.rb +0 -52
data/test/test_rake_backtrace.rb
DELETED
@@ -1,119 +0,0 @@
|
|
1
|
-
require File.expand_path('../helper', __FILE__)
|
2
|
-
require 'open3'
|
3
|
-
|
4
|
-
class TestBacktraceSuppression < Rake::TestCase
|
5
|
-
def test_bin_rake_suppressed
|
6
|
-
paths = ["something/bin/rake:12"]
|
7
|
-
|
8
|
-
actual = Rake::Backtrace.collapse(paths)
|
9
|
-
|
10
|
-
assert_equal [], actual
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_system_dir_suppressed
|
14
|
-
path = RbConfig::CONFIG['rubylibprefix']
|
15
|
-
skip if path.nil?
|
16
|
-
path = File.expand_path path
|
17
|
-
|
18
|
-
paths = [path + ":12"]
|
19
|
-
|
20
|
-
actual = Rake::Backtrace.collapse(paths)
|
21
|
-
|
22
|
-
assert_equal [], actual
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_near_system_dir_isnt_suppressed
|
26
|
-
path = RbConfig::CONFIG['rubylibprefix']
|
27
|
-
skip if path.nil?
|
28
|
-
path = File.expand_path path
|
29
|
-
|
30
|
-
paths = [" " + path + ":12"]
|
31
|
-
|
32
|
-
actual = Rake::Backtrace.collapse(paths)
|
33
|
-
|
34
|
-
assert_equal paths, actual
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
class TestRakeBacktrace < Rake::TestCase
|
39
|
-
include RubyRunner
|
40
|
-
|
41
|
-
def setup
|
42
|
-
super
|
43
|
-
|
44
|
-
skip 'tmpdir is suppressed in backtrace' if
|
45
|
-
Rake::Backtrace::SUPPRESS_PATTERN =~ Dir.pwd
|
46
|
-
end
|
47
|
-
|
48
|
-
def invoke(*args)
|
49
|
-
rake(*args)
|
50
|
-
@err
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_single_collapse
|
54
|
-
rakefile %q{
|
55
|
-
task :foo do
|
56
|
-
raise "foooo!"
|
57
|
-
end
|
58
|
-
}
|
59
|
-
|
60
|
-
lines = invoke("foo").split("\n")
|
61
|
-
|
62
|
-
assert_equal "rake aborted!", lines[0]
|
63
|
-
assert_equal "foooo!", lines[1]
|
64
|
-
assert_something_matches %r!\A#{Regexp.quote Dir.pwd}/Rakefile:3!i, lines
|
65
|
-
assert_something_matches %r!\ATasks:!, lines
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_multi_collapse
|
69
|
-
rakefile %q{
|
70
|
-
task :foo do
|
71
|
-
Rake.application.invoke_task(:bar)
|
72
|
-
end
|
73
|
-
task :bar do
|
74
|
-
raise "barrr!"
|
75
|
-
end
|
76
|
-
}
|
77
|
-
|
78
|
-
lines = invoke("foo").split("\n")
|
79
|
-
|
80
|
-
assert_equal "rake aborted!", lines[0]
|
81
|
-
assert_equal "barrr!", lines[1]
|
82
|
-
assert_something_matches %r!\A#{Regexp.quote Dir.pwd}/Rakefile:6!i, lines
|
83
|
-
assert_something_matches %r!\A#{Regexp.quote Dir.pwd}/Rakefile:3!i, lines
|
84
|
-
assert_something_matches %r!\ATasks:!, lines
|
85
|
-
end
|
86
|
-
|
87
|
-
def test_suppress_option
|
88
|
-
rakefile %q{
|
89
|
-
task :baz do
|
90
|
-
raise "bazzz!"
|
91
|
-
end
|
92
|
-
}
|
93
|
-
|
94
|
-
lines = invoke("baz").split("\n")
|
95
|
-
assert_equal "rake aborted!", lines[0]
|
96
|
-
assert_equal "bazzz!", lines[1]
|
97
|
-
assert_something_matches %r!Rakefile!i, lines
|
98
|
-
|
99
|
-
lines = invoke("--suppress-backtrace", ".ak.file", "baz").split("\n")
|
100
|
-
assert_equal "rake aborted!", lines[0]
|
101
|
-
assert_equal "bazzz!", lines[1]
|
102
|
-
refute_match %r!Rakefile!i, lines[2]
|
103
|
-
end
|
104
|
-
|
105
|
-
private
|
106
|
-
|
107
|
-
# Assert that the pattern matches at least one line in +lines+.
|
108
|
-
def assert_something_matches(pattern, lines)
|
109
|
-
lines.each do |ln|
|
110
|
-
if pattern =~ ln
|
111
|
-
assert_match pattern, ln
|
112
|
-
return
|
113
|
-
end
|
114
|
-
end
|
115
|
-
flunk "expected #{pattern.inspect} to match something in:\n" +
|
116
|
-
"#{lines.join("\n ")}"
|
117
|
-
end
|
118
|
-
|
119
|
-
end
|
data/test/test_rake_clean.rb
DELETED
@@ -1,61 +0,0 @@
|
|
1
|
-
require File.expand_path('../helper', __FILE__)
|
2
|
-
require 'rake/clean'
|
3
|
-
|
4
|
-
class TestRakeClean < Rake::TestCase
|
5
|
-
def test_clean
|
6
|
-
load 'rake/clean.rb', true
|
7
|
-
|
8
|
-
assert Rake::Task['clean'], "Should define clean"
|
9
|
-
assert Rake::Task['clobber'], "Should define clobber"
|
10
|
-
assert Rake::Task['clobber'].prerequisites.include?("clean"),
|
11
|
-
"Clobber should require clean"
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_cleanup
|
15
|
-
file_name = create_undeletable_file
|
16
|
-
|
17
|
-
out, _ = capture_io do
|
18
|
-
Rake::Cleaner.cleanup(file_name, :verbose => false)
|
19
|
-
end
|
20
|
-
assert_match(/failed to remove/i, out)
|
21
|
-
|
22
|
-
ensure
|
23
|
-
remove_undeletable_file
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_cleanup_ignores_missing_files
|
27
|
-
file_name = File.join(@tempdir, "missing_directory", "no_such_file")
|
28
|
-
|
29
|
-
out, _ = capture_io do
|
30
|
-
Rake::Cleaner.cleanup(file_name, :verbose => false)
|
31
|
-
end
|
32
|
-
refute_match(/failed to remove/i, out)
|
33
|
-
end
|
34
|
-
|
35
|
-
private
|
36
|
-
|
37
|
-
def create_undeletable_file
|
38
|
-
dir_name = File.join(@tempdir, "deletedir")
|
39
|
-
file_name = File.join(dir_name, "deleteme")
|
40
|
-
FileUtils.mkdir(dir_name)
|
41
|
-
FileUtils.touch(file_name)
|
42
|
-
FileUtils.chmod(0, file_name)
|
43
|
-
FileUtils.chmod(0, dir_name)
|
44
|
-
begin
|
45
|
-
FileUtils.chmod(0644, file_name)
|
46
|
-
rescue
|
47
|
-
file_name
|
48
|
-
else
|
49
|
-
skip "Permission to delete files is different on thie system"
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
def remove_undeletable_file
|
54
|
-
dir_name = File.join(@tempdir, "deletedir")
|
55
|
-
file_name = File.join(dir_name, "deleteme")
|
56
|
-
FileUtils.chmod(0777, dir_name)
|
57
|
-
FileUtils.chmod(0777, file_name)
|
58
|
-
Rake::Cleaner.cleanup(file_name, :verbose => false)
|
59
|
-
Rake::Cleaner.cleanup(dir_name, :verbose => false)
|
60
|
-
end
|
61
|
-
end
|
@@ -1,68 +0,0 @@
|
|
1
|
-
require File.expand_path('../helper', __FILE__)
|
2
|
-
|
3
|
-
class TestRakeCpuCounter < Rake::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
super
|
7
|
-
|
8
|
-
@cpu_counter = Rake::CpuCounter.new
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_count
|
12
|
-
num = @cpu_counter.count
|
13
|
-
skip 'cannot count CPU' if num == nil
|
14
|
-
assert_kind_of Numeric, num
|
15
|
-
assert_operator num, :>=, 1
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_count_with_default_nil
|
19
|
-
def @cpu_counter.count; nil; end
|
20
|
-
assert_equal(8, @cpu_counter.count_with_default(8))
|
21
|
-
assert_equal(4, @cpu_counter.count_with_default)
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_count_with_default_raise
|
25
|
-
def @cpu_counter.count; raise; end
|
26
|
-
assert_equal(8, @cpu_counter.count_with_default(8))
|
27
|
-
assert_equal(4, @cpu_counter.count_with_default)
|
28
|
-
end
|
29
|
-
|
30
|
-
class TestClassMethod < Rake::TestCase
|
31
|
-
def setup
|
32
|
-
super
|
33
|
-
|
34
|
-
@klass = Class.new(Rake::CpuCounter)
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_count
|
38
|
-
@klass.class_eval do
|
39
|
-
def count; 8; end
|
40
|
-
end
|
41
|
-
assert_equal(8, @klass.count)
|
42
|
-
end
|
43
|
-
|
44
|
-
def test_count_nil
|
45
|
-
counted = false
|
46
|
-
@klass.class_eval do
|
47
|
-
define_method(:count) do
|
48
|
-
counted = true
|
49
|
-
nil
|
50
|
-
end
|
51
|
-
end
|
52
|
-
assert_equal(4, @klass.count)
|
53
|
-
assert_equal(true, counted)
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_count_raise
|
57
|
-
counted = false
|
58
|
-
@klass.class_eval do
|
59
|
-
define_method(:count) do
|
60
|
-
counted = true
|
61
|
-
raise
|
62
|
-
end
|
63
|
-
end
|
64
|
-
assert_equal(4, @klass.count)
|
65
|
-
assert_equal(true, counted)
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
@@ -1,84 +0,0 @@
|
|
1
|
-
require File.expand_path('../helper', __FILE__)
|
2
|
-
require 'fileutils'
|
3
|
-
|
4
|
-
class TestRakeDefinitions < Rake::TestCase
|
5
|
-
include Rake
|
6
|
-
|
7
|
-
EXISTINGFILE = "existing"
|
8
|
-
|
9
|
-
def setup
|
10
|
-
super
|
11
|
-
|
12
|
-
Task.clear
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_task
|
16
|
-
done = false
|
17
|
-
task :one => [:two] do done = true end
|
18
|
-
task :two
|
19
|
-
task :three => [:one, :two]
|
20
|
-
check_tasks(:one, :two, :three)
|
21
|
-
assert done, "Should be done"
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_file_task
|
25
|
-
done = false
|
26
|
-
file "one" => "two" do done = true end
|
27
|
-
file "two"
|
28
|
-
file "three" => ["one", "two"]
|
29
|
-
check_tasks("one", "two", "three")
|
30
|
-
assert done, "Should be done"
|
31
|
-
end
|
32
|
-
|
33
|
-
def check_tasks(n1, n2, n3)
|
34
|
-
t = Task[n1]
|
35
|
-
assert Task === t, "Should be a Task"
|
36
|
-
assert_equal n1.to_s, t.name
|
37
|
-
assert_equal [n2.to_s], t.prerequisites.map { |n| n.to_s }
|
38
|
-
t.invoke
|
39
|
-
t2 = Task[n2]
|
40
|
-
assert_equal FileList[], t2.prerequisites
|
41
|
-
t3 = Task[n3]
|
42
|
-
assert_equal [n1.to_s, n2.to_s], t3.prerequisites.map { |n| n.to_s }
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_incremental_definitions
|
46
|
-
runs = []
|
47
|
-
task :t1 => [:t2] do runs << "A"; 4321 end
|
48
|
-
task :t1 => [:t3] do runs << "B"; 1234 end
|
49
|
-
task :t1 => [:t3]
|
50
|
-
task :t2
|
51
|
-
task :t3
|
52
|
-
Task[:t1].invoke
|
53
|
-
assert_equal ["A", "B"], runs
|
54
|
-
assert_equal ["t2", "t3"], Task[:t1].prerequisites
|
55
|
-
end
|
56
|
-
|
57
|
-
def test_missing_dependencies
|
58
|
-
task :x => ["missing"]
|
59
|
-
assert_raises(RuntimeError) { Task[:x].invoke }
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_falsey_dependencies
|
63
|
-
task :x => nil
|
64
|
-
assert_equal [], Task[:x].prerequisites
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_implicit_file_dependencies
|
68
|
-
runs = []
|
69
|
-
create_existing_file
|
70
|
-
task :y => [EXISTINGFILE] do |t| runs << t.name end
|
71
|
-
Task[:y].invoke
|
72
|
-
assert_equal runs, ['y']
|
73
|
-
end
|
74
|
-
|
75
|
-
private # ----------------------------------------------------------
|
76
|
-
|
77
|
-
def create_existing_file
|
78
|
-
Dir.mkdir File.dirname(EXISTINGFILE) unless
|
79
|
-
File.exist?(File.dirname(EXISTINGFILE))
|
80
|
-
open(EXISTINGFILE, "w") do |f| f.puts "HI" end unless
|
81
|
-
File.exist?(EXISTINGFILE)
|
82
|
-
end
|
83
|
-
|
84
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
require File.expand_path('../helper', __FILE__)
|
2
|
-
require 'fileutils'
|
3
|
-
require 'pathname'
|
4
|
-
|
5
|
-
class TestRakeDirectoryTask < Rake::TestCase
|
6
|
-
include Rake
|
7
|
-
|
8
|
-
def test_directory
|
9
|
-
desc "DESC"
|
10
|
-
|
11
|
-
directory "a/b/c"
|
12
|
-
|
13
|
-
assert_equal FileCreationTask, Task["a"].class
|
14
|
-
assert_equal FileCreationTask, Task["a/b"].class
|
15
|
-
assert_equal FileCreationTask, Task["a/b/c"].class
|
16
|
-
|
17
|
-
assert_nil Task["a"].comment
|
18
|
-
assert_nil Task["a/b"].comment
|
19
|
-
assert_equal "DESC", Task["a/b/c"].comment
|
20
|
-
|
21
|
-
verbose(false) {
|
22
|
-
Task['a/b'].invoke
|
23
|
-
}
|
24
|
-
|
25
|
-
assert File.exist?("a/b")
|
26
|
-
refute File.exist?("a/b/c")
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_directory_colon
|
30
|
-
directory "a:b"
|
31
|
-
|
32
|
-
assert_equal FileCreationTask, Task['a:b'].class
|
33
|
-
end unless Rake::Win32.windows?
|
34
|
-
|
35
|
-
if Rake::Win32.windows?
|
36
|
-
def test_directory_win32
|
37
|
-
desc "WIN32 DESC"
|
38
|
-
directory 'c:/a/b/c'
|
39
|
-
assert_equal FileTask, Task['c:'].class
|
40
|
-
assert_equal FileCreationTask, Task['c:/a'].class
|
41
|
-
assert_equal FileCreationTask, Task['c:/a/b'].class
|
42
|
-
assert_equal FileCreationTask, Task['c:/a/b/c'].class
|
43
|
-
assert_nil Task['c:/'].comment
|
44
|
-
assert_equal "WIN32 DESC", Task['c:/a/b/c'].comment
|
45
|
-
assert_nil Task['c:/a/b'].comment
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_can_use_blocks
|
50
|
-
runlist = []
|
51
|
-
|
52
|
-
t1 = directory("a/b/c" => :t2) { |t| runlist << t.name }
|
53
|
-
task(:t2) { |t| runlist << t.name }
|
54
|
-
|
55
|
-
verbose(false) {
|
56
|
-
t1.invoke
|
57
|
-
}
|
58
|
-
|
59
|
-
assert_equal Task["a/b/c"], t1
|
60
|
-
assert_equal FileCreationTask, Task["a/b/c"].class
|
61
|
-
assert_equal ["t2", "a/b/c"], runlist
|
62
|
-
assert File.directory?("a/b/c")
|
63
|
-
end
|
64
|
-
|
65
|
-
def test_can_use_pathname
|
66
|
-
directory Pathname.new "a/b/c"
|
67
|
-
|
68
|
-
assert_equal FileCreationTask, Task["a/b/c"].class
|
69
|
-
|
70
|
-
verbose(false) {
|
71
|
-
Task['a/b/c'].invoke
|
72
|
-
}
|
73
|
-
|
74
|
-
assert File.directory?("a/b/c")
|
75
|
-
end
|
76
|
-
end
|
data/test/test_rake_dsl.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
require File.expand_path('../helper', __FILE__)
|
2
|
-
|
3
|
-
class TestRakeDsl < Rake::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
super
|
7
|
-
Rake::Task.clear
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_namespace_command
|
11
|
-
namespace "n" do
|
12
|
-
task "t"
|
13
|
-
end
|
14
|
-
refute_nil Rake::Task["n:t"]
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_namespace_command_with_bad_name
|
18
|
-
ex = assert_raises(ArgumentError) do
|
19
|
-
namespace 1 do end
|
20
|
-
end
|
21
|
-
assert_match(/string/i, ex.message)
|
22
|
-
assert_match(/symbol/i, ex.message)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_namespace_command_with_a_string_like_object
|
26
|
-
name = Object.new
|
27
|
-
def name.to_str
|
28
|
-
"bob"
|
29
|
-
end
|
30
|
-
namespace name do
|
31
|
-
task "t"
|
32
|
-
end
|
33
|
-
refute_nil Rake::Task["bob:t"]
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_no_commands_constant
|
37
|
-
assert ! defined?(Commands), "should not define Commands"
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|