ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From peterrei...@apache.org
Subject cvs commit: ant/src/etc/testcases/taskdefs/import/subdir serial.xml
Date Thu, 17 Jul 2003 10:39:07 GMT
peterreilly    2003/07/17 03:39:07

  Modified:    src/main/org/apache/tools/ant/taskdefs ImportTask.java
               src/testcases/org/apache/tools/ant/taskdefs ImportTest.java
               src/testcases/org/apache/tools/ant BuildFileTest.java
  Added:       src/etc/testcases/taskdefs/import/subdir serial.xml
  Log:
  Fix for serial import relative files bug
  The import task now uses getLocation().getFileName() to
  get the file that the <import/> task is located and not
  the importstack.
  
  Also the canonical form of the imported file is stored
  in the importstack.
  
  Changed message if imported file is imported more than
  once.
  
  Include unit test for above.
  PR: 21662
  
  Revision  Changes    Path
  1.15      +9 -4      ant/src/main/org/apache/tools/ant/taskdefs/ImportTask.java
  
  Index: ImportTask.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/ImportTask.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- ImportTask.java	17 Jul 2003 09:21:32 -0000	1.14
  +++ ImportTask.java	17 Jul 2003 10:39:07 -0000	1.15
  @@ -125,14 +125,17 @@
               // helper that doesn't set the import.
               throw new BuildException("import requires support in ProjectHelper");
           }
  -        Object currentSource = importStack.elementAt(importStack.size() - 1);
  -
   //        ProjectHelper2.AntXmlContext context;
   //        context=(ProjectHelper2.AntXmlContext)project.getReference("ant.parsing.context");
   
   //        File buildFile=context.buildFile;
   //        File buildFileParent=context.buildFileParent;
  -        File buildFile = (File) currentSource;
  +
  +        if (getLocation() == null || getLocation().getFileName() == null) {
  +            throw new BuildException("Unable to get location of import task");
  +        }
  +
  +        File buildFile = new File(getLocation().getFileName());
           buildFile = new File(buildFile.getAbsolutePath());
           //System.out.println("Importing from " + currentSource);
           File buildFileParent = new File(buildFile.getParent());
  @@ -153,9 +156,11 @@
                       + buildFile.getAbsolutePath());
           }
   
  +        importedFile = new File(getPath(importedFile));
  +
           if (importStack.contains(importedFile)) {
               getProject().log(
  -                "\nSkipped already imported file to avoid loop:\n   "
  +                "Skipped already imported file:\n   "
                   + importedFile + "\n", Project.MSG_WARN);
               return;
           }
  
  
  
  1.4       +7 -5      ant/src/testcases/org/apache/tools/ant/taskdefs/ImportTest.java
  
  Index: ImportTest.java
  ===================================================================
  RCS file: /home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/ImportTest.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ImportTest.java	16 Jul 2003 14:39:08 -0000	1.3
  +++ ImportTest.java	17 Jul 2003 10:39:07 -0000	1.4
  @@ -74,11 +74,7 @@
   
       public void testSimpleImport() {
           configureProject("src/etc/testcases/taskdefs/import/import.xml");
  -        String logMessage = getLog();
  -        String expect = "Before importIn imported topAfter import";
  -        assertTrue("expecting log to contain \"" + expect + "\" log was \""
  -                   + logMessage + "\"",
  -                   logMessage.indexOf(expect) >= 0);
  +        assertLogContaining("Before importIn imported topAfter import");
       }
   
       public void testUnnamedNesting() {
  @@ -87,6 +83,12 @@
           String log = getLog();
           assertTrue("Warnings logged when not expected: " + log,
                       log.length() == 0);
  +    }
  +
  +    public void testSerial() {
  +        configureProject("src/etc/testcases/taskdefs/import/subdir/serial.xml");
  +        assertLogContaining(
  +            "Unnamed2.xmlUnnamed1.xmlSkipped already imported file");
       }
   }
   
  
  
  
  1.24      +12 -4     ant/src/testcases/org/apache/tools/ant/BuildFileTest.java
  
  Index: BuildFileTest.java
  ===================================================================
  RCS file: /home/cvs/ant/src/testcases/org/apache/tools/ant/BuildFileTest.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- BuildFileTest.java	9 Jun 2003 13:38:07 -0000	1.23
  +++ BuildFileTest.java	17 Jul 2003 10:39:07 -0000	1.24
  @@ -108,17 +108,25 @@
           String realLog = getLog();
           assertEquals(log, realLog);
       }
  +    
  +    /**
  +     * Assert that the given substring is in the log messages
  +     */
   
  +    protected void assertLogContaining(String substring) {
  +        String realLog = getLog();
  +        assertTrue("expecting log to contain \"" + substring + "\" log was \""
  +                   + realLog + "\"",
  +                   realLog.indexOf(substring) >= 0);
  +    }
  +    
       /**
        * Assert that the given message has been logged with a priority
        * &gt;= INFO when running the given target.
        */
       protected void expectLogContaining(String target, String log) {
           executeTarget(target);
  -        String realLog = getLog();
  -        assertTrue("expecting log to contain \""+log+"\" log was \""
  -                   + realLog + "\"",
  -                   realLog.indexOf(log) >= 0);
  +        assertLogContaining(log);
       }
   
       /**
  
  
  
  1.1                  ant/src/etc/testcases/taskdefs/import/subdir/serial.xml
  
  Index: serial.xml
  ===================================================================
  <project name="serial">
    <import file="../unnamed1.xml"/>
    <import file="../unnamed2.xml"/>
  </project>
  
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Mime
View raw message