rant 0.4.4 → 0.4.6
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/NEWS +38 -0
- data/README +4 -2
- data/Rantfile +50 -12
- data/doc/examples/c_cpp/c++/problem_1_1/another_test.cpp +6 -0
- data/doc/examples/c_cpp/c++/problem_1_1/another_test.h +5 -0
- data/doc/examples/c_cpp/c++/problem_1_1/main.cpp +12 -0
- data/doc/examples/c_cpp/c++/problem_1_1/test.cpp +6 -0
- data/doc/examples/c_cpp/c++/problem_1_1/test.h +5 -0
- data/doc/examples/c_cpp/c++/template.rf +15 -0
- data/doc/examples/c_cpp/c/problem_1_1/another_test.c +6 -0
- data/doc/examples/c_cpp/c/problem_1_1/another_test.h +7 -0
- data/doc/examples/c_cpp/c/problem_1_1/main.c +12 -0
- data/doc/examples/c_cpp/c/problem_1_1/test.c +6 -0
- data/doc/examples/c_cpp/c/problem_1_1/test.h +7 -0
- data/doc/examples/c_cpp/c/template.rf +15 -0
- data/doc/examples/c_cpp/root.rant +46 -0
- data/doc/homepage/index.html +115 -0
- data/doc/homepage/rant_home.css +98 -0
- data/doc/rant.1 +129 -0
- data/doc/rant.rdoc +5 -6
- data/doc/rantfile.rdoc +55 -32
- data/doc/subdirs.rdoc +147 -0
- data/lib/rant.rb +47 -49
- data/lib/rant/coregen.rb +20 -20
- data/lib/rant/import.rb +63 -11
- data/lib/rant/import/archive.rb +47 -15
- data/lib/rant/import/archive/tgz.rb +1 -1
- data/lib/rant/import/autoclean.rb +28 -26
- data/lib/rant/import/c/dependencies.rb +1 -1
- data/lib/rant/import/directedrule.rb +1 -4
- data/lib/rant/import/metadata.rb +30 -7
- data/lib/rant/import/nodes/default.rb +67 -13
- data/lib/rant/import/rubypackage.rb +1 -1
- data/lib/rant/import/rubytest.rb +25 -19
- data/lib/rant/import/signedfile.rb +14 -8
- data/lib/rant/import/sys/more.rb +22 -0
- data/lib/rant/import/sys/tgz.rb +43 -0
- data/lib/rant/import/sys/zip.rb +42 -0
- data/lib/rant/node.rb +19 -13
- data/lib/rant/plugin/configure.rb +1 -1
- data/lib/rant/progress.rb +33 -0
- data/lib/rant/rantenv.rb +7 -7
- data/lib/rant/rantlib.rb +246 -256
- data/lib/rant/rantsys.rb +61 -22
- data/lib/rant/rantvar.rb +7 -9
- data/misc/TODO +18 -0
- data/misc/devel-notes +4 -1
- data/test/Rantfile +17 -3
- data/test/deprecated/README +6 -0
- data/test/deprecated/test_0_4_8.rb +41 -0
- data/test/deprecated/test_0_5_2.rb +33 -0
- data/test/import/md5/root.rant +9 -0
- data/test/import/md5/test_md5.rb +45 -0
- data/test/import/metadata/Rantfile +2 -2
- data/test/import/metadata/test_metadata.rb +2 -2
- data/test/import/package/test_package.rb +40 -1
- data/test/import/signedfile/sub1/Rantfile +1 -1
- data/test/import/sys/data/pkg.tgz +0 -0
- data/test/import/sys/data/pkg.zip +0 -0
- data/test/import/sys/data/pkg/bin/test +0 -0
- data/test/import/sys/data/pkg/bin/test.o +0 -0
- data/test/import/sys/data/pkg/test.c +6 -0
- data/test/import/sys/data/pkg/test.h +7 -0
- data/test/import/sys/data/pkg2.zip +0 -0
- data/test/import/sys/test_tgz.rb +38 -0
- data/test/import/sys/test_zip.rb +68 -0
- data/test/import/sys/tgz.rf +6 -0
- data/test/import/sys/zip.rf +15 -0
- data/test/project2/{rantfile.rb → root.rant} +0 -0
- data/test/project2/test_project.rb +3 -8
- data/test/project_rb1/{rantfile.rb → rantfile} +1 -1
- data/test/project_rb1/test_project_rb1.rb +3 -5
- data/test/rant-import/test_rant-import.rb +22 -10
- data/test/subdirs/sub1/Rantfile +1 -1
- data/test/subdirs/sub2/{rantfile.rb → rantfile} +0 -0
- data/test/subdirs/sub2/sub/rantfile +1 -1
- data/test/subdirs2/root.rant +36 -0
- data/test/subdirs2/sub00/sub.rant +8 -0
- data/test/subdirs2/sub1/sub.rant +13 -0
- data/test/subdirs2/test_subdirs2.rb +239 -0
- data/test/test_examples.rb +91 -0
- data/test/test_filetask.rb +51 -11
- data/test/test_rant_interface.rb +24 -0
- data/test/test_rantfile_api.rb +54 -2
- data/test/test_sourcenode.rb +30 -0
- data/test/test_sys.rb +143 -15
- data/test/test_task.rb +16 -22
- data/test/tutil.rb +22 -38
- metadata +67 -9
data/test/test_rant_interface.rb
CHANGED
|
@@ -63,4 +63,28 @@ class TestRantInterface < Test::Unit::TestCase
|
|
|
63
63
|
assert(op.split("\n").size > 15,
|
|
64
64
|
"rant --help should print at least 16 lines to STDOUT")
|
|
65
65
|
end
|
|
66
|
+
def test_opt_version
|
|
67
|
+
out, err = assert_rant("--version")
|
|
68
|
+
assert err.empty?
|
|
69
|
+
lines = out.split(/\n/)
|
|
70
|
+
assert_equal 1, lines.size
|
|
71
|
+
assert_match(/^rant \d\.\d\.\d$/i, lines.first)
|
|
72
|
+
out2, err2 = assert_rant("-V")
|
|
73
|
+
assert_equal err, err2
|
|
74
|
+
assert_equal out, out2
|
|
75
|
+
end
|
|
76
|
+
def test_no_such_option
|
|
77
|
+
out, err = assert_rant :fail, "-n"
|
|
78
|
+
assert out.empty?
|
|
79
|
+
lines = err.split(/\n/)
|
|
80
|
+
assert lines.size < 3
|
|
81
|
+
assert_match(/\[ERROR\].*option.*\bn\b/, lines.first)
|
|
82
|
+
end
|
|
83
|
+
def test_no_such_long_option
|
|
84
|
+
out, err = assert_rant :fail, "--nix"
|
|
85
|
+
assert out.empty?
|
|
86
|
+
lines = err.split(/\n/)
|
|
87
|
+
assert lines.size < 3
|
|
88
|
+
assert_match(/\[ERROR\].*option.*\bnix\b/, lines.first)
|
|
89
|
+
end
|
|
66
90
|
end
|
data/test/test_rantfile_api.rb
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
|
|
2
2
|
require 'test/unit'
|
|
3
|
-
require 'rant/rantlib'
|
|
4
3
|
require 'tutil'
|
|
5
|
-
require 'fileutils'
|
|
6
4
|
|
|
7
5
|
$testDir ||= File.expand_path(File.dirname(__FILE__))
|
|
8
6
|
|
|
9
7
|
class TestRantfileAPI < Test::Unit::TestCase
|
|
8
|
+
include Rant::TestUtil
|
|
9
|
+
|
|
10
10
|
def setup
|
|
11
11
|
# Ensure we run in test directory.
|
|
12
12
|
Dir.chdir $testDir
|
|
@@ -139,4 +139,56 @@ class TestRantfileAPI < Test::Unit::TestCase
|
|
|
139
139
|
assert_equal("test\n", out)
|
|
140
140
|
assert(err.empty?)
|
|
141
141
|
end
|
|
142
|
+
def test_task_no_arguments
|
|
143
|
+
in_local_temp_dir do
|
|
144
|
+
write_to_file "Rantfile", <<-EOF
|
|
145
|
+
task
|
|
146
|
+
task :default do
|
|
147
|
+
puts "hello"
|
|
148
|
+
end
|
|
149
|
+
EOF
|
|
150
|
+
out, err = assert_rant :fail
|
|
151
|
+
assert out.empty?
|
|
152
|
+
lines = err.split(/\n/)
|
|
153
|
+
assert lines.size < 4
|
|
154
|
+
assert_match(/\[ERROR\].*Rantfile\b.*\b1\b/, lines[0])
|
|
155
|
+
assert_match(/argument/, lines[1])
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
def test_file_too_many_hash_elements
|
|
159
|
+
in_local_temp_dir do
|
|
160
|
+
write_to_file "root.rant", <<-EOF
|
|
161
|
+
|
|
162
|
+
file :a => :b, :c => :d do |t|
|
|
163
|
+
sys.touch t.name
|
|
164
|
+
end
|
|
165
|
+
EOF
|
|
166
|
+
out, err = assert_rant :fail
|
|
167
|
+
assert out.empty?
|
|
168
|
+
assert !test(?e, "a")
|
|
169
|
+
assert !test(?e, "c")
|
|
170
|
+
lines = err.split(/\n/)
|
|
171
|
+
assert lines.size < 4
|
|
172
|
+
assert_match(/\[ERROR\].*root\.rant\b.*\b2\b/, lines[0])
|
|
173
|
+
assert_match(/\btoo many\b.*\bone\b/i, lines[1])
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
def test_task_string_or_symbol_required
|
|
177
|
+
in_local_temp_dir do
|
|
178
|
+
write_to_file "root.rant", <<-EOF
|
|
179
|
+
task Object.new
|
|
180
|
+
EOF
|
|
181
|
+
out, err = assert_rant :fail
|
|
182
|
+
assert out.empty?
|
|
183
|
+
lines = err.split(/\n/)
|
|
184
|
+
assert lines.size < 4
|
|
185
|
+
assert_match(/\[ERROR\].*root\.rant\b.*\b1\b/, lines[0])
|
|
186
|
+
assert_match(/string or symbol/i, lines[1])
|
|
187
|
+
end
|
|
188
|
+
end
|
|
189
|
+
def test_make_plain_task
|
|
190
|
+
out, err = assert_rant "call-make"
|
|
191
|
+
assert err.empty?
|
|
192
|
+
assert_equal "print_name.t\ncall-make\n", out
|
|
193
|
+
end
|
|
142
194
|
end
|
data/test/test_sourcenode.rb
CHANGED
|
@@ -160,4 +160,34 @@ class TestSourceNode < Test::Unit::TestCase
|
|
|
160
160
|
assert_equal(th, th.join(0.5))
|
|
161
161
|
end
|
|
162
162
|
end
|
|
163
|
+
def test_file_pre
|
|
164
|
+
@rf = <<-EOF
|
|
165
|
+
import "autoclean"
|
|
166
|
+
file "f.t" => "a.t" do |t|
|
|
167
|
+
sys.touch t.name
|
|
168
|
+
end
|
|
169
|
+
gen SourceNode, "a.t" => ["b.t", "c.t"]
|
|
170
|
+
file "b.t" do |t|
|
|
171
|
+
sys.touch t.name
|
|
172
|
+
end
|
|
173
|
+
gen AutoClean
|
|
174
|
+
EOF
|
|
175
|
+
FileUtils.touch "c.t"
|
|
176
|
+
FileUtils.touch "a.t"
|
|
177
|
+
tmp_rf do
|
|
178
|
+
out, err = assert_rant("-frf.t")
|
|
179
|
+
assert(err.empty?)
|
|
180
|
+
assert(!out.empty?)
|
|
181
|
+
assert(test(?f, "f.t"))
|
|
182
|
+
assert(test(?f, "b.t"))
|
|
183
|
+
out, err = assert_rant("-frf.t")
|
|
184
|
+
assert(err.empty?)
|
|
185
|
+
assert(out.empty?)
|
|
186
|
+
assert_rant("-frf.t", "autoclean")
|
|
187
|
+
assert(!test(?f, "f.t"))
|
|
188
|
+
assert(!test(?f, "b.t"))
|
|
189
|
+
assert(test(?f, "a.t"))
|
|
190
|
+
assert(test(?f, "c.t"))
|
|
191
|
+
end
|
|
192
|
+
end
|
|
163
193
|
end
|
data/test/test_sys.rb
CHANGED
|
@@ -1,46 +1,145 @@
|
|
|
1
1
|
|
|
2
2
|
require 'test/unit'
|
|
3
|
-
require 'rant/rantlib'
|
|
4
3
|
require 'tutil'
|
|
5
4
|
|
|
6
5
|
$testDir ||= File.expand_path(File.dirname(__FILE__))
|
|
7
6
|
|
|
8
7
|
class TestSys < Test::Unit::TestCase
|
|
9
8
|
include Rant::Sys
|
|
9
|
+
include Rant::TestUtil
|
|
10
10
|
|
|
11
11
|
def setup
|
|
12
12
|
# Ensure we run in test directory.
|
|
13
|
-
Dir.chdir($testDir)
|
|
13
|
+
Dir.chdir($testDir)
|
|
14
14
|
end
|
|
15
|
-
def teardown
|
|
16
|
-
end
|
|
17
|
-
|
|
18
15
|
def test_ruby
|
|
16
|
+
cx = Rant::RantApp.new.cx
|
|
17
|
+
block_executed = false
|
|
19
18
|
op = capture_stdout do
|
|
20
|
-
ruby('-e ""') { |
|
|
21
|
-
|
|
22
|
-
assert_equal(
|
|
19
|
+
cx.sys.ruby('-e ""') { |stat|
|
|
20
|
+
block_executed = true
|
|
21
|
+
assert_equal(0, stat)
|
|
23
22
|
}
|
|
24
23
|
end
|
|
24
|
+
assert(block_executed)
|
|
25
25
|
assert(op =~ /\-e/i,
|
|
26
|
-
"
|
|
26
|
+
"sys should print command with arguments to $stdout")
|
|
27
|
+
end
|
|
28
|
+
def test_ruby_no_block
|
|
29
|
+
assert(!test(?e, "a.t"))
|
|
30
|
+
out, err = capture_std do
|
|
31
|
+
assert_nothing_raised { ruby '-e', 'open "a.t", "w" do end' }
|
|
32
|
+
end
|
|
33
|
+
assert(test(?f, "a.t"))
|
|
34
|
+
ensure
|
|
35
|
+
FileUtils.rm_f "a.t"
|
|
36
|
+
end
|
|
37
|
+
def test_ruby_exit_code
|
|
38
|
+
cx = Rant::RantApp.new.cx
|
|
39
|
+
block_executed = false
|
|
40
|
+
out, err = capture_std do
|
|
41
|
+
cx.sys.ruby('-e', 'exit 2') { |stat|
|
|
42
|
+
block_executed = true
|
|
43
|
+
assert_equal(2, stat.exitstatus)
|
|
44
|
+
}
|
|
45
|
+
end
|
|
46
|
+
assert(block_executed)
|
|
47
|
+
assert(err.empty?)
|
|
48
|
+
assert_match(/. -e exit 2\n\z/m, out)
|
|
27
49
|
end
|
|
28
|
-
def
|
|
29
|
-
|
|
50
|
+
def test_ruby_fail
|
|
51
|
+
out, err = capture_std do
|
|
52
|
+
assert_raises(Rant::CommandError) { ruby '-e exit 1' }
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
def test_split_all
|
|
56
|
+
pl = split_all("/home/stefan")
|
|
30
57
|
assert_equal(pl.size, 3,
|
|
31
58
|
"/home/stefan should get split into 3 parts")
|
|
32
59
|
assert_equal(pl[0], "/")
|
|
33
60
|
assert_equal(pl[1], "home")
|
|
34
61
|
assert_equal(pl[2], "stefan")
|
|
35
|
-
pl =
|
|
62
|
+
pl = split_all("../")
|
|
36
63
|
assert_equal(pl.size, 1,
|
|
37
64
|
'../ should be "split" into one element')
|
|
38
65
|
assert_equal(pl[0], "..")
|
|
39
66
|
end
|
|
67
|
+
def test_expand_path
|
|
68
|
+
in_local_temp_dir do
|
|
69
|
+
rootdir = Dir.pwd
|
|
70
|
+
write_to_file "root.rant", <<-EOF
|
|
71
|
+
task :a do
|
|
72
|
+
puts sys.expand_path("@")
|
|
73
|
+
end
|
|
74
|
+
subdirs "sub"
|
|
75
|
+
EOF
|
|
76
|
+
in_local_temp_dir "sub" do
|
|
77
|
+
write_to_file "sub.rant", <<-'EOF'
|
|
78
|
+
task :a do
|
|
79
|
+
puts sys.expand_path("@")
|
|
80
|
+
end
|
|
81
|
+
task :b do
|
|
82
|
+
puts sys.expand_path("@/abc")
|
|
83
|
+
end
|
|
84
|
+
task :c do
|
|
85
|
+
puts sys.expand_path("@abc")
|
|
86
|
+
end
|
|
87
|
+
task :d do
|
|
88
|
+
puts sys.expand_path("../abc")
|
|
89
|
+
end
|
|
90
|
+
task :e do
|
|
91
|
+
puts sys.expand_path(nil)
|
|
92
|
+
end
|
|
93
|
+
task :f do
|
|
94
|
+
puts sys.expand_path("@/../abc")
|
|
95
|
+
end
|
|
96
|
+
task :g do
|
|
97
|
+
puts sys.expand_path("a@b")
|
|
98
|
+
end
|
|
99
|
+
task :h do
|
|
100
|
+
puts sys.expand_path("@a@b")
|
|
101
|
+
end
|
|
102
|
+
task :i do
|
|
103
|
+
puts sys.expand_path('\@a@b')
|
|
104
|
+
end
|
|
105
|
+
task :j do
|
|
106
|
+
puts sys.expand_path(nil)
|
|
107
|
+
end
|
|
108
|
+
EOF
|
|
109
|
+
Dir.chdir ".."
|
|
110
|
+
out, err = assert_rant "a"
|
|
111
|
+
assert_equal rootdir, out.chomp
|
|
112
|
+
out, err = assert_rant "sub/a"
|
|
113
|
+
assert_equal rootdir, out.split(/\n/).last
|
|
114
|
+
Dir.chdir "sub"
|
|
115
|
+
out, err = assert_rant "a"
|
|
116
|
+
assert_equal rootdir, out.split(/\n/).last
|
|
117
|
+
out, err = assert_rant "b"
|
|
118
|
+
assert_equal "#{rootdir}/abc", out.split(/\n/).last
|
|
119
|
+
out, err = assert_rant "c"
|
|
120
|
+
assert_equal "#{rootdir}/abc", out.split(/\n/).last
|
|
121
|
+
out, err = assert_rant "d"
|
|
122
|
+
assert_equal "#{rootdir}/abc", out.split(/\n/).last
|
|
123
|
+
out, err = assert_rant "e"
|
|
124
|
+
assert_equal "#{rootdir}/sub", out.split(/\n/).last
|
|
125
|
+
out, err = assert_rant "f"
|
|
126
|
+
assert_equal "#{File.dirname(rootdir)}/abc", out.split(/\n/).last
|
|
127
|
+
out, err = assert_rant "g"
|
|
128
|
+
assert_equal "#{rootdir}/sub/a@b", out.split(/\n/).last
|
|
129
|
+
out, err = assert_rant "h"
|
|
130
|
+
assert_equal "#{rootdir}/a@b", out.split(/\n/).last
|
|
131
|
+
out, err = assert_rant "i"
|
|
132
|
+
assert_equal "#{rootdir}/sub/@a@b", out.split(/\n/).last
|
|
133
|
+
out, err = assert_rant "e"
|
|
134
|
+
assert_equal "#{rootdir}/sub", out.split(/\n/).last
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
end
|
|
40
138
|
# perhaps this test should go into a seperate file
|
|
41
139
|
def test_toplevel
|
|
42
|
-
|
|
43
|
-
|
|
140
|
+
out = run_rant("-ftoplevel.rf")
|
|
141
|
+
#assert_match(/\btd\b/, out,
|
|
142
|
+
# "Sys module should print commands to stdout")
|
|
44
143
|
assert_equal(0, $?,
|
|
45
144
|
"rant -ftoplevel.rf in test/ should be successfull")
|
|
46
145
|
ensure
|
|
@@ -54,7 +153,10 @@ class TestSys < Test::Unit::TestCase
|
|
|
54
153
|
out, err = capture_std do
|
|
55
154
|
assert_equal(1, Rant.run("-fname_error.rf"))
|
|
56
155
|
end
|
|
57
|
-
|
|
156
|
+
lines = err.split(/\n/)
|
|
157
|
+
assert_equal(3, lines.size)
|
|
158
|
+
assert_match(/\bname_error\.rf\b.*\b1\b/, lines[0])
|
|
159
|
+
assert_match(/Name\s*Error/i, lines[1])
|
|
58
160
|
ensure
|
|
59
161
|
File.delete "name_error.rf" if File.exist? "name_error.rf"
|
|
60
162
|
end
|
|
@@ -82,4 +184,30 @@ class TestSys < Test::Unit::TestCase
|
|
|
82
184
|
ensure
|
|
83
185
|
FileUtils.rm_rf %w(cp.t a.t b.t)
|
|
84
186
|
end
|
|
187
|
+
def test_sys_with_block
|
|
188
|
+
open "exit_1.t", "w" do |f|
|
|
189
|
+
f << <<-EOF
|
|
190
|
+
exit 1
|
|
191
|
+
EOF
|
|
192
|
+
end
|
|
193
|
+
open "rf.t", "w" do |f|
|
|
194
|
+
f << <<-EOF
|
|
195
|
+
task :rbexit1_block do
|
|
196
|
+
sys Env::RUBY, "exit_1.t" do |status|
|
|
197
|
+
puts "no success" if status != 0
|
|
198
|
+
puts status.exitstatus
|
|
199
|
+
end
|
|
200
|
+
end
|
|
201
|
+
task :rbexit1 do
|
|
202
|
+
sys.ruby "exit_1.t"
|
|
203
|
+
end
|
|
204
|
+
EOF
|
|
205
|
+
end
|
|
206
|
+
out, err = assert_rant("-frf.t")
|
|
207
|
+
assert(err.empty?)
|
|
208
|
+
assert_equal(["no success", "1"], out.split(/\n/)[1..-1])
|
|
209
|
+
out, err = assert_rant(:fail, "-frf.t", "rbexit1")
|
|
210
|
+
ensure
|
|
211
|
+
FileUtils.rm_f %w(exit_1.t rf.t)
|
|
212
|
+
end
|
|
85
213
|
end
|
data/test/test_task.rb
CHANGED
|
@@ -1,42 +1,37 @@
|
|
|
1
1
|
|
|
2
2
|
require 'test/unit'
|
|
3
|
-
require '
|
|
3
|
+
require 'tutil'
|
|
4
4
|
|
|
5
5
|
$-w = true
|
|
6
6
|
|
|
7
7
|
class TestTask < Test::Unit::TestCase
|
|
8
8
|
def setup
|
|
9
|
+
@rant = Rant::RantApp.new
|
|
9
10
|
end
|
|
10
|
-
def teardown
|
|
11
|
-
end
|
|
12
|
-
|
|
13
11
|
def test_version
|
|
14
12
|
assert(Rant::VERSION.length >= 5)
|
|
15
13
|
end
|
|
16
|
-
|
|
17
14
|
def test_needed
|
|
18
15
|
run = false
|
|
19
|
-
t = Rant::Task.new(
|
|
16
|
+
t = Rant::Task.new(@rant, :non_existent) { run = true }
|
|
20
17
|
assert(t.needed?,
|
|
21
18
|
"Rant::Task should always be 'needed?' before first invocation")
|
|
22
19
|
assert(!run,
|
|
23
20
|
"Rant::Task shouldn't get run when 'needed?' is called")
|
|
24
21
|
end
|
|
25
|
-
|
|
26
22
|
def test_invoke
|
|
27
23
|
run = false
|
|
28
24
|
block = lambda { run = true }
|
|
29
|
-
task = Rant::Task.new(
|
|
25
|
+
task = Rant::Task.new(@rant, :test_run, &block)
|
|
30
26
|
task.invoke
|
|
31
27
|
assert(run, "block should have been executed")
|
|
32
28
|
assert(task.done?, "task is done")
|
|
33
29
|
assert(!task.needed?,
|
|
34
30
|
"task is done, so 'needed?' should return false")
|
|
35
31
|
end
|
|
36
|
-
|
|
37
32
|
def test_fail
|
|
38
33
|
block = lambda { |t| t.fail "this task abortet itself" }
|
|
39
|
-
task = Rant::Task.new(
|
|
34
|
+
task = Rant::Task.new(@rant, :test_fail, &block)
|
|
40
35
|
assert_raise(Rant::TaskFail,
|
|
41
36
|
"run should throw Rant::TaskFail if block raises Exception") {
|
|
42
37
|
task.invoke
|
|
@@ -44,11 +39,10 @@ class TestTask < Test::Unit::TestCase
|
|
|
44
39
|
assert(task.fail?)
|
|
45
40
|
assert(task.invoked?, "although task failed, it was invoked")
|
|
46
41
|
end
|
|
47
|
-
|
|
48
42
|
def test_dependent
|
|
49
43
|
r1 = r2 = false
|
|
50
|
-
t1 = Rant::Task.new(
|
|
51
|
-
t2 = Rant::Task.new(
|
|
44
|
+
t1 = Rant::Task.new(@rant, :t1) { r1 = true }
|
|
45
|
+
t2 = Rant::Task.new(@rant, :t2) { r2 = true }
|
|
52
46
|
t1 << t2
|
|
53
47
|
t1.invoke
|
|
54
48
|
assert(r1)
|
|
@@ -60,8 +54,8 @@ class TestTask < Test::Unit::TestCase
|
|
|
60
54
|
end
|
|
61
55
|
|
|
62
56
|
def test_dependency_fails
|
|
63
|
-
t1 = Rant::Task.new(
|
|
64
|
-
t2 = Rant::Task.new(
|
|
57
|
+
t1 = Rant::Task.new(@rant, :t1) { true }
|
|
58
|
+
t2 = Rant::Task.new(@rant, :t2) { |t| t.fail }
|
|
65
59
|
t1 << t2
|
|
66
60
|
assert_raise(Rant::TaskFail,
|
|
67
61
|
"dependency t2 failed, so t1 should fail too") {
|
|
@@ -75,7 +69,7 @@ class TestTask < Test::Unit::TestCase
|
|
|
75
69
|
|
|
76
70
|
def test_task
|
|
77
71
|
run = false
|
|
78
|
-
t =
|
|
72
|
+
t = @rant.task :t do |t|
|
|
79
73
|
run = true
|
|
80
74
|
end
|
|
81
75
|
t.invoke
|
|
@@ -84,7 +78,7 @@ class TestTask < Test::Unit::TestCase
|
|
|
84
78
|
|
|
85
79
|
def test_dep_on_self
|
|
86
80
|
run = false
|
|
87
|
-
t =
|
|
81
|
+
t = @rant.task :t => "t" do |t|
|
|
88
82
|
run = true
|
|
89
83
|
end
|
|
90
84
|
th = Thread.new { t.invoke }
|
|
@@ -97,11 +91,11 @@ class TestTask < Test::Unit::TestCase
|
|
|
97
91
|
def test_circular_dependency
|
|
98
92
|
t1r = false
|
|
99
93
|
t2r = false
|
|
100
|
-
t1 =
|
|
94
|
+
t1 = @rant.task :t1 => :t2 do |t|
|
|
101
95
|
assert(t2r)
|
|
102
96
|
t1r = true
|
|
103
97
|
end
|
|
104
|
-
t2 =
|
|
98
|
+
t2 = @rant.task :t2 => :t1 do |t|
|
|
105
99
|
t2r = true
|
|
106
100
|
end
|
|
107
101
|
out, err = capture_std do
|
|
@@ -117,13 +111,13 @@ class TestTask < Test::Unit::TestCase
|
|
|
117
111
|
end
|
|
118
112
|
def test_dep_on_self_in_deplist
|
|
119
113
|
rl = []
|
|
120
|
-
t1 =
|
|
114
|
+
t1 = @rant.task :t1 do |t|
|
|
121
115
|
rl << t.name
|
|
122
116
|
end
|
|
123
|
-
t2 =
|
|
117
|
+
t2 = @rant.task :t2 do |t|
|
|
124
118
|
rl << t.name
|
|
125
119
|
end
|
|
126
|
-
t3 =
|
|
120
|
+
t3 = @rant.task :t3 => [:t1, :t3, :t2] do |t|
|
|
127
121
|
rl << t.name
|
|
128
122
|
end
|
|
129
123
|
th = Thread.new { t3.invoke }
|