Concerning the case insensitive scanning :

- As a very short term fix, one can bypass the checkIncludePatterns routine
and call scandir(basedir, "", true) in the case of case insensitive
scanning.

- The other possibility is to write (for instance in FileUtils) a routine of
the type
public static File findFileCaseInsensitive(File basedir, String child)
which internally would try all uppercase/lowercase combinations of child and
return null if the file cannot be found, or otherwise the sought file.

Would this be OK ?

Antoine
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, July 16, 2003 1:09 PM
Subject: cvs commit: ant/src/testcases/org/apache/tools/ant
DirectoryScannerTest.java


> bodewig     2003/07/16 04:09:22
>
>   Modified:    src/testcases/org/apache/tools/ant
DirectoryScannerTest.java
>   Log:
>   Add tests for case insensitive matching.
>
>   Both tests with CaseInsensitive in their name fail on Linux, I expect
>   test2ButCaseInsesitive to pass on case insensitive file systems.
>
>   Will be either fixed or disabled shortly.
>
>   Revision  Changes    Path
>   1.14      +29 -0
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.13
>   retrieving revision 1.14
>   diff -u -r1.13 -r1.14
>   --- DirectoryScannerTest.java 16 Jul 2003 10:57:56 -0000 1.13
>   +++ DirectoryScannerTest.java 16 Jul 2003 11:09:19 -0000 1.14
>   @@ -115,6 +115,35 @@
>                                       "alpha/beta/gamma"});
>        }
>
>   +    public void testFullPathMatchesCaseSensitive() {
>   +        DirectoryScanner ds = new DirectoryScanner();
>   +        ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));
>   +        ds.setIncludes(new String[] {"alpha/beta/gamma/GAMMA.XML"});
>   +        ds.scan();
>   +        compareFiles(ds, new String[] {}, new String[] {});
>   +    }
>   +
>   +    public void testFullPathMatchesCaseInsensitive() {
>   +        DirectoryScanner ds = new DirectoryScanner();
>   +        ds.setCaseSensitive(false);
>   +        ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));
>   +        ds.setIncludes(new String[] {"alpha/beta/gamma/GAMMA.XML"});
>   +        ds.scan();
>   +        compareFiles(ds, new String[] {"alpha/beta/gamma/gamma.xml"},
>   +                     new String[] {});
>   +    }
>   +
>   +    public void test2ButCaseInsesitive() {
>   +        DirectoryScanner ds = new DirectoryScanner();
>   +        ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));
>   +        ds.setIncludes(new String[] {"ALPHA/"});
>   +        ds.setCaseSensitive(false);
>   +        ds.scan();
>   +        compareFiles(ds, new String[] {"alpha/beta/beta.xml",
>   +                                       "alpha/beta/gamma/gamma.xml"},
>   +                     new String[] {"alpha", "alpha/beta",
"alpha/beta/gamma"});
>   +    }
>   +
>        // father and child pattern test
>        public void testOrderOfIncludePatternsIrrelevant() {
>            String [] expectedFiles = {"alpha/beta/beta.xml",
>
>
>
>
> ---------------------------------------------------------------------
> 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]

Reply via email to