rant 0.4.8 → 0.5.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.
- data/NEWS +31 -0
- data/README +3 -1
- data/Rantfile +53 -2
- data/doc/advanced.rdoc +86 -1
- data/doc/c.rdoc +8 -0
- data/doc/homepage/index.html +2 -0
- data/doc/rant.1 +4 -0
- data/doc/rant.rdoc +38 -0
- data/doc/rant_vs_rake.rdoc +13 -0
- data/doc/rantfile.rdoc +93 -63
- data/doc/sys.rdoc +568 -0
- data/lib/rant/coregen.rb +43 -16
- data/lib/rant/import/command.rb +7 -4
- data/lib/rant/import/filelist/more.rb +57 -0
- data/lib/rant/import/metadata.rb +5 -1
- data/lib/rant/import/nodes/default.rb +3 -24
- data/lib/rant/import/signedfile.rb +1 -8
- data/lib/rant/import/sys/more.rb +2 -1
- data/lib/rant/import/var/booleans.rb +65 -0
- data/lib/rant/import/var/lists.rb +34 -0
- data/lib/rant/import/var/numbers.rb +116 -0
- data/lib/rant/import/var/strings.rb +43 -0
- data/lib/rant/import.rb +19 -3
- data/lib/rant/node.rb +39 -6
- data/lib/rant/rantlib.rb +44 -8
- data/lib/rant/rantsys.rb +22 -54
- data/lib/rant/rantvar.rb +89 -256
- data/misc/TODO +18 -0
- data/misc/devel-notes +26 -1
- data/test/action.rant +24 -0
- data/test/deprecated/test_0_5_4.rb +53 -0
- data/test/deprecated/test_0_6_0.rb +1 -1
- data/test/dryrun/Rantfile +10 -0
- data/test/dryrun/foo.c +8 -0
- data/test/dryrun/test_dryrun.rb +31 -0
- data/test/import/c/dependencies/Rantfile +1 -1
- data/test/import/command/Rantfile +1 -1
- data/test/import/sys/test_tgz.rb +22 -0
- data/test/subdirs2/root.rant +11 -1
- data/test/subdirs2/sub1/sub.rant +3 -0
- data/test/subdirs2/test_subdirs2.rb +19 -0
- data/test/test_action.rb +75 -0
- data/test/test_filelist.rb +13 -10
- data/test/test_rant_interface.rb +2 -2
- data/test/test_rule.rb +121 -3
- data/test/test_sys_methods.rb +558 -0
- data/test/test_var.rb +10 -0
- data/test/tutil.rb +81 -8
- metadata +19 -2
@@ -0,0 +1,53 @@
|
|
1
|
+
|
2
|
+
require 'test/unit'
|
3
|
+
require 'tutil'
|
4
|
+
require 'rant/import/sys/more'
|
5
|
+
|
6
|
+
$test_deprecated_dir ||= File.expand_path(File.dirname(__FILE__))
|
7
|
+
|
8
|
+
class TestDeprecated_0_5_4 < Test::Unit::TestCase
|
9
|
+
include Rant::TestUtil
|
10
|
+
|
11
|
+
def setup
|
12
|
+
Dir.chdir $test_deprecated_dir
|
13
|
+
end
|
14
|
+
def test_autoimport_var_constraints
|
15
|
+
Rant::Sys.write_to_file "var.t", <<-EOF
|
16
|
+
var :a, :Integer
|
17
|
+
var :b, :String
|
18
|
+
var :c, :List
|
19
|
+
var :d, :Bool
|
20
|
+
task :default do
|
21
|
+
p var[:a].kind_of?(Integer)
|
22
|
+
p var[:b].kind_of?(String)
|
23
|
+
p var[:c].kind_of?(Array)
|
24
|
+
p(var[:d] == true || var[:d] == false)
|
25
|
+
end
|
26
|
+
EOF
|
27
|
+
out, err = assert_rant "-fvar.t", "a=2", "d=1"
|
28
|
+
assert_match(/import 'var\/numbers'/, err)
|
29
|
+
assert_match(/import 'var\/strings'/, err)
|
30
|
+
assert_match(/import 'var\/lists'/, err)
|
31
|
+
assert_match(/import 'var\/booleans'/, err)
|
32
|
+
lines = out.split(/\n/)
|
33
|
+
assert_equal %w(true true true true), lines
|
34
|
+
ensure
|
35
|
+
Rant::Sys.rm_f "var.t"
|
36
|
+
end
|
37
|
+
def test_var_is
|
38
|
+
Rant::Sys.write_to_file "var.t", <<-EOF
|
39
|
+
import "var/booleans"
|
40
|
+
var(:b => true).is :Bool
|
41
|
+
task :default do
|
42
|
+
p var[:b]
|
43
|
+
var[:b] = "off"
|
44
|
+
p var[:b]
|
45
|
+
end
|
46
|
+
EOF
|
47
|
+
out, err = assert_rant("-fvar.t")
|
48
|
+
assert_match(/\bvar\.t\b.*\b2\b.*var\.is.*deprecated.*0\.5\.4/m, err)
|
49
|
+
assert_equal %w(true false), out.split(/\n/)
|
50
|
+
ensure
|
51
|
+
Rant::Sys.rm_f "var.t"
|
52
|
+
end
|
53
|
+
end
|
@@ -15,7 +15,7 @@ class TestDeprecated_0_6_0 < Test::Unit::TestCase
|
|
15
15
|
assert_equal(0, Rant::RantImport.new("-v").run)
|
16
16
|
end
|
17
17
|
if Rant::VERSION > "0.4.8"
|
18
|
-
assert_match(/-v
|
18
|
+
assert_match(/-v.*\bdeprecated\b.*-V.*--version\b/m, err)
|
19
19
|
else
|
20
20
|
assert err.empty?
|
21
21
|
end
|
data/test/dryrun/foo.c
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
|
2
|
+
require 'test/unit'
|
3
|
+
require 'tutil'
|
4
|
+
|
5
|
+
# Ensure we run in testproject directory.
|
6
|
+
$testDryRunDir ||= File.expand_path(File.dirname(__FILE__))
|
7
|
+
|
8
|
+
class TestDryRun < Test::Unit::TestCase
|
9
|
+
include Rant::TestUtil
|
10
|
+
def setup
|
11
|
+
Dir.chdir($testDryRunDir)
|
12
|
+
end
|
13
|
+
def teardown
|
14
|
+
end
|
15
|
+
def test_default
|
16
|
+
cmd = "#{Rant::Sys.sp Rant::Env::RUBY_EXE} -e \"puts ARGV.join(' ')\" foo.t foo.c > foo.t"
|
17
|
+
out, err = assert_rant "-n"
|
18
|
+
assert err.empty?
|
19
|
+
assert !test(?e, "foo.t")
|
20
|
+
assert out !~ /installing foo/
|
21
|
+
lines = out.split(/\n/)
|
22
|
+
assert_match(/Executing.*\bfoo\.t\b/i, lines[0])
|
23
|
+
assert_match(/\s+-\s+SHELL\b/i, lines[1])
|
24
|
+
assert_match(/\s+#{Regexp.escape cmd}/, lines[2])
|
25
|
+
assert_match(/Executing.*\binstall\b/i, lines[3])
|
26
|
+
assert_match(/\s+-\s+Ruby Proc\b.*\bRantfile\b.*\b4\b/i, lines[4])
|
27
|
+
out2, err2 = assert_rant "--dry-run"
|
28
|
+
assert_equal out, out2
|
29
|
+
assert_equal err, err2
|
30
|
+
end
|
31
|
+
end
|
data/test/import/sys/test_tgz.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
|
2
2
|
require 'test/unit'
|
3
3
|
require 'tutil'
|
4
|
+
require 'rant/import/sys/more'
|
4
5
|
|
5
6
|
$test_import_sys_dir ||= File.expand_path(File.dirname(__FILE__))
|
6
7
|
|
@@ -31,6 +32,27 @@ class TestImportSysTgz < Test::Unit::TestCase
|
|
31
32
|
actual = Rant::FileList["pkg", "pkg/**/*", "pkg/**/.*"]
|
32
33
|
actual.shun ".", ".."
|
33
34
|
assert_equal((files + dirs).sort, actual.sort)
|
35
|
+
|
36
|
+
# test overwriting of existing files
|
37
|
+
Rant::Sys.write_to_file "pkg/test.c", "changed!\n"
|
38
|
+
|
39
|
+
out, err = assert_rant "-ftgz.rf"
|
40
|
+
assert err.empty?
|
41
|
+
assert !out.empty?
|
42
|
+
assert out.split(/\n/).size < 3
|
43
|
+
dirs = %w(pkg pkg/bin)
|
44
|
+
files = %w(pkg/test.c pkg/test.h pkg/bin/test pkg/bin/test.o)
|
45
|
+
dirs.each { |dir|
|
46
|
+
assert test(?d, dir), "dir `#{dir}' missing"
|
47
|
+
}
|
48
|
+
files.each { |fn|
|
49
|
+
src_fn = File.join "data", fn
|
50
|
+
assert test(?f, fn), "file `#{fn}' missing"
|
51
|
+
assert Rant::Sys.compare_file(fn, src_fn), "#{fn} corrupted"
|
52
|
+
}
|
53
|
+
actual = Rant::FileList["pkg", "pkg/**/*", "pkg/**/.*"]
|
54
|
+
actual.shun ".", ".."
|
55
|
+
assert_equal((files + dirs).sort, actual.sort)
|
34
56
|
ensure
|
35
57
|
Rant::Sys.rm_rf "pkg"
|
36
58
|
end
|
data/test/subdirs2/root.rant
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
|
2
|
-
import "autoclean", "subfile"
|
2
|
+
import "autoclean", "subfile", "command"
|
3
|
+
|
4
|
+
@sh_cat = "#{sys.sp Env::RUBY_EXE} -e \"print ARGF.read\""
|
5
|
+
@sh_puts = "#{sys.sp Env::RUBY_EXE} -e \"puts ARGV\""
|
3
6
|
|
4
7
|
def define_print_task(name)
|
5
8
|
task name do |t|
|
@@ -20,6 +23,13 @@ file "b.t" do |t|
|
|
20
23
|
write t.name
|
21
24
|
end
|
22
25
|
|
26
|
+
file "config.t" do |t|
|
27
|
+
var :config => "config\n"
|
28
|
+
write(t.name, var[:config])
|
29
|
+
end
|
30
|
+
|
31
|
+
gen Command, "c1.t", ["sub1/c1.t"], "$[sh_puts] ${<} > $(>)"
|
32
|
+
|
23
33
|
gen SubFile, "t/t", "a.t" => "b.t" do |t|
|
24
34
|
write(t.name, "abc")
|
25
35
|
end
|
data/test/subdirs2/sub1/sub.rant
CHANGED
@@ -236,4 +236,23 @@ EOF
|
|
236
236
|
assert err.empty?
|
237
237
|
assert_equal "sub00/a", out.split(/\n/).last
|
238
238
|
end
|
239
|
+
def test_command
|
240
|
+
out, err = assert_rant "c1.t"
|
241
|
+
assert err.empty?
|
242
|
+
assert_file_content "config.t", "config\n"
|
243
|
+
assert_file_content "sub1/c1.t", "config\n"
|
244
|
+
assert_file_content "c1.t", "sub1/c1.t\n"
|
245
|
+
out, err = assert_rant "c1.t"
|
246
|
+
assert err.empty?
|
247
|
+
assert out.empty?
|
248
|
+
end
|
249
|
+
def test_command_in_sub
|
250
|
+
Dir.chdir "sub1"
|
251
|
+
out, err = assert_rant "c2.t"
|
252
|
+
assert_file_content "../config.t", "config\n"
|
253
|
+
assert_file_content "c2.t", "config\n"
|
254
|
+
out, err = assert_rant "c2.t"
|
255
|
+
assert err.empty?
|
256
|
+
assert out.split(/\n/).size < 2
|
257
|
+
end
|
239
258
|
end
|
data/test/test_action.rb
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
|
2
|
+
require 'test/unit'
|
3
|
+
require 'tutil'
|
4
|
+
|
5
|
+
$testDir ||= File.expand_path(File.dirname(__FILE__))
|
6
|
+
|
7
|
+
class TestAction < Test::Unit::TestCase
|
8
|
+
include Rant::TestUtil
|
9
|
+
def setup
|
10
|
+
# Ensure we run in test directory.
|
11
|
+
Dir.chdir($testDir)
|
12
|
+
end
|
13
|
+
def teardown
|
14
|
+
Rant::Sys.rm_f Rant::FileList["*.t", "*.tt", "action.t.rant"]
|
15
|
+
end
|
16
|
+
def test_one_arg_regex
|
17
|
+
out, err = assert_rant "-faction.rant", "a.t", "b.t"
|
18
|
+
assert err.empty?
|
19
|
+
lines = out.split(/\n/)
|
20
|
+
assert_equal 4, lines.size
|
21
|
+
assert_equal 'executing action: rx /\.t$/', lines[0]
|
22
|
+
assert_match(/action\.t\.rant/, lines[1])
|
23
|
+
assert_match(/touch\s+a\.t/, lines[2])
|
24
|
+
assert_match(/touch\s+b\.t/, lines[3])
|
25
|
+
end
|
26
|
+
def test_one_arg_regex_remove_action
|
27
|
+
out, err = assert_rant :tmax_1, :fail, "-faction.rant", "a.t", "b.t", "c.t"
|
28
|
+
#assert err.empty?
|
29
|
+
lines = out.split(/\n/)
|
30
|
+
assert_equal 4, lines.size
|
31
|
+
assert_equal 'executing action: rx /\.t$/', lines[0]
|
32
|
+
assert_match(/action\.t\.rant/, lines[1])
|
33
|
+
assert_match(/touch\s+a\.t/, lines[2])
|
34
|
+
assert_match(/touch\s+b\.t/, lines[3])
|
35
|
+
end
|
36
|
+
def test_no_execute
|
37
|
+
out, err = assert_rant "-faction.rant", "b.tt"
|
38
|
+
assert err.empty?
|
39
|
+
lines = out.split(/\n/)
|
40
|
+
assert_equal 1, lines.size
|
41
|
+
assert_match(/touch\s+b\.tt/, lines[0])
|
42
|
+
out, err = assert_rant "-faction.rant", "b.tt"
|
43
|
+
assert err.empty?
|
44
|
+
assert out.empty?
|
45
|
+
end
|
46
|
+
def test_pwd
|
47
|
+
Rant::Sys.mkdir "sub.t"
|
48
|
+
Rant::Sys.write_to_file "sub.t/sub.rant", <<-EOF
|
49
|
+
task :a do
|
50
|
+
puts Dir.pwd
|
51
|
+
make "a.t" rescue nil
|
52
|
+
puts Dir.pwd
|
53
|
+
make "@a.t"
|
54
|
+
end
|
55
|
+
EOF
|
56
|
+
out, err = assert_rant "-faction.rant", "sub.t/a"
|
57
|
+
assert err !~ /ERROR/i
|
58
|
+
lines = out.split(/\n/)
|
59
|
+
assert_equal 7, lines.size
|
60
|
+
assert_match(/\bin\b/, lines[0])
|
61
|
+
subdir = File.join($testDir, "sub.t")
|
62
|
+
assert_equal(subdir, lines[1])
|
63
|
+
assert_match(/executing action: rx/, lines[2])
|
64
|
+
assert_match(/\bin\b/, lines[3])
|
65
|
+
assert_match(/action\.t\.rant/, lines[4])
|
66
|
+
assert_equal(subdir, lines[5])
|
67
|
+
assert_match(/touch\s+a\.t/, lines[6])
|
68
|
+
assert_file_content "a.t", ""
|
69
|
+
assert test(?f, "action.t.rant")
|
70
|
+
assert !test(?e, "sub.t/action.t.rant")
|
71
|
+
ensure
|
72
|
+
Dir.chdir($testDir)
|
73
|
+
Rant::Sys.rm_rf "sub.t"
|
74
|
+
end
|
75
|
+
end
|
data/test/test_filelist.rb
CHANGED
@@ -160,16 +160,18 @@ class TestFileList < Test::Unit::TestCase
|
|
160
160
|
end
|
161
161
|
def test_3addition
|
162
162
|
cx = Rant::RantApp.new.cx
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
163
|
+
in_local_temp_dir do
|
164
|
+
touch_temp %w(a.t1 a.t2 b.t2) do
|
165
|
+
l1 = cx.sys["a*"]
|
166
|
+
l1.exclude "*.t2"
|
167
|
+
l2 = cx.sys["*.t2"]
|
168
|
+
l3 = l1 + l2
|
169
|
+
%w(a.t1 a.t2 b.t2).each { |fn|
|
170
|
+
assert(l3.include(fn), "#{fn} missing")
|
171
|
+
}
|
172
|
+
l3.lazy_uniq!
|
173
|
+
assert_equal(3, l3.size)
|
174
|
+
end
|
173
175
|
end
|
174
176
|
end
|
175
177
|
def test_add_array
|
@@ -390,6 +392,7 @@ class TestFileList < Test::Unit::TestCase
|
|
390
392
|
end
|
391
393
|
end
|
392
394
|
def test_no_file
|
395
|
+
require 'rant/import/filelist/more'
|
393
396
|
cx = Rant::RantApp.new.cx
|
394
397
|
touch_temp %w(a.t b.t) do
|
395
398
|
fl = cx.sys["*.t"]
|
data/test/test_rant_interface.rb
CHANGED
@@ -74,11 +74,11 @@ class TestRantInterface < Test::Unit::TestCase
|
|
74
74
|
assert_equal out, out2
|
75
75
|
end
|
76
76
|
def test_no_such_option
|
77
|
-
out, err = assert_rant :fail, "-
|
77
|
+
out, err = assert_rant :fail, "-N"
|
78
78
|
assert out.empty?
|
79
79
|
lines = err.split(/\n/)
|
80
80
|
assert lines.size < 3
|
81
|
-
assert_match(/\[ERROR\].*option.*\
|
81
|
+
assert_match(/\[ERROR\].*option.*\bN\b/, lines.first)
|
82
82
|
end
|
83
83
|
def test_no_such_long_option
|
84
84
|
out, err = assert_rant :fail, "--nix"
|
data/test/test_rule.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
|
2
|
-
require 'test/unit'
|
3
|
-
require 'rant/rantlib'
|
4
2
|
require 'tutil'
|
5
|
-
require '
|
3
|
+
require 'test/unit'
|
4
|
+
require 'rant/import/sys/more'
|
6
5
|
|
7
6
|
# Ensure we run in testproject directory.
|
8
7
|
$testDir ||= File.expand_path(File.dirname(__FILE__))
|
9
8
|
|
10
9
|
class TestRule < Test::Unit::TestCase
|
10
|
+
include Rant::TestUtil
|
11
11
|
def setup
|
12
12
|
Dir.chdir($testDir) unless Dir.pwd == $testDir
|
13
13
|
end
|
@@ -55,6 +55,124 @@ class TestRule < Test::Unit::TestCase
|
|
55
55
|
assert_match(/eh\.t created/, out)
|
56
56
|
assert(err !~ /\[WARNING\]|\[ERROR\]/)
|
57
57
|
end
|
58
|
+
def test_rule_no_block_error
|
59
|
+
in_local_temp_dir do
|
60
|
+
write_to_file "Rantfile", <<-EOF
|
61
|
+
task :a do
|
62
|
+
puts "a"
|
63
|
+
end
|
64
|
+
gen Rule, :o => :c
|
65
|
+
EOF
|
66
|
+
out, err = assert_rant :fail
|
67
|
+
assert out.empty?
|
68
|
+
lines = err.split(/\n/)
|
69
|
+
assert lines.size < 4
|
70
|
+
assert_match(/\[ERROR\].*Rantfile\b.*\b4\b/, lines.first)
|
71
|
+
assert_match(/Rule\b.*block required\b/, lines[1])
|
72
|
+
end
|
73
|
+
end
|
74
|
+
def test_empty_extension_target
|
75
|
+
in_local_temp_dir do
|
76
|
+
Rant::Sys.write_to_file "root.rant", <<-EOF
|
77
|
+
gen Rule, "" => ".t" do |t|
|
78
|
+
sys.cp t.source, t.name
|
79
|
+
end
|
80
|
+
EOF
|
81
|
+
Rant::Sys.write_to_file "a.t", "abc\n"
|
82
|
+
out, err = assert_rant :tmax_1, "a"
|
83
|
+
assert err.empty?
|
84
|
+
assert !out.empty?
|
85
|
+
assert_file_content "a", "abc\n"
|
86
|
+
out, err = assert_rant :tmax_1, "a"
|
87
|
+
assert err.empty?
|
88
|
+
assert out.empty?
|
89
|
+
end
|
90
|
+
end
|
91
|
+
=begin
|
92
|
+
# TODO: needs change in prerequisite handling of file tasks
|
93
|
+
def test_file_hook_only_file_source
|
94
|
+
in_local_temp_dir do
|
95
|
+
Rant::Sys.write_to_file "Rantfile", <<-EOF
|
96
|
+
gen Rule, :o => :c do |t|
|
97
|
+
sys.cp t.source, t.name
|
98
|
+
end
|
99
|
+
task "a.c" do |t|
|
100
|
+
puts t.name
|
101
|
+
end
|
102
|
+
file "b.c" do |t|
|
103
|
+
sys.write_to_file t.name, "ok\n"
|
104
|
+
end
|
105
|
+
task "d.c" do |t|
|
106
|
+
puts "task for d.c"
|
107
|
+
end
|
108
|
+
file "d.c" do |t|
|
109
|
+
sys.write_to_file t.name, "ok 2\n"
|
110
|
+
end
|
111
|
+
EOF
|
112
|
+
out, err = assert_rant :fail, "a.o"
|
113
|
+
assert out.empty?
|
114
|
+
assert_match(/ERROR\b.*\ba\.o/, err)
|
115
|
+
assert !test(?e, "a.o")
|
116
|
+
out, err = assert_rant "b.o"
|
117
|
+
assert err.empty?
|
118
|
+
assert !out.empty?
|
119
|
+
assert_file_content "b.o", "ok\n"
|
120
|
+
out, err = assert_rant "d.o"
|
121
|
+
assert err.empty?
|
122
|
+
lines = out.split(/\n/)
|
123
|
+
assert_equal 1, lines.size
|
124
|
+
assert_match(/writing to file/, lines[0])
|
125
|
+
assert lines[0] =~ /task for/
|
126
|
+
out, err = assert_rant "b.o"
|
127
|
+
assert err.empty?
|
128
|
+
assert out.empty?
|
129
|
+
out, err = assert_rant "d.o"
|
130
|
+
assert err.empty?
|
131
|
+
assert out.empty?
|
132
|
+
end
|
133
|
+
end
|
134
|
+
def test_file_hook_only_file_source_md5
|
135
|
+
in_local_temp_dir do
|
136
|
+
Rant::Sys.write_to_file "Rantfile", <<-EOF
|
137
|
+
gen Rule, :o => :c do |t|
|
138
|
+
sys.cp t.source, t.name
|
139
|
+
end
|
140
|
+
task "a.c" do |t|
|
141
|
+
puts t.name
|
142
|
+
end
|
143
|
+
file "b.c" do |t|
|
144
|
+
sys.write_to_file t.name, "ok\n"
|
145
|
+
end
|
146
|
+
task "d.c" do |t|
|
147
|
+
puts "task for d.c"
|
148
|
+
end
|
149
|
+
file "d.c" do |t|
|
150
|
+
sys.write_to_file t.name, "ok 2\n"
|
151
|
+
end
|
152
|
+
EOF
|
153
|
+
out, err = assert_rant :fail, "-imd5", "a.o"
|
154
|
+
assert out.empty?
|
155
|
+
assert_match(/ERROR\b.*\ba\.o/, err)
|
156
|
+
assert !test(?e, "a.o")
|
157
|
+
out, err = assert_rant "-imd5", "b.o"
|
158
|
+
assert err.empty?
|
159
|
+
assert !out.empty?
|
160
|
+
assert_file_content "b.o", "ok\n"
|
161
|
+
out, err = assert_rant "-imd5", "d.o"
|
162
|
+
assert err.empty?
|
163
|
+
lines = out.split(/\n/)
|
164
|
+
assert_equal 1, lines.size
|
165
|
+
assert_match(/writing to file/, lines[0])
|
166
|
+
assert lines[0] =~ /task for/
|
167
|
+
out, err = assert_rant "-imd5", "b.o"
|
168
|
+
assert err.empty?
|
169
|
+
assert out.empty?
|
170
|
+
out, err = assert_rant "-imd5", "d.o"
|
171
|
+
assert err.empty?
|
172
|
+
assert out.empty?
|
173
|
+
end
|
174
|
+
end
|
175
|
+
=end
|
58
176
|
if Rant::Env.find_bin("cc") && Rant::Env.find_bin("gcc")
|
59
177
|
# Note: we are assuming that "cc" invokes "gcc"!
|
60
178
|
def test_cc
|