Add rule_in_var.mk test
Also now runtest.rb supports expected failure.
diff --git a/eval.go b/eval.go
index 42aa35a..baa36cf 100644
--- a/eval.go
+++ b/eval.go
@@ -165,6 +165,7 @@
result := ev.evalExpr(ast.expr)
if result != "" {
+ // TODO: Fix rule_in_var.mk.
fmt.Printf("%s:%d: *** missing separator. Stop.\n", ast.filename, ast.lineno)
}
}
diff --git a/runtest.rb b/runtest.rb
index 72a9f84..4b5d563 100755
--- a/runtest.rb
+++ b/runtest.rb
@@ -17,6 +17,8 @@
Dir.glob('test/*.mk').sort.each do |mk|
c = File.read(mk)
+ expected_failure = c =~ /\A# TODO/
+
name = mk[/([^\/]+)\.mk$/, 1]
dir = "out/#{name}"
FileUtils.rm_rf(dir)
@@ -49,10 +51,18 @@
File.open('out.kati', 'w'){|ofile|ofile.print(output)}
if expected != output
- puts "#{name}: FAIL"
- puts `diff -u out.make out.kati`
+ if expected_failure
+ puts "#{name}: FAIL (expected)"
+ else
+ puts "#{name}: FAIL"
+ puts `diff -u out.make out.kati`
+ end
else
- puts "#{name}: OK"
+ if expected_failure
+ puts "#{name}: PASS (unexpected)"
+ else
+ puts "#{name}: PASS"
+ end
end
end
end
diff --git a/test/rule_in_var.mk b/test/rule_in_var.mk
new file mode 100644
index 0000000..c527cb5
--- /dev/null
+++ b/test/rule_in_var.mk
@@ -0,0 +1,8 @@
+# TODO: Implement this. We probably need this.
+
+RULE=foo:
+
+test: foo
+
+$(RULE)
+ echo OK