The departure point of these changes is that the DefaultExcludesTest did not pass any more on Windows, due probably to changes in logging. My guess is : I was getting logs containing \r\n where \n was expected. This brought me to a more "programmatic" way of testing the defaultexcludes task, and to the need to have a reset function. Cheers, Antoine ----- Original Message ----- From: <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, July 21, 2003 12:52 PM Subject: cvs commit: ant/docs/manual/CoreTasks defaultexcludes.html
> antoine 2003/07/21 03:52:20 > > Modified: src/main/org/apache/tools/ant DirectoryScanner.java > src/main/org/apache/tools/ant/taskdefs DefaultExcludes.java > src/etc/testcases/taskdefs defaultexcludes.xml > src/testcases/org/apache/tools/ant/taskdefs > DefaultExcludesTest.java > docs/manual/CoreTasks defaultexcludes.html > Log: > Add a method in DirectoryScanner to reset the default exclude patterns > Add corresponding functionality in <defaultexcludes> > Update tests > > Revision Changes Path > 1.50 +14 -4 ant/src/main/org/apache/tools/ant/DirectoryScanner.java > > Index: DirectoryScanner.java > =================================================================== > RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/DirectoryScanner.java,v > retrieving revision 1.49 > retrieving revision 1.50 > diff -u -r1.49 -r1.50 > --- DirectoryScanner.java 19 Jul 2003 17:08:06 -0000 1.49 > +++ DirectoryScanner.java 21 Jul 2003 10:52:19 -0000 1.50 > @@ -205,11 +205,8 @@ > * @see #addDefaultExcludes() > */ > private static Vector defaultExcludes = new Vector(); > - > static { > - for (int i = 0; i < DEFAULTEXCLUDES.length; i++) { > - defaultExcludes.add(DEFAULTEXCLUDES[i]); > - } > + resetDefaultExcludes(); > } > > /** The base directory to be scanned. */ > @@ -452,6 +449,19 @@ > */ > public static boolean removeDefaultExclude(String s) { > return defaultExcludes.remove(s); > + } > + > + /** > + * Go back to the hard wired default exclude patterns > + * > + * @since Ant 1.6 > + */ > + public static void resetDefaultExcludes() { > + defaultExcludes = new Vector(); > + > + for (int i = 0; i < DEFAULTEXCLUDES.length; i++) { > + defaultExcludes.add(DEFAULTEXCLUDES[i]); > + } > } > > /** > > > > 1.5 +14 -3 ant/src/main/org/apache/tools/ant/taskdefs/DefaultExcludes.java > > Index: DefaultExcludes.java > =================================================================== > RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/DefaultExcludes.java,v > retrieving revision 1.4 > retrieving revision 1.5 > diff -u -r1.4 -r1.5 > --- DefaultExcludes.java 19 Jul 2003 11:20:12 -0000 1.4 > +++ DefaultExcludes.java 21 Jul 2003 10:52:19 -0000 1.5 > @@ -71,7 +71,7 @@ > public class DefaultExcludes extends Task { > private String add = ""; > private String remove = ""; > - > + private boolean defaultrequested = false; > private boolean echo = false; > > // by default, messages are always displayed > @@ -83,11 +83,14 @@ > * @exception BuildException if someting goes wrong with the build > */ > public void execute() throws BuildException { > - if (add.equals("") && remove.equals("") && (echo == false)) { > + if (defaultrequested == false && add.equals("") && remove.equals("") && (echo == false)) { > throw new BuildException("<defaultexcludes> task must set " > - + "at least one atribute (echo=\"false\"" > + + "at least one attribute (echo=\"false\"" > + " doesn't count since that is the default"); > } > + if (defaultrequested == true) { > + DirectoryScanner.resetDefaultExcludes(); > + } > if (!add.equals("")) { > DirectoryScanner.addDefaultExclude(add); > } > @@ -105,6 +108,14 @@ > } > } > > + /** > + * go back to standard default patterns > + * > + * @param def if true go back to default patterns > + */ > + public void setDefault(boolean def) { > + defaultrequested = def; > + } > /** > * Pattern to add to the default excludes > * > > > > 1.2 +2 -4 ant/src/etc/testcases/taskdefs/defaultexcludes.xml > > Index: defaultexcludes.xml > =================================================================== > RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/defaultexcludes.xml,v > retrieving revision 1.1 > retrieving revision 1.2 > diff -u -r1.1 -r1.2 > --- defaultexcludes.xml 9 May 2003 12:10:36 -0000 1.1 > +++ defaultexcludes.xml 21 Jul 2003 10:52:19 -0000 1.2 > @@ -7,13 +7,11 @@ > </target> > > <target name="test2"> > - <defaultexcludes add="foo" echo="true"/> > - <defaultexcludes remove="foo" echo="false"/> > + <defaultexcludes default="true" add="foo" echo="true"/> > </target> > > <target name="test3"> > - <defaultexcludes remove="**/CVS" echo="true"/> > - <defaultexcludes add="**/CVS" echo="false"/> > + <defaultexcludes default="true" remove="**/CVS" echo="true"/> > </target> > > </project> > > > > 1.3 +61 -46 ant/src/testcases/org/apache/tools/ant/taskdefs/DefaultExcludesTest.java > > Index: DefaultExcludesTest.java > =================================================================== > RCS file: /home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/DefaultExcludesTes t.java,v > retrieving revision 1.2 > retrieving revision 1.3 > diff -u -r1.2 -r1.3 > --- DefaultExcludesTest.java 17 Jul 2003 10:20:16 -0000 1.2 > +++ DefaultExcludesTest.java 21 Jul 2003 10:52:19 -0000 1.3 > @@ -55,6 +55,7 @@ > package org.apache.tools.ant.taskdefs; > > import org.apache.tools.ant.BuildFileTest; > +import org.apache.tools.ant.DirectoryScanner; > > /** > * @author Gus Heck <[EMAIL PROTECTED]> > @@ -71,59 +72,73 @@ > > // Output the default excludes > public void test1() { > - expectLog("test1", "Current Default Excludes:\n"+ > - " **/*~\n"+ > - " **/#*#\n"+ > - " **/.#*\n"+ > - " **/%*%\n"+ > - " **/._*\n"+ > - " **/CVS\n"+ > - " **/CVS/**\n"+ > - " **/.cvsignore\n"+ > - " **/SCCS\n"+ > - " **/SCCS/**\n"+ > - " **/vssver.scc\n"+ > - " **/.svn\n"+ > - " **/.svn/**\n"+ > - " **/.DS_Store"); > + String[] expected = { > + "**/*~", > + "**/#*#", > + "**/.#*", > + "**/%*%", > + "**/._*", > + "**/CVS", > + "**/CVS/**", > + "**/.cvsignore", > + "**/SCCS", > + "**/SCCS/**", > + "**/vssver.scc", > + "**/.svn", > + "**/.svn/**", > + "**/.DS_Store"}; > + project.executeTarget("test1"); > + assertEquals("current default excludes", expected, DirectoryScanner.getDefaultExcludes()); > } > > // adding something to the excludes' > public void test2() { > - expectLog("test2", "Current Default Excludes:\n"+ > - " **/*~\n"+ > - " **/#*#\n"+ > - " **/.#*\n"+ > - " **/%*%\n"+ > - " **/._*\n"+ > - " **/CVS\n"+ > - " **/CVS/**\n"+ > - " **/.cvsignore\n"+ > - " **/SCCS\n"+ > - " **/SCCS/**\n"+ > - " **/vssver.scc\n"+ > - " **/.svn\n"+ > - " **/.svn/**\n"+ > - " **/.DS_Store\n"+ > - " foo"); // foo added > + String[] expected = { > + "**/*~", > + "**/#*#", > + "**/.#*", > + "**/%*%", > + "**/._*", > + "**/CVS", > + "**/CVS/**", > + "**/.cvsignore", > + "**/SCCS", > + "**/SCCS/**", > + "**/vssver.scc", > + "**/.svn", > + "**/.svn/**", > + "**/.DS_Store", > + "foo"}; > + project.executeTarget("test2"); > + assertEquals("current default excludes", expected, DirectoryScanner.getDefaultExcludes()); > } > > // removing something from the defaults > public void test3() { > - expectLog("test3", "Current Default Excludes:\n"+ > - " **/*~\n"+ > - " **/#*#\n"+ > - " **/.#*\n"+ > - " **/%*%\n"+ > - " **/._*\n"+ > - //CVS missing > - " **/CVS/**\n"+ > - " **/.cvsignore\n"+ > - " **/SCCS\n"+ > - " **/SCCS/**\n"+ > - " **/vssver.scc\n"+ > - " **/.svn\n"+ > - " **/.svn/**\n"+ > - " **/.DS_Store"); > + String[] expected = { > + "**/*~", > + "**/#*#", > + "**/.#*", > + "**/%*%", > + "**/._*", > + //CVS missing > + "**/CVS/**", > + "**/.cvsignore", > + "**/SCCS", > + "**/SCCS/**", > + "**/vssver.scc", > + "**/.svn", > + "**/.svn/**", > + "**/.DS_Store"}; > + project.executeTarget("test3"); > + assertEquals("current default excludes", expected, DirectoryScanner.getDefaultExcludes()); > + } > + private void assertEquals(String message, String[] expected, String[] actual) { > + // check that both arrays have the same size > + assertEquals(message + " : string array length match", expected.length, actual.length); > + for (int counter=0; counter <expected.length; counter++) { > + assertEquals(message + " : " + counter + "th element in array match", expected[counter], actual[counter]); > + } > + > } > } > > > > 1.2 +11 -5 ant/docs/manual/CoreTasks/defaultexcludes.html > > Index: defaultexcludes.html > =================================================================== > RCS file: /home/cvs/ant/docs/manual/CoreTasks/defaultexcludes.html,v > retrieving revision 1.1 > retrieving revision 1.2 > diff -u -r1.1 -r1.2 > --- defaultexcludes.html 9 May 2003 12:10:35 -0000 1.1 > +++ defaultexcludes.html 21 Jul 2003 10:52:20 -0000 1.2 > @@ -25,18 +25,24 @@ > <tr> > <td valign="top">echo</td> > <td valign="top">whether or not to print out the default excludes.(defaults to false)</td> > - <td valign="top" align="center">atribute "true" required if no > - other argument specified</td> > + <td valign="top" align="center">attribute "true" required if no > + other attribute specified</td> > + </tr> > + <tr> > + <td valign="top">default</td> > + <td valign="top">go back to hard wired default excludes</td> > + <td valign="top" align="center">attribute "true" required if no > + if no other attribute is specified</td> > </tr> > <tr> > <td valign="top">add</td> > <td valign="top">the pattern to add to the default excludes</td> > - <td valign="top" align="center">if no other atribute is specified</td> > + <td valign="top" align="center">if no other attribute is specified</td> > </tr> > <tr> > <td valign="top">remove</td> > <td valign="top">remove the specified pattern from the default excludes</td> > - <td valign="top" align="center">if no other atribute is specified</td> > + <td valign="top" align="center">if no other attribute is specified</td> > </tr> > </table> > > @@ -59,7 +65,7 @@ > > (do several fileset based tasks here) > > - <defaultexcludes add="**/*~"/> > + <defaultexcludes default="true"/> > </pre> > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]