You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by an...@apache.org on 2003/07/11 14:59:30 UTC
cvs commit: ant/src/etc/testcases/core directoryscanner.xml
antoine 2003/07/11 05:59:30
Modified: src/testcases/org/apache/tools/ant DirectoryScannerTest.java
Added: src/etc/testcases/core directoryscanner.xml
Log:
added 3 new testcases for DirectoryScanner
Revision Changes Path
1.11 +61 -1 ant/src/testcases/org/apache/tools/ant/DirectoryScannerTest.java
Index: DirectoryScannerTest.java
===================================================================
RCS file: /home/cvs/ant/src/testcases/org/apache/tools/ant/DirectoryScannerTest.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- DirectoryScannerTest.java 7 Mar 2003 11:23:10 -0000 1.10
+++ DirectoryScannerTest.java 11 Jul 2003 12:59:29 -0000 1.11
@@ -62,13 +62,15 @@
import junit.framework.AssertionFailedError;
import java.io.File;
import java.io.IOException;
+import java.util.TreeSet;
+import java.util.Iterator;
/**
* JUnit 3 testcases for org.apache.tools.ant.DirectoryScanner
*
* @author Stefan Bodewig
*/
-public class DirectoryScannerTest extends TestCase {
+public class DirectoryScannerTest extends BuildFileTest {
public DirectoryScannerTest(String name) {super(name);}
@@ -76,6 +78,64 @@
private boolean supportsSymlinks = Os.isFamily("unix")
&& !JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1);
+ public void setUp() {
+ configureProject("src/etc/testcases/core/directoryscanner.xml");
+ getProject().executeTarget("setup");
+ }
+ private void compareFiles(DirectoryScanner ds, String[] expectedFiles, String[] expectedDirectories) {
+ String includedFiles[] = ds.getIncludedFiles();
+ String includedDirectories[] = ds.getIncludedDirectories();
+ assertTrue("expecting : " + expectedFiles.length + " files, present : " + includedFiles.length, includedFiles.length == expectedFiles.length);
+ assertTrue("expecting : " + expectedDirectories.length + " directories, present : " + includedDirectories.length, includedDirectories.length == expectedDirectories.length);
+ TreeSet files = new TreeSet();
+ for (int counter=0; counter < includedFiles.length; counter++) {
+ files.add(includedFiles[counter].replace(File.separatorChar,'/'));
+ }
+ TreeSet directories = new TreeSet();
+ for (int counter=0; counter < includedDirectories.length; counter++) {
+ directories.add(includedDirectories[counter].replace(File.separatorChar,'/'));
+ }
+ String currentfile;
+ Iterator i = files.iterator();
+ int counter = 0;
+ while (i.hasNext()) {
+ currentfile = (String) i.next();
+ assertTrue("expecting file " + expectedFiles[counter], currentfile.equals(expectedFiles[counter]));
+ counter++;
+ }
+ String currentdirectory;
+ Iterator dirit = directories.iterator();
+ counter = 0;
+ while (dirit.hasNext()) {
+ currentdirectory = (String) dirit.next();
+ assertTrue("expecting directory " + expectedDirectories[counter], currentdirectory.equals(expectedDirectories[counter]));
+ counter++;
+ }
+
+ }
+ public void test1() {
+ DirectoryScanner ds = new DirectoryScanner();
+ ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));
+ ds.setIncludes(new String[] {"alpha"});
+ ds.scan();
+ compareFiles(ds, new String[] {} ,new String[] {"alpha"});
+ }
+ public void test2() {
+ DirectoryScanner ds = new DirectoryScanner();
+ ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));
+ ds.setIncludes(new String[] {"alpha/"});
+ ds.scan();
+ compareFiles(ds, new String[] {"alpha/beta/beta.xml", "alpha/beta/gamma/gamma.xml"} ,new String[] {"alpha", "alpha/beta", "alpha/beta/gamma"});
+ }
+ public void test3() {
+ DirectoryScanner ds = new DirectoryScanner();
+ ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));
+ ds.scan();
+ compareFiles(ds, new String[] {"alpha/beta/beta.xml", "alpha/beta/gamma/gamma.xml"} ,new String[] {"", "alpha", "alpha/beta", "alpha/beta/gamma"});
+ }
+ public void tearDown() {
+ getProject().executeTarget("cleanup");
+ }
/**
* Test case for setFollowLinks() and associated funtionality.
* Only supports test on linux, at the moment because Java has
1.1 ant/src/etc/testcases/core/directoryscanner.xml
Index: directoryscanner.xml
===================================================================
<project name="directoryscanner-test" basedir=".">
<property name="tmp.dir" location="tmp"/>
<target name="setup">
<mkdir dir="${tmp.dir}"/>
<mkdir dir="${tmp.dir}/alpha"/>
<mkdir dir="${tmp.dir}/alpha/beta"/>
<mkdir dir="${tmp.dir}/alpha/beta/gamma"/>
<touch file="${tmp.dir}/alpha/beta/gamma/gamma.xml"/>
<touch file="${tmp.dir}/alpha/beta/beta.xml"/>
</target>
<target name="cleanup">
<delete dir="${tmp.dir}" quiet="true"/>
</target>
</project>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
Re: cvs commit: ant/src/etc/testcases/core directoryscanner.xml
Posted by Antoine Levy-Lambert <an...@antbuild.com>.
I have prepared fixes to speed up DirectoryScanner, and I have added new
testcases in DirectoryScannerTest.
I plan to commit my fixes to DirectoryScanner/SelectorUtils next week.
Cheers,
Antoine
----- Original Message -----
From: <an...@apache.org>
To: <an...@apache.org>
Sent: Friday, July 11, 2003 2:59 PM
Subject: cvs commit: ant/src/etc/testcases/core directoryscanner.xml
> antoine 2003/07/11 05:59:30
>
> Modified: src/testcases/org/apache/tools/ant
DirectoryScannerTest.java
> Added: src/etc/testcases/core directoryscanner.xml
> Log:
> added 3 new testcases for DirectoryScanner
>
> Revision Changes Path
> 1.11 +61 -1
ant/src/testcases/org/apache/tools/ant/DirectoryScannerTest.java
>
> Index: DirectoryScannerTest.java
> ===================================================================
> RCS file:
/home/cvs/ant/src/testcases/org/apache/tools/ant/DirectoryScannerTest.java,v
> retrieving revision 1.10
> retrieving revision 1.11
> diff -u -r1.10 -r1.11
> --- DirectoryScannerTest.java 7 Mar 2003 11:23:10 -0000 1.10
> +++ DirectoryScannerTest.java 11 Jul 2003 12:59:29 -0000 1.11
> @@ -62,13 +62,15 @@
> import junit.framework.AssertionFailedError;
> import java.io.File;
> import java.io.IOException;
> +import java.util.TreeSet;
> +import java.util.Iterator;
>
> /**
> * JUnit 3 testcases for org.apache.tools.ant.DirectoryScanner
> *
> * @author Stefan Bodewig
> */
> -public class DirectoryScannerTest extends TestCase {
> +public class DirectoryScannerTest extends BuildFileTest {
>
> public DirectoryScannerTest(String name) {super(name);}
>
> @@ -76,6 +78,64 @@
> private boolean supportsSymlinks = Os.isFamily("unix")
> && !JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1);
>
> + public void setUp() {
> +
configureProject("src/etc/testcases/core/directoryscanner.xml");
> + getProject().executeTarget("setup");
> + }
> + private void compareFiles(DirectoryScanner ds, String[]
expectedFiles, String[] expectedDirectories) {
> + String includedFiles[] = ds.getIncludedFiles();
> + String includedDirectories[] = ds.getIncludedDirectories();
> + assertTrue("expecting : " + expectedFiles.length + " files,
present : " + includedFiles.length, includedFiles.length ==
expectedFiles.length);
> + assertTrue("expecting : " + expectedDirectories.length + "
directories, present : " + includedDirectories.length,
includedDirectories.length == expectedDirectories.length);
> + TreeSet files = new TreeSet();
> + for (int counter=0; counter < includedFiles.length; counter++)
{
> +
files.add(includedFiles[counter].replace(File.separatorChar,'/'));
> + }
> + TreeSet directories = new TreeSet();
> + for (int counter=0; counter < includedDirectories.length;
counter++) {
> +
directories.add(includedDirectories[counter].replace(File.separatorChar,'/')
);
> + }
> + String currentfile;
> + Iterator i = files.iterator();
> + int counter = 0;
> + while (i.hasNext()) {
> + currentfile = (String) i.next();
> + assertTrue("expecting file " + expectedFiles[counter],
currentfile.equals(expectedFiles[counter]));
> + counter++;
> + }
> + String currentdirectory;
> + Iterator dirit = directories.iterator();
> + counter = 0;
> + while (dirit.hasNext()) {
> + currentdirectory = (String) dirit.next();
> + assertTrue("expecting directory " +
expectedDirectories[counter],
currentdirectory.equals(expectedDirectories[counter]));
> + counter++;
> + }
> +
> + }
> + public void test1() {
> + DirectoryScanner ds = new DirectoryScanner();
> + ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));
> + ds.setIncludes(new String[] {"alpha"});
> + ds.scan();
> + compareFiles(ds, new String[] {} ,new String[] {"alpha"});
> + }
> + public void test2() {
> + DirectoryScanner ds = new DirectoryScanner();
> + ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));
> + ds.setIncludes(new String[] {"alpha/"});
> + ds.scan();
> + compareFiles(ds, new String[] {"alpha/beta/beta.xml",
"alpha/beta/gamma/gamma.xml"} ,new String[] {"alpha", "alpha/beta",
"alpha/beta/gamma"});
> + }
> + public void test3() {
> + DirectoryScanner ds = new DirectoryScanner();
> + ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));
> + ds.scan();
> + compareFiles(ds, new String[] {"alpha/beta/beta.xml",
"alpha/beta/gamma/gamma.xml"} ,new String[] {"", "alpha", "alpha/beta",
"alpha/beta/gamma"});
> + }
> + public void tearDown() {
> + getProject().executeTarget("cleanup");
> + }
> /**
> * Test case for setFollowLinks() and associated funtionality.
> * Only supports test on linux, at the moment because Java has
>
>
>
> 1.1 ant/src/etc/testcases/core/directoryscanner.xml
>
> Index: directoryscanner.xml
> ===================================================================
> <project name="directoryscanner-test" basedir=".">
> <property name="tmp.dir" location="tmp"/>
> <target name="setup">
> <mkdir dir="${tmp.dir}"/>
> <mkdir dir="${tmp.dir}/alpha"/>
> <mkdir dir="${tmp.dir}/alpha/beta"/>
> <mkdir dir="${tmp.dir}/alpha/beta/gamma"/>
> <touch file="${tmp.dir}/alpha/beta/gamma/gamma.xml"/>
> <touch file="${tmp.dir}/alpha/beta/beta.xml"/>
> </target>
> <target name="cleanup">
> <delete dir="${tmp.dir}" quiet="true"/>
> </target>
> </project>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
> For additional commands, e-mail: dev-help@ant.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org