rant 0.3.4 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,59 @@
1
+
2
+ require 'test/unit'
3
+ require 'rant/rantlib'
4
+ require 'tutil'
5
+
6
+ $testDir ||= File.expand_path(File.dirname(__FILE__))
7
+
8
+ class TestRac < Test::Unit::TestCase
9
+ def setup
10
+ # Ensure we run in test directory.
11
+ Dir.chdir($testDir) unless Dir.pwd == $testDir
12
+ end
13
+ def teardown
14
+ end
15
+ def test_parse_caller_elem_nil
16
+ assert_nothing_raised {
17
+ ch = Rant::Lib.parse_caller_elem(nil)
18
+ assert_equal("", ch[:file])
19
+ assert_equal(0, ch[:ln])
20
+ }
21
+ end
22
+ def test_parse_caller_elem_file_ln
23
+ assert_nothing_raised {
24
+ ch = Rant::Lib.parse_caller_elem("C:\\foo\\bar:32")
25
+ assert_equal("C:\\foo\\bar", ch[:file])
26
+ assert_equal(32, ch[:ln])
27
+ }
28
+ end
29
+ def test_parse_caller_elem_file_ln_meth
30
+ assert_nothing_raised {
31
+ ch = Rant::Lib.parse_caller_elem("C:\\foo abc\\bar de:32:in nix")
32
+ assert_equal("C:\\foo abc\\bar de", ch[:file])
33
+ assert_equal(32, ch[:ln])
34
+ }
35
+ end
36
+ def test_parse_caller_elem_eval
37
+ assert_nothing_raised {
38
+ ch = Rant::Lib.parse_caller_elem("-e:1")
39
+ assert_equal("-e", ch[:file])
40
+ assert_equal(1, ch[:ln])
41
+ }
42
+ end
43
+ def test_parse_caller_elem_file_with_colon_ln_meth
44
+ assert_nothing_raised {
45
+ ch = Rant::Lib.parse_caller_elem("abc:de:32:in nix")
46
+ assert_equal("abc:de", ch[:file])
47
+ assert_equal(32, ch[:ln])
48
+ }
49
+ end
50
+ def test_parse_caller_elem_no_line_number
51
+ assert_nothing_raised {
52
+ out, err = capture_std do
53
+ ch = Rant::Lib.parse_caller_elem("foo")
54
+ assert_equal("foo", ch[:file])
55
+ assert_equal(0, ch[:ln])
56
+ end
57
+ }
58
+ end
59
+ end
@@ -0,0 +1,47 @@
1
+
2
+ require 'test/unit'
3
+ require 'rant/rantlib'
4
+ require 'tutil'
5
+ require 'fileutils'
6
+
7
+ $testDir ||= File.expand_path(File.dirname(__FILE__))
8
+
9
+ class TestRantfileAPI < Test::Unit::TestCase
10
+ def setup
11
+ # Ensure we run in test directory.
12
+ Dir.chdir($testDir) unless Dir.pwd == $testDir
13
+ @app = Rant::RantApp.new
14
+ end
15
+ def teardown
16
+ FileUtils.rm_rf Dir["*.t"]
17
+ end
18
+ def test_action
19
+ @app.args << "act_verbose=1"
20
+ out, err = capture_std do
21
+ assert_equal(0, @app.run)
22
+ end
23
+ assert_match(/running action/, out)
24
+ end
25
+ def test_action_query
26
+ @app.args << "act_verbose=1" << "--tasks"
27
+ out, err = capture_std do
28
+ assert_equal(0, @app.run)
29
+ end
30
+ assert(out !~ /running action/)
31
+ end
32
+ def test_rac_build
33
+ capture_std do
34
+ assert_equal(0, @app.run)
35
+ end
36
+ assert(test(?f, "version.t"))
37
+ old_mtime = File.mtime "version.t"
38
+ timeout
39
+ capture_std do
40
+ assert_equal(0, Rant::RantApp.new.run)
41
+ end
42
+ assert_equal(old_mtime, File.mtime("version.t"))
43
+ end
44
+ def test_rac_build_cd
45
+ assert_rant("tmp.t/Rantfile", "subdir_tmp", "build_test_t")
46
+ end
47
+ end
@@ -99,4 +99,180 @@ class TestVar < Test::Unit::TestCase
99
99
  assert_equal(0, Rant::RantApp.new(%w(-fvar.rf clean)).run)
100
100
  end
101
101
  end
102
+ def test_is_string
103
+ @rac.var :s, :String
104
+ assert_equal("", @rac.var["s"])
105
+ @rac.var[:s] = "abc"
106
+ assert_equal("abc", @rac.var["s"])
107
+ obj = Object.new
108
+ def obj.to_str
109
+ "obj"
110
+ end
111
+ assert_nothing_raised { @rac.var[:s] = obj }
112
+ assert_equal("obj", @rac.var[:s])
113
+ assert_raise(::Rant::RantVar::ConstraintError) {
114
+ @rac.var[:s] = 3
115
+ }
116
+ assert_equal("obj", @rac.var[:s])
117
+ end
118
+ def test_is_integer
119
+ @rac.var(:count => 10).is :Integer
120
+ assert_equal(10, @rac.var[:count])
121
+ assert_raise(::Rant::RantVar::ConstraintError) {
122
+ @rac.var[:count] = "no_integer"
123
+ }
124
+ assert_equal(10, @rac.var[:count])
125
+ end
126
+ def test_is_integer_in_range
127
+ @rac.var(:count => 10).is 0..20
128
+ assert_equal(10, @rac.var[:count])
129
+ assert_raise(::Rant::RantVar::ConstraintError) {
130
+ @rac.var[:count] = "no_integer"
131
+ }
132
+ assert_raise(::Rant::RantVar::ConstraintError) {
133
+ @rac.var[:count] = 21
134
+ }
135
+ assert_raise(::Rant::RantVar::ConstraintError) {
136
+ @rac.var[:count] = -1
137
+ }
138
+ assert_equal(10, @rac.var[:count])
139
+ @rac.var[:count] = "15"
140
+ assert_equal(15, @rac.var(:count))
141
+ end
142
+ def test_restrict
143
+ assert_equal(nil, @rac.var[:num])
144
+ @rac.var.restrict :num, :Float, -1.1..2.0
145
+ assert_equal(-1.1, @rac.var[:num])
146
+ @rac.var[:num] = "1.5"
147
+ assert_equal(1.5, @rac.var[:num])
148
+ assert_raise(::Rant::RantVar::ConstraintError) {
149
+ @rac.var[:num] = -1.2
150
+ }
151
+ assert_equal(1.5, @rac.var[:num])
152
+ end
153
+ def test_restrict_cmd
154
+ @rac.args.replace %w(-fvar.rf show_count)
155
+ out, err = capture_std { @rac.run }
156
+ assert_match(/count 1/, out)
157
+ end
158
+ def test_restrict_cmd_change
159
+ @rac.args.replace %w(-fvar.rf count=5 show_count)
160
+ out, err = capture_std { @rac.run }
161
+ assert_match(/count 5/, out)
162
+ end
163
+ def test_restrict_cmd_error
164
+ @rac.args.replace %w(-fvar.rf count=0 show_count)
165
+ out, err = capture_std {
166
+ assert_equal(1, @rac.run)
167
+ }
168
+ assert_match(/[ERROR]/, err)
169
+ end
170
+ def test_float_range_cmd
171
+ @rac.args.replace %w(-fvar.rf num=5.0 show_num)
172
+ out, err = capture_std do
173
+ assert_equal(0, @rac.run)
174
+ end
175
+ assert_match(/num 5.0/, out)
176
+ end
177
+ def test_float_range_cmd_invalid
178
+ @rac.args.replace %w(-fvar.rf num=0.0 show_num)
179
+ out, err = capture_std do
180
+ assert_equal(1, @rac.run)
181
+ end
182
+ assert_match(/[ERROR]/, err)
183
+ end
184
+ def test_float_range_default
185
+ @rac.args.replace %w(-fvar.rf show_num)
186
+ out, err = capture_std do
187
+ assert_equal(0, @rac.run)
188
+ end
189
+ assert_match(/num 1.1/, out)
190
+ end
191
+ def test_env_to_string
192
+ @rac.var "RT_TO_S", :ToString
193
+ @rac.var.env "RT_TO_S"
194
+ if Rant::Env.on_windows?
195
+ # very odd on windows: when setting ENV["ABC"]="" you'll
196
+ # get out ENV["ABC"] == nil
197
+ assert(ENV["RT_TO_S"] == "" || ENV["RT_TO_S"] == nil)
198
+ assert(@rac.var["RT_TO_S"] == "" || @rac.var["RT_TO_S"] == nil)
199
+ else
200
+ assert_equal(ENV["RT_TO_S"], "")
201
+ assert_equal(@rac.var["RT_TO_S"], "")
202
+ end
203
+ assert_nothing_raised {
204
+ @rac.var[:RT_TO_S] = "abc"
205
+ assert_equal("abc", ENV["RT_TO_S"])
206
+ obj = Object.new
207
+ def obj.to_s; "obj"; end
208
+ @rac.var[:RT_TO_S] = obj
209
+ assert_equal("obj", ENV["RT_TO_S"])
210
+ }
211
+ end
212
+ def test_bool
213
+ @rac.var "true?", :Bool
214
+ assert_equal(false, @rac.var[:true?])
215
+ assert_nothing_raised {
216
+ @rac.var[:true?] = true
217
+ assert_equal(true, @rac.var[:true?])
218
+ @rac.var[:true?] = false
219
+ assert_equal(false, @rac.var[:true?])
220
+ @rac.var[:true?] = 1
221
+ assert_equal(true, @rac.var[:true?])
222
+ @rac.var[:true?] = 0
223
+ assert_equal(false, @rac.var[:true?])
224
+ @rac.var[:true?] = :on
225
+ assert_equal(true, @rac.var[:true?])
226
+ @rac.var[:true?] = :off
227
+ assert_equal(false, @rac.var[:true?])
228
+ @rac.var[:true?] = "yes"
229
+ assert_equal(true, @rac.var[:true?])
230
+ @rac.var[:true?] = "no"
231
+ assert_equal(false, @rac.var[:true?])
232
+ @rac.var[:true?] = "true"
233
+ assert_equal(true, @rac.var[:true?])
234
+ @rac.var[:true?] = "false"
235
+ assert_equal(false, @rac.var[:true?])
236
+ @rac.var[:true?] = "y"
237
+ assert_equal(true, @rac.var[:true?])
238
+ @rac.var[:true?] = "n"
239
+ assert_equal(false, @rac.var[:true?])
240
+ @rac.var[:true?] = nil
241
+ assert_equal(false, @rac.var[:true?])
242
+ }
243
+ assert_raise(::Rant::RantVar::ConstraintError) {
244
+ @rac.var[:true?] = "abc"
245
+ }
246
+ assert_equal(false, @rac.var[:true?])
247
+ end
248
+ def test_bool_shortcut_true
249
+ @rac.var :bs, true
250
+ assert_equal(true, @rac.var[:bs])
251
+ @rac.var[:bs] = false
252
+ assert_equal(false, @rac.var[:bs])
253
+ assert_raise(::Rant::RantVar::ConstraintError) {
254
+ @rac.var[:bs] = "abc"
255
+ }
256
+ assert_equal(false, @rac.var[:bs])
257
+ end
258
+ def test_bool_shortcut_false
259
+ @rac.var :bs, false
260
+ assert_equal(false, @rac.var[:bs])
261
+ @rac.var[:bs] = "1"
262
+ assert_equal(true, @rac.var[:bs])
263
+ assert_raise(::Rant::RantVar::ConstraintError) {
264
+ @rac.var[:bs] = "abc"
265
+ }
266
+ assert_equal(true, @rac.var[:bs])
267
+ end
268
+ def test_violation_message
269
+ @rac.args.replace %w(-fvar.rf source_err)
270
+ out, err = capture_std do
271
+ assert_equal(1, @rac.run)
272
+ end
273
+ assert_match(
274
+ /source_err\.rf\.t.+2.*\n.*11.+constraint.+integer/i, err)
275
+ ensure
276
+ assert_equal(0, Rant::RantApp.new("-fvar.rf", "clean", "-q").run)
277
+ end
102
278
  end
@@ -1,8 +1,20 @@
1
1
 
2
2
  # This file contains methods that aid in testing Rant.
3
3
 
4
- require 'rant/rantenv'
5
- require 'rant/rantsys'
4
+ require 'rant/rantlib'
5
+ require 'fileutils'
6
+
7
+ module Test
8
+ module Unit
9
+ class TestCase
10
+ def assert_rant(*args)
11
+ capture_std do
12
+ assert_equal(0, ::Rant::RantApp.new(*args).run)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
6
18
 
7
19
  RANT_BIN = File.expand_path(
8
20
  File.join(File.dirname(__FILE__), "..", "run_rant"))
@@ -118,3 +130,7 @@ end
118
130
  def run_import(*args)
119
131
  `#{Rant::Sys.sp(Rant::Env::RUBY)} #{Rant::Sys.sp(RANT_IMPORT_BIN)} #{args.flatten.arglist}`
120
132
  end
133
+
134
+ def run_ruby(*args)
135
+ `#{Rant::Sys.sp(Rant::Env::RUBY)} #{args.flatten.arglist}`
136
+ end
@@ -1,6 +1,8 @@
1
1
 
2
2
  var "v1" => "default_1.t"
3
3
  var["v2"] = "default_2.t"
4
+ var.restrict :count, :Integer, 1..10
5
+ var :num, 1.1 .. 11.11
4
6
 
5
7
  task :default => [var[:v1], var[:v2]]
6
8
 
@@ -12,6 +14,27 @@ file var[:v2] do |t|
12
14
  sys.touch t.name
13
15
  end
14
16
 
17
+ task :show_count do |t|
18
+ puts "count #{var :count}"
19
+ end
20
+
21
+ task :show_num do
22
+ puts "num #{var :num}"
23
+ end
24
+
25
+ task :source_err do
26
+ source "source_err.rf.t"
27
+ end
28
+
29
+ file "source_err.rf.t" do |t|
30
+ open(t.name, "w") { |f|
31
+ f << <<-EOF
32
+
33
+ var[:count] = 11
34
+ EOF
35
+ }
36
+ end
37
+
15
38
  task :clean do
16
39
  sys.rm_f sys["*.t"]
17
40
  end
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.4
7
- date: 2005-04-17
6
+ version: 0.3.6
7
+ date: 2005-05-02
8
8
  summary: Rant is a Ruby based build tool.
9
9
  require_paths:
10
10
  - lib
@@ -54,14 +54,20 @@ files:
54
54
  - lib/rant/plugin_methods.rb
55
55
  - lib/rant/plugin
56
56
  - lib/rant/import.rb
57
+ - lib/rant/import/directedrule.rb
58
+ - lib/rant/import/truth.rb
57
59
  - lib/rant/import/rubydoc.rb
58
60
  - lib/rant/import/rubytest.rb
59
61
  - lib/rant/import/rubypackage.rb
62
+ - lib/rant/import/package.rb
63
+ - lib/rant/import/clean.rb
64
+ - lib/rant/import/autoclean.rb
60
65
  - lib/rant/plugin/README
61
66
  - lib/rant/plugin/configure.rb
62
67
  - lib/rant/plugin/csharp.rb
63
68
  - test/test_filetask.rb
64
69
  - test/test_lighttask.rb
70
+ - test/test_examples.rb
65
71
  - test/Rantfile
66
72
  - test/ts_all.rb
67
73
  - test/test_rule.rb
@@ -70,10 +76,13 @@ files:
70
76
  - test/rule.rf
71
77
  - test/subdirs
72
78
  - test/test_metatask.rb
79
+ - test/test_rantfile_api.rb
73
80
  - test/test_env.rb
74
81
  - test/toplevel.rf
75
82
  - test/test_source.rb
83
+ - test/import
76
84
  - test/plugin
85
+ - test/test_rac.rb
77
86
  - test/test_rant_interface.rb
78
87
  - test/test_sys.rb
79
88
  - test/test_var.rb
@@ -82,6 +91,8 @@ files:
82
91
  - test/test_dirtask.rb
83
92
  - test/project1
84
93
  - test/project2
94
+ - test/rant-import
95
+ - test/test_clean.rb
85
96
  - test/test_filelist.rb
86
97
  - test/standalone.rf
87
98
  - test/project_rb1/bin
@@ -102,6 +113,12 @@ files:
102
113
  - test/subdirs/sub2/sub
103
114
  - test/subdirs/sub2/rantfile.rb
104
115
  - test/subdirs/sub2/sub/rantfile
116
+ - test/import/truth
117
+ - test/import/directedrule
118
+ - test/import/truth/Rantfile
119
+ - test/import/truth/test_truth.rb
120
+ - test/import/directedrule/Rantfile
121
+ - test/import/directedrule/test_directedrule.rb
105
122
  - test/plugin/configure
106
123
  - test/plugin/csharp
107
124
  - test/plugin/rantfile
@@ -122,15 +139,25 @@ files:
122
139
  - test/project2/buildfile
123
140
  - test/project2/test_project.rb
124
141
  - test/project2/sub1/Rantfile
142
+ - test/rant-import/Rantfile
143
+ - test/rant-import/test_rant-import.rb
125
144
  - doc/rantfile.rdoc
126
145
  - doc/configure.rdoc
127
146
  - doc/advanced.rdoc
128
147
  - doc/rubyproject.rdoc
129
148
  - doc/rant.rdoc
149
+ - doc/jamis.rb
130
150
  - doc/csharp.rdoc
131
151
  - doc/rant-import.rdoc
132
152
  - doc/examples
153
+ - doc/examples/directedrule
133
154
  - doc/examples/myprog
155
+ - doc/examples/directedrule/src_a
156
+ - doc/examples/directedrule/src_b
157
+ - doc/examples/directedrule/Rantfile
158
+ - doc/examples/directedrule/src_a/a_1.c
159
+ - doc/examples/directedrule/src_a/a_2.c
160
+ - doc/examples/directedrule/src_b/b_1.c
134
161
  - doc/examples/myprog/src
135
162
  - doc/examples/myprog/README
136
163
  - doc/examples/myprog/Rantfile