rant 0.3.2 → 0.3.4
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 +22 -1
- data/README +9 -12
- data/Rantfile +32 -9
- data/devel-notes +16 -0
- data/doc/advanced.rdoc +55 -0
- data/doc/rant.rdoc +27 -2
- data/doc/rantfile.rdoc +104 -30
- data/install.rb +6 -0
- data/lib/rant.rb +5 -1
- data/lib/rant/import.rb +12 -4
- data/lib/rant/import/rubydoc.rb +1 -1
- data/lib/rant/import/rubypackage.rb +2 -2
- data/lib/rant/import/rubytest.rb +3 -2
- data/lib/rant/plugin/csharp.rb +5 -9
- data/lib/rant/rantenv.rb +1 -0
- data/lib/rant/rantfile.rb +184 -68
- data/lib/rant/rantlib.rb +203 -195
- data/lib/rant/rantsys.rb +87 -44
- data/lib/rant/rantvar.rb +236 -17
- data/rantmethods.rb +9 -4
- data/run_rant +1 -1
- data/test/Rantfile +16 -0
- data/test/plugin/csharp/test_csharp.rb +2 -1
- data/test/plugin/rantfile +1 -0
- data/test/project1/Rantfile +8 -4
- data/test/rule.rf +27 -0
- data/test/subdirs/Rantfile +2 -0
- data/test/subdirs/sub2/sub/rantfile +17 -0
- data/test/subdirs/test_subdirs.rb +46 -2
- data/test/test_dirtask.rb +33 -0
- data/test/test_filelist.rb +81 -0
- data/test/test_filetask.rb +6 -6
- data/test/test_rant_interface.rb +4 -3
- data/test/test_rule.rb +67 -0
- data/test/test_source.rb +26 -0
- data/test/test_task.rb +27 -6
- data/test/test_var.rb +102 -0
- data/test/toplevel.rf +1 -1
- data/test/var.rf +19 -0
- metadata +11 -2
data/test/test_source.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
|
2
|
+
require 'test/unit'
|
3
|
+
require 'rant/rantlib'
|
4
|
+
require 'tutil'
|
5
|
+
require 'fileutils'
|
6
|
+
|
7
|
+
# Ensure we run in testproject directory.
|
8
|
+
$testDir ||= File.expand_path(File.dirname(__FILE__))
|
9
|
+
|
10
|
+
class TestSource < Test::Unit::TestCase
|
11
|
+
def setup
|
12
|
+
Dir.chdir($testDir) unless Dir.pwd == $testDir
|
13
|
+
end
|
14
|
+
def teardown
|
15
|
+
capture_std do
|
16
|
+
assert_equal(0, Rant.run("clean"))
|
17
|
+
end
|
18
|
+
end
|
19
|
+
def test_task_for_source
|
20
|
+
capture_std do
|
21
|
+
assert_equal(0, Rant.run("auto.t"))
|
22
|
+
end
|
23
|
+
assert(test(?f, "auto.rf"))
|
24
|
+
assert(test(?f, "auto.t"))
|
25
|
+
end
|
26
|
+
end
|
data/test/test_task.rb
CHANGED
@@ -42,7 +42,7 @@ class TestTask < Test::Unit::TestCase
|
|
42
42
|
task.invoke
|
43
43
|
}
|
44
44
|
assert(task.fail?)
|
45
|
-
assert(task.
|
45
|
+
assert(task.invoked?, "although task failed, it was invoked")
|
46
46
|
end
|
47
47
|
|
48
48
|
def test_dependant
|
@@ -75,7 +75,7 @@ class TestTask < Test::Unit::TestCase
|
|
75
75
|
|
76
76
|
def test_task
|
77
77
|
run = false
|
78
|
-
t = Rant.task :t do |t|
|
78
|
+
t = Rant.rac.task :t do |t|
|
79
79
|
run = true
|
80
80
|
end
|
81
81
|
t.invoke
|
@@ -84,7 +84,7 @@ class TestTask < Test::Unit::TestCase
|
|
84
84
|
|
85
85
|
def test_dep_on_self
|
86
86
|
run = false
|
87
|
-
t = Rant.task :t => "t" do |t|
|
87
|
+
t = Rant.rac.task :t => "t" do |t|
|
88
88
|
run = true
|
89
89
|
end
|
90
90
|
th = Thread.new { t.invoke }
|
@@ -94,15 +94,36 @@ class TestTask < Test::Unit::TestCase
|
|
94
94
|
assert(run,
|
95
95
|
"task should get run despite dependency on itself")
|
96
96
|
end
|
97
|
+
def test_circular_dependency
|
98
|
+
t1r = false
|
99
|
+
t2r = false
|
100
|
+
t1 = Rant.rac.task :t1 => :t2 do |t|
|
101
|
+
assert(t2r)
|
102
|
+
t1r = true
|
103
|
+
end
|
104
|
+
t2 = Rant.rac.task :t2 => :t1 do |t|
|
105
|
+
t2r = true
|
106
|
+
end
|
107
|
+
out, err = capture_std do
|
108
|
+
th = Thread.new { t1.invoke }
|
109
|
+
assert_equal(th, th.join(0.5),
|
110
|
+
"task should detect circular dependency")
|
111
|
+
end
|
112
|
+
assert(t1r)
|
113
|
+
assert(t2r)
|
114
|
+
assert_match(/\[WARNING\]/, err,
|
115
|
+
"Rant should print a warning to stderr about circular" +
|
116
|
+
"dependency")
|
117
|
+
end
|
97
118
|
def test_dep_on_self_in_deplist
|
98
119
|
rl = []
|
99
|
-
t1 = Rant.task :t1 do |t|
|
120
|
+
t1 = Rant.rac.task :t1 do |t|
|
100
121
|
rl << t.name
|
101
122
|
end
|
102
|
-
t2 = Rant.task :t2 do |t|
|
123
|
+
t2 = Rant.rac.task :t2 do |t|
|
103
124
|
rl << t.name
|
104
125
|
end
|
105
|
-
t3 = Rant.task :t3 => [:t1, :t3, :t2] do |t|
|
126
|
+
t3 = Rant.rac.task :t3 => [:t1, :t3, :t2] do |t|
|
106
127
|
rl << t.name
|
107
128
|
end
|
108
129
|
th = Thread.new { t3.invoke }
|
data/test/test_var.rb
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
|
2
|
+
require 'test/unit'
|
3
|
+
require 'rant/rantlib'
|
4
|
+
require 'fileutils'
|
5
|
+
require 'tutil'
|
6
|
+
|
7
|
+
$testDir ||= File.expand_path(File.dirname(__FILE__))
|
8
|
+
|
9
|
+
class TestVar < Test::Unit::TestCase
|
10
|
+
RV = Rant::RantVar
|
11
|
+
RS = Rant::RantVar::Space
|
12
|
+
def setup
|
13
|
+
# Ensure we run in test directory.
|
14
|
+
Dir.chdir($testDir) unless Dir.pwd == $testDir
|
15
|
+
@rac = Rant::RantApp.new
|
16
|
+
@cx = @rac.context
|
17
|
+
end
|
18
|
+
def teardown
|
19
|
+
end
|
20
|
+
def test_space
|
21
|
+
s = nil
|
22
|
+
assert_nothing_raised {
|
23
|
+
s = RS.new
|
24
|
+
assert_nil(s[:a])
|
25
|
+
s[:a] = 1
|
26
|
+
assert_equal(1, s["a"])
|
27
|
+
assert_equal(1, s[:a])
|
28
|
+
s[:b] = "b"
|
29
|
+
assert_equal("b", s.query(:b))
|
30
|
+
assert_same(s[:b], s["b"])
|
31
|
+
assert_same(s.query("b"), s["b"])
|
32
|
+
s.query :a, :Integer, 2
|
33
|
+
assert_equal(2, s[:a])
|
34
|
+
s.query :c, :Integer
|
35
|
+
assert_equal(0, s[:c])
|
36
|
+
}
|
37
|
+
end
|
38
|
+
def test_rac_var_ignore
|
39
|
+
assert_equal([], @cx.var(:ignore))
|
40
|
+
@cx.var[:ignore] = "CVS"
|
41
|
+
assert_equal(%w(CVS), @cx.var["ignore"])
|
42
|
+
end
|
43
|
+
def test_invalid_for_constraint
|
44
|
+
@cx.var :a, :Integer
|
45
|
+
assert_equal(0, @cx.var[:a])
|
46
|
+
assert_raises(Rant::RantVar::ConstraintError) {
|
47
|
+
@cx.var[:a] = "x"
|
48
|
+
}
|
49
|
+
assert_equal(0, @cx.var[:a])
|
50
|
+
end
|
51
|
+
def test_env
|
52
|
+
ENV["RANT_TEST_VAL"] = "val"
|
53
|
+
@cx.var.env "RANT_TEST_VAL"
|
54
|
+
assert_equal("val", @cx.var["RANT_TEST_VAL"])
|
55
|
+
assert_equal("val", @cx.var("RANT_TEST_VAL"))
|
56
|
+
@cx.var[:RANT_TEST_VAL] = "new"
|
57
|
+
assert_equal("new", @cx.var["RANT_TEST_VAL"])
|
58
|
+
assert_equal("new", ENV["RANT_TEST_VAL"])
|
59
|
+
env_val2 = ENV["RANT_TEST_VAL2"]
|
60
|
+
@cx.var["RANT_TEST_VAL2"] = "val2"
|
61
|
+
assert_equal(env_val2, ENV["RANT_TEST_VAL2"])
|
62
|
+
assert_equal("val2", @cx.var("RANT_TEST_VAL2"))
|
63
|
+
end
|
64
|
+
def test_late_env
|
65
|
+
@cx.var "rtv3" => "val3"
|
66
|
+
@cx.var.env "rtv3", "rtv4"
|
67
|
+
assert_equal("val3", @cx.var["rtv3"])
|
68
|
+
assert_equal("val3", ENV["rtv3"])
|
69
|
+
ENV["rtv4"] = "val4"
|
70
|
+
assert_equal("val4", @cx.var["rtv4"])
|
71
|
+
end
|
72
|
+
def test_env_with_array
|
73
|
+
@cx.var "rtv6" => "val6"
|
74
|
+
@cx.var.env %w(rtv6 rtv7)
|
75
|
+
assert_equal("val6", @cx.var["rtv6"])
|
76
|
+
assert_equal("val6", ENV["rtv6"])
|
77
|
+
ENV["rtv7"] = "val7"
|
78
|
+
assert_equal("val7", @cx.var["rtv7"])
|
79
|
+
end
|
80
|
+
def test_defaults
|
81
|
+
@rac.args.replace %w(-fvar.rf)
|
82
|
+
capture_std do
|
83
|
+
assert_equal(0, @rac.run)
|
84
|
+
end
|
85
|
+
assert(test(?f, "default_1.t"))
|
86
|
+
assert(test(?f, "default_2.t"))
|
87
|
+
capture_std do
|
88
|
+
assert_equal(0, Rant::RantApp.new(%w(-fvar.rf clean)).run)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
def test_override
|
92
|
+
@rac.args.replace %w(v1=val1.t v2=val2.t -fvar.rf)
|
93
|
+
capture_std do
|
94
|
+
assert_equal(0, @rac.run)
|
95
|
+
end
|
96
|
+
assert(test(?f, "val1.t"))
|
97
|
+
assert(test(?f, "default_2.t"))
|
98
|
+
capture_std do
|
99
|
+
assert_equal(0, Rant::RantApp.new(%w(-fvar.rf clean)).run)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
data/test/toplevel.rf
CHANGED
data/test/var.rf
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
|
2
|
+
var "v1" => "default_1.t"
|
3
|
+
var["v2"] = "default_2.t"
|
4
|
+
|
5
|
+
task :default => [var[:v1], var[:v2]]
|
6
|
+
|
7
|
+
file var[:v1] do |t|
|
8
|
+
sys.touch t.name
|
9
|
+
end
|
10
|
+
|
11
|
+
file var[:v2] do |t|
|
12
|
+
sys.touch t.name
|
13
|
+
end
|
14
|
+
|
15
|
+
task :clean do
|
16
|
+
sys.rm_f sys["*.t"]
|
17
|
+
end
|
18
|
+
|
19
|
+
# vim:ft=ruby
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.10
|
|
3
3
|
specification_version: 1
|
4
4
|
name: rant
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.3.
|
7
|
-
date: 2005-04-
|
6
|
+
version: 0.3.4
|
7
|
+
date: 2005-04-17
|
8
8
|
summary: Rant is a Ruby based build tool.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -33,6 +33,7 @@ files:
|
|
33
33
|
- TODO
|
34
34
|
- README
|
35
35
|
- Rantfile
|
36
|
+
- install.rb
|
36
37
|
- run_rant
|
37
38
|
- devel-notes
|
38
39
|
- rantmethods.rb
|
@@ -63,16 +64,22 @@ files:
|
|
63
64
|
- test/test_lighttask.rb
|
64
65
|
- test/Rantfile
|
65
66
|
- test/ts_all.rb
|
67
|
+
- test/test_rule.rb
|
66
68
|
- test/test_task.rb
|
67
69
|
- test/project_rb1
|
70
|
+
- test/rule.rf
|
68
71
|
- test/subdirs
|
69
72
|
- test/test_metatask.rb
|
70
73
|
- test/test_env.rb
|
71
74
|
- test/toplevel.rf
|
75
|
+
- test/test_source.rb
|
72
76
|
- test/plugin
|
73
77
|
- test/test_rant_interface.rb
|
74
78
|
- test/test_sys.rb
|
79
|
+
- test/test_var.rb
|
75
80
|
- test/tutil.rb
|
81
|
+
- test/var.rf
|
82
|
+
- test/test_dirtask.rb
|
76
83
|
- test/project1
|
77
84
|
- test/project2
|
78
85
|
- test/test_filelist.rb
|
@@ -117,6 +124,7 @@ files:
|
|
117
124
|
- test/project2/sub1/Rantfile
|
118
125
|
- doc/rantfile.rdoc
|
119
126
|
- doc/configure.rdoc
|
127
|
+
- doc/advanced.rdoc
|
120
128
|
- doc/rubyproject.rdoc
|
121
129
|
- doc/rant.rdoc
|
122
130
|
- doc/csharp.rdoc
|
@@ -142,6 +150,7 @@ rdoc_options:
|
|
142
150
|
extra_rdoc_files:
|
143
151
|
- doc/rantfile.rdoc
|
144
152
|
- doc/configure.rdoc
|
153
|
+
- doc/advanced.rdoc
|
145
154
|
- doc/rubyproject.rdoc
|
146
155
|
- doc/rant.rdoc
|
147
156
|
- doc/csharp.rdoc
|