From 4c30847da6c777e84a8bdce102ba4142e71a8343 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Tue, 1 Apr 2003 14:33:28 +0000 Subject: [PATCH] demonstrate bug 12961 git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@274363 13f79535-47bb-0310-9956-ffa450edef68 --- .../taskdefs/optional/antlr/antlr.xml | 19 ++++++++++++++++ .../tools/ant/taskdefs/optional/ANTLR.java | 9 ++++++-- .../ant/taskdefs/optional/ANTLRTest.java | 22 +++++++++++++++++++ 3 files changed, 48 insertions(+), 2 deletions(-) diff --git a/src/etc/testcases/taskdefs/optional/antlr/antlr.xml b/src/etc/testcases/taskdefs/optional/antlr/antlr.xml index fb849dd91..3fa0d1596 100644 --- a/src/etc/testcases/taskdefs/optional/antlr/antlr.xml +++ b/src/etc/testcases/taskdefs/optional/antlr/antlr.xml @@ -73,6 +73,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java b/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java index e5feef482..fc8dd7acf 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java @@ -275,7 +275,11 @@ public class ANTLR extends Task { public void execute() throws BuildException { validateAttributes(); //TODO: use ANTLR to parse the grammer file to do this. - if (target.lastModified() > getGeneratedFile().lastModified()) { + File generatedFile = getGeneratedFile(); + if (target.lastModified() > generatedFile.lastModified()) { + log("Compiling " + target + " as it is newer than " + + generatedFile, Project.MSG_VERBOSE); + populateAttributes(); commandline.createArgument().setValue(target.toString()); @@ -291,7 +295,8 @@ public class ANTLR extends Task { } } } else { - log("Skipped grammar file. Generated file is newer.", Project.MSG_VERBOSE); + log("Skipped grammar file. Generated file " + generatedFile + + "is newer.", Project.MSG_VERBOSE); } } diff --git a/src/testcases/org/apache/tools/ant/taskdefs/optional/ANTLRTest.java b/src/testcases/org/apache/tools/ant/taskdefs/optional/ANTLRTest.java index 19718de35..99b0fb374 100644 --- a/src/testcases/org/apache/tools/ant/taskdefs/optional/ANTLRTest.java +++ b/src/testcases/org/apache/tools/ant/taskdefs/optional/ANTLRTest.java @@ -169,6 +169,28 @@ public class ANTLRTest extends BuildFileTest { public void test13() { executeTarget("test13"); } + + public void testNoRecompile() { + executeTarget("test9"); + assertEquals(-1, getFullLog().indexOf("Skipped grammar file.")); + executeTarget("noRecompile"); + assertTrue(-1 != getFullLog().indexOf("Skipped grammar file.")); + } + + public void testNormalRecompile() { + executeTarget("test9"); + assertEquals(-1, getFullLog().indexOf("Skipped grammar file.")); + executeTarget("normalRecompile"); + assertEquals(-1, getFullLog().indexOf("Skipped grammar file.")); + } + + // Bugzilla Report 12961 + public void testSupergrammarChangeRecompile() { + executeTarget("test9"); + assertEquals(-1, getFullLog().indexOf("Skipped grammar file.")); + executeTarget("supergrammarChangeRecompile"); + assertEquals(-1, getFullLog().indexOf("Skipped grammar file.")); + } } class CalcFileFilter implements FilenameFilter {