jimweirich-rake 0.8.1.5
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/CHANGES +364 -0
- data/MIT-LICENSE +21 -0
- data/README +242 -0
- data/Rakefile +413 -0
- data/TODO +20 -0
- data/bin/rake +31 -0
- data/doc/example/Rakefile1 +38 -0
- data/doc/example/Rakefile2 +35 -0
- data/doc/example/a.c +6 -0
- data/doc/example/b.c +6 -0
- data/doc/example/main.c +11 -0
- data/doc/glossary.rdoc +51 -0
- data/doc/jamis.rb +591 -0
- data/doc/proto_rake.rdoc +127 -0
- data/doc/rake.1.gz +0 -0
- data/doc/rakefile.rdoc +411 -0
- data/doc/rational.rdoc +151 -0
- data/doc/release_notes/rake-0.4.14.rdoc +23 -0
- data/doc/release_notes/rake-0.4.15.rdoc +35 -0
- data/doc/release_notes/rake-0.5.0.rdoc +53 -0
- data/doc/release_notes/rake-0.5.3.rdoc +78 -0
- data/doc/release_notes/rake-0.5.4.rdoc +46 -0
- data/doc/release_notes/rake-0.6.0.rdoc +141 -0
- data/doc/release_notes/rake-0.7.0.rdoc +119 -0
- data/doc/release_notes/rake-0.7.1.rdoc +59 -0
- data/doc/release_notes/rake-0.7.2.rdoc +121 -0
- data/doc/release_notes/rake-0.7.3.rdoc +47 -0
- data/doc/release_notes/rake-0.8.0.rdoc +114 -0
- data/install.rb +88 -0
- data/lib/rake/classic_namespace.rb +8 -0
- data/lib/rake/clean.rb +33 -0
- data/lib/rake/contrib/compositepublisher.rb +24 -0
- data/lib/rake/contrib/ftptools.rb +153 -0
- data/lib/rake/contrib/publisher.rb +75 -0
- data/lib/rake/contrib/rubyforgepublisher.rb +18 -0
- data/lib/rake/contrib/sshpublisher.rb +47 -0
- data/lib/rake/contrib/sys.rb +209 -0
- data/lib/rake/gempackagetask.rb +103 -0
- data/lib/rake/loaders/makefile.rb +40 -0
- data/lib/rake/packagetask.rb +184 -0
- data/lib/rake/rake_test_loader.rb +5 -0
- data/lib/rake/rdoctask.rb +147 -0
- data/lib/rake/ruby182_test_unit_fix.rb +23 -0
- data/lib/rake/runtest.rb +23 -0
- data/lib/rake/tasklib.rb +18 -0
- data/lib/rake/testtask.rb +161 -0
- data/lib/rake.rb +2312 -0
- data/test/capture_stdout.rb +26 -0
- data/test/contrib/testsys.rb +47 -0
- data/test/data/chains/Rakefile +15 -0
- data/test/data/default/Rakefile +19 -0
- data/test/data/dryrun/Rakefile +22 -0
- data/test/data/file_creation_task/Rakefile +30 -0
- data/test/data/imports/Rakefile +19 -0
- data/test/data/imports/deps.mf +1 -0
- data/test/data/multidesc/Rakefile +17 -0
- data/test/data/namespace/Rakefile +57 -0
- data/test/data/rakelib/test1.rb +3 -0
- data/test/data/rbext/rakefile.rb +3 -0
- data/test/data/sample.mf +9 -0
- data/test/data/statusreturn/Rakefile +8 -0
- data/test/data/unittest/Rakefile +1 -0
- data/test/filecreation.rb +32 -0
- data/test/functional.rb +15 -0
- data/test/rake_test_setup.rb +5 -0
- data/test/reqfile.rb +3 -0
- data/test/reqfile2.rb +3 -0
- data/test/session_functional.rb +267 -0
- data/test/shellcommand.rb +3 -0
- data/test/test_application.rb +504 -0
- data/test/test_clean.rb +14 -0
- data/test/test_definitions.rb +82 -0
- data/test/test_earlytime.rb +35 -0
- data/test/test_extension.rb +63 -0
- data/test/test_file_creation_task.rb +62 -0
- data/test/test_file_task.rb +139 -0
- data/test/test_filelist.rb +618 -0
- data/test/test_fileutils.rb +239 -0
- data/test/test_ftp.rb +59 -0
- data/test/test_invocation_chain.rb +75 -0
- data/test/test_makefile_loader.rb +23 -0
- data/test/test_multitask.rb +45 -0
- data/test/test_namespace.rb +36 -0
- data/test/test_package_task.rb +116 -0
- data/test/test_pathmap.rb +209 -0
- data/test/test_rake.rb +34 -0
- data/test/test_require.rb +33 -0
- data/test/test_rules.rb +347 -0
- data/test/test_task_arguments.rb +76 -0
- data/test/test_task_manager.rb +148 -0
- data/test/test_tasks.rb +372 -0
- data/test/test_test_task.rb +75 -0
- data/test/test_top_level_functions.rb +84 -0
- metadata +173 -0
@@ -0,0 +1,62 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
require 'fileutils'
|
5
|
+
require 'rake'
|
6
|
+
require 'test/filecreation'
|
7
|
+
|
8
|
+
######################################################################
|
9
|
+
class TestFileCreationTask < Test::Unit::TestCase
|
10
|
+
include Rake
|
11
|
+
include FileCreation
|
12
|
+
|
13
|
+
DUMMY_DIR = 'testdata/dummy_dir'
|
14
|
+
|
15
|
+
def setup
|
16
|
+
Task.clear
|
17
|
+
end
|
18
|
+
|
19
|
+
def teardown
|
20
|
+
FileUtils.rm_rf DUMMY_DIR
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_file_needed
|
24
|
+
create_dir DUMMY_DIR
|
25
|
+
fc_task = Task[DUMMY_DIR]
|
26
|
+
assert_equal DUMMY_DIR, fc_task.name
|
27
|
+
FileUtils.rm_rf fc_task.name
|
28
|
+
assert fc_task.needed?, "file should be needed"
|
29
|
+
FileUtils.mkdir fc_task.name
|
30
|
+
assert_equal nil, fc_task.prerequisites.collect{|n| Task[n].timestamp}.max
|
31
|
+
assert ! fc_task.needed?, "file should not be needed"
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_directory
|
35
|
+
directory DUMMY_DIR
|
36
|
+
fc_task = Task[DUMMY_DIR]
|
37
|
+
assert_equal DUMMY_DIR, fc_task.name
|
38
|
+
assert FileCreationTask === fc_task
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_no_retriggers_on_filecreate_task
|
42
|
+
create_timed_files(OLDFILE, NEWFILE)
|
43
|
+
t1 = Rake.application.intern(FileCreationTask, OLDFILE).enhance([NEWFILE])
|
44
|
+
t2 = Rake.application.intern(FileCreationTask, NEWFILE)
|
45
|
+
assert ! t2.needed?, "Should not need to build new file"
|
46
|
+
assert ! t1.needed?, "Should not need to rebuild old file because of new"
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_no_retriggers_on_file_task
|
50
|
+
create_timed_files(OLDFILE, NEWFILE)
|
51
|
+
t1 = Rake.application.intern(FileCreationTask, OLDFILE).enhance([NEWFILE])
|
52
|
+
t2 = Rake.application.intern(FileCreationTask, NEWFILE)
|
53
|
+
assert ! t2.needed?, "Should not need to build new file"
|
54
|
+
assert ! t1.needed?, "Should not need to rebuild old file because of new"
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_very_early_timestamp
|
58
|
+
t1 = Rake.application.intern(FileCreationTask, OLDFILE)
|
59
|
+
assert t1.timestamp < Time.now
|
60
|
+
assert t1.timestamp < Time.now - 1000000
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,139 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
require 'fileutils'
|
5
|
+
require 'rake'
|
6
|
+
require 'test/filecreation'
|
7
|
+
|
8
|
+
######################################################################
|
9
|
+
class TestFileTask < Test::Unit::TestCase
|
10
|
+
include Rake
|
11
|
+
include FileCreation
|
12
|
+
|
13
|
+
def setup
|
14
|
+
Task.clear
|
15
|
+
@runs = Array.new
|
16
|
+
FileUtils.rm_f NEWFILE
|
17
|
+
FileUtils.rm_f OLDFILE
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_file_need
|
21
|
+
name = "testdata/dummy"
|
22
|
+
file name
|
23
|
+
ftask = Task[name]
|
24
|
+
assert_equal name.to_s, ftask.name
|
25
|
+
File.delete(ftask.name) rescue nil
|
26
|
+
assert ftask.needed?, "file should be needed"
|
27
|
+
open(ftask.name, "w") { |f| f.puts "HI" }
|
28
|
+
assert_equal nil, ftask.prerequisites.collect{|n| Task[n].timestamp}.max
|
29
|
+
assert ! ftask.needed?, "file should not be needed"
|
30
|
+
File.delete(ftask.name) rescue nil
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_file_times_new_depends_on_old
|
34
|
+
create_timed_files(OLDFILE, NEWFILE)
|
35
|
+
|
36
|
+
t1 = Rake.application.intern(FileTask, NEWFILE).enhance([OLDFILE])
|
37
|
+
t2 = Rake.application.intern(FileTask, OLDFILE)
|
38
|
+
assert ! t2.needed?, "Should not need to build old file"
|
39
|
+
assert ! t1.needed?, "Should not need to rebuild new file because of old"
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_file_times_old_depends_on_new
|
43
|
+
create_timed_files(OLDFILE, NEWFILE)
|
44
|
+
|
45
|
+
t1 = Rake.application.intern(FileTask,OLDFILE).enhance([NEWFILE])
|
46
|
+
t2 = Rake.application.intern(FileTask, NEWFILE)
|
47
|
+
assert ! t2.needed?, "Should not need to build new file"
|
48
|
+
preq_stamp = t1.prerequisites.collect{|t| Task[t].timestamp}.max
|
49
|
+
assert_equal t2.timestamp, preq_stamp
|
50
|
+
assert t1.timestamp < preq_stamp, "T1 should be older"
|
51
|
+
assert t1.needed?, "Should need to rebuild old file because of new"
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_file_depends_on_task_depend_on_file
|
55
|
+
create_timed_files(OLDFILE, NEWFILE)
|
56
|
+
|
57
|
+
file NEWFILE => [:obj] do |t| @runs << t.name end
|
58
|
+
task :obj => [OLDFILE] do |t| @runs << t.name end
|
59
|
+
file OLDFILE do |t| @runs << t.name end
|
60
|
+
|
61
|
+
Task[:obj].invoke
|
62
|
+
Task[NEWFILE].invoke
|
63
|
+
assert ! @runs.include?(NEWFILE)
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_existing_file_depends_on_non_existing_file
|
67
|
+
create_file(OLDFILE)
|
68
|
+
delete_file(NEWFILE)
|
69
|
+
file NEWFILE
|
70
|
+
file OLDFILE => NEWFILE
|
71
|
+
assert_nothing_raised do Task[OLDFILE].invoke end
|
72
|
+
end
|
73
|
+
|
74
|
+
# I have currently disabled this test. I'm not convinced that
|
75
|
+
# deleting the file target on failure is always the proper thing to
|
76
|
+
# do. I'm willing to hear input on this topic.
|
77
|
+
def ztest_file_deletes_on_failure
|
78
|
+
task :obj
|
79
|
+
file NEWFILE => [:obj] do |t|
|
80
|
+
FileUtils.touch NEWFILE
|
81
|
+
fail "Ooops"
|
82
|
+
end
|
83
|
+
assert Task[NEWFILE]
|
84
|
+
begin
|
85
|
+
Task[NEWFILE].invoke
|
86
|
+
rescue Exception
|
87
|
+
end
|
88
|
+
assert( ! File.exist?(NEWFILE), "NEWFILE should be deleted")
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
92
|
+
|
93
|
+
######################################################################
|
94
|
+
class TestDirectoryTask < Test::Unit::TestCase
|
95
|
+
include Rake
|
96
|
+
|
97
|
+
def setup
|
98
|
+
rm_rf "testdata", :verbose=>false
|
99
|
+
end
|
100
|
+
|
101
|
+
def teardown
|
102
|
+
rm_rf "testdata", :verbose=>false
|
103
|
+
end
|
104
|
+
|
105
|
+
def test_directory
|
106
|
+
desc "DESC"
|
107
|
+
directory "testdata/a/b/c"
|
108
|
+
assert_equal FileCreationTask, Task["testdata"].class
|
109
|
+
assert_equal FileCreationTask, Task["testdata/a"].class
|
110
|
+
assert_equal FileCreationTask, Task["testdata/a/b/c"].class
|
111
|
+
assert_nil Task["testdata"].comment
|
112
|
+
assert_equal "DESC", Task["testdata/a/b/c"].comment
|
113
|
+
assert_nil Task["testdata/a/b"].comment
|
114
|
+
verbose(false) {
|
115
|
+
Task['testdata/a/b'].invoke
|
116
|
+
}
|
117
|
+
assert File.exist?("testdata/a/b")
|
118
|
+
assert ! File.exist?("testdata/a/b/c")
|
119
|
+
end
|
120
|
+
|
121
|
+
def test_directory_win32
|
122
|
+
desc "WIN32 DESC"
|
123
|
+
FileUtils.mkdir_p("testdata")
|
124
|
+
Dir.chdir("testdata") do
|
125
|
+
directory 'c:/testdata/a/b/c'
|
126
|
+
assert_equal FileCreationTask, Task['c:/testdata'].class
|
127
|
+
assert_equal FileCreationTask, Task['c:/testdata/a'].class
|
128
|
+
assert_equal FileCreationTask, Task['c:/testdata/a/b/c'].class
|
129
|
+
assert_nil Task['c:/testdata'].comment
|
130
|
+
assert_equal "WIN32 DESC", Task['c:/testdata/a/b/c'].comment
|
131
|
+
assert_nil Task['c:/testdata/a/b'].comment
|
132
|
+
verbose(false) {
|
133
|
+
Task['c:/testdata/a/b'].invoke
|
134
|
+
}
|
135
|
+
assert File.exist?('c:/testdata/a/b')
|
136
|
+
assert ! File.exist?('c:/testdata/a/b/c')
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|