bodewig     2003/04/01 06:33:29

  Modified:    src/etc/testcases/taskdefs/optional/antlr antlr.xml
               src/main/org/apache/tools/ant/taskdefs/optional ANTLR.java
               src/testcases/org/apache/tools/ant/taskdefs/optional
                        ANTLRTest.java
  Log:
  demonstrate bug 12961
  
  Revision  Changes    Path
  1.9       +19 -0     ant/src/etc/testcases/taskdefs/optional/antlr/antlr.xml
  
  Index: antlr.xml
  ===================================================================
  RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/optional/antlr/antlr.xml,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- antlr.xml 1 Apr 2003 10:54:36 -0000       1.8
  +++ antlr.xml 1 Apr 2003 14:33:28 -0000       1.9
  @@ -73,6 +73,25 @@
       <antlr target="antlr.g" outputdirectory="${tmp.dir}" traceLexer="yes" 
traceParser="yes" traceTreeWalker="yes"/>
     </target>
   
  +  <!-- test9 will have been run before that -->
  +  <target name="noRecompile">
  +    <antlr target="${tmp.dir}/extended.calc.g" glib="${tmp.dir}/antlr.g"/>
  +  </target>
  +
  +  <!-- test9 will have been run before that -->
  +  <target name="normalRecompile">
  +    <sleep seconds="2"/>
  +    <touch file="${tmp.dir}/extended.calc.g"/>
  +    <antlr target="${tmp.dir}/extended.calc.g" glib="${tmp.dir}/antlr.g"/>
  +  </target>
  +
  +  <!-- test9 will have been run before that -->
  +  <target name="supergrammarChangeRecompile">
  +    <sleep seconds="2"/>
  +    <touch file="${tmp.dir}/antlr.g"/>
  +    <antlr target="${tmp.dir}/extended.calc.g" glib="${tmp.dir}/antlr.g"/>
  +  </target>
  +
     <target name="cleanup">
       <delete dir="${tmp.dir}" />
       <delete file="../../../../../../CalcParserTokenTypes.txt"/>
  
  
  
  1.22      +7 -2      
ant/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java
  
  Index: ANTLR.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- ANTLR.java        1 Apr 2003 13:47:06 -0000       1.21
  +++ ANTLR.java        1 Apr 2003 14:33:28 -0000       1.22
  @@ -275,7 +275,11 @@
       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 @@
                   }
               }
           } else {
  -            log("Skipped grammar file. Generated file is newer.", 
Project.MSG_VERBOSE);
  +            log("Skipped grammar file. Generated file " + generatedFile 
  +                + "is newer.", Project.MSG_VERBOSE);
           }
       }
   
  
  
  
  1.13      +22 -0     
ant/src/testcases/org/apache/tools/ant/taskdefs/optional/ANTLRTest.java
  
  Index: ANTLRTest.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/optional/ANTLRTest.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ANTLRTest.java    1 Apr 2003 10:54:36 -0000       1.12
  +++ ANTLRTest.java    1 Apr 2003 14:33:28 -0000       1.13
  @@ -169,6 +169,28 @@
       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 {
  
  
  

Reply via email to