From f334365459cf908a8d2fa4ba634a670f1568486c Mon Sep 17 00:00:00 2001 From: Jacobus Martinus Kruithof Date: Fri, 7 Jan 2005 14:04:41 +0000 Subject: [PATCH] Adapted the FileUtils test to show behaviour based on os type. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@277312 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/tools/ant/ProjectTest.java | 59 ++++++--- .../apache/tools/ant/util/FileUtilsTest.java | 123 +++++++++++------- 2 files changed, 111 insertions(+), 71 deletions(-) diff --git a/src/testcases/org/apache/tools/ant/ProjectTest.java b/src/testcases/org/apache/tools/ant/ProjectTest.java index 79212cdec..79d2acef6 100644 --- a/src/testcases/org/apache/tools/ant/ProjectTest.java +++ b/src/testcases/org/apache/tools/ant/ProjectTest.java @@ -20,6 +20,7 @@ package org.apache.tools.ant; import org.apache.tools.ant.input.DefaultInputHandler; import org.apache.tools.ant.input.InputHandler; import org.apache.tools.ant.input.PropertyFileInputHandler; +import org.apache.tools.ant.taskdefs.condition.Os; import org.apache.tools.ant.types.*; import org.apache.tools.ant.util.JavaEnvUtils; @@ -74,27 +75,43 @@ public class ProjectTest extends TestCase { assertEquals(File.separator, p.resolveFile("\\", null).getPath()); - /* - * throw in drive letters - */ - String driveSpec = "C:"; - assertEquals(driveSpec + "\\", - p.resolveFile(driveSpec + "/", null).getPath()); - assertEquals(driveSpec + "\\", - p.resolveFile(driveSpec + "\\", null).getPath()); - String driveSpecLower = "c:"; - assertEquals(driveSpec + "\\", - p.resolveFile(driveSpecLower + "/", null).getPath()); - assertEquals(driveSpec + "\\", - p.resolveFile(driveSpecLower + "\\", null).getPath()); - /* - * promised to eliminate consecutive slashes after drive letter. - */ - assertEquals(driveSpec + "\\", - p.resolveFile(driveSpec + "/////", null).getPath()); - assertEquals(driveSpec + "\\", - p.resolveFile(driveSpec + "\\\\\\\\\\\\", null).getPath()); - + if (Os.isFamily("netware") || Os.isFamily("dos")) { + /* + * throw in drive letters + */ + String driveSpec = "C:"; + assertEquals(driveSpec + "\\", + p.resolveFile(driveSpec + "/", null).getPath()); + assertEquals(driveSpec + "\\", + p.resolveFile(driveSpec + "\\", null).getPath()); + String driveSpecLower = "c:"; + assertEquals(driveSpec + "\\", + p.resolveFile(driveSpecLower + "/", null).getPath()); + assertEquals(driveSpec + "\\", + p.resolveFile(driveSpecLower + "\\", null).getPath()); + /* + * promised to eliminate consecutive slashes after drive letter. + */ + assertEquals(driveSpec + "\\", + p.resolveFile(driveSpec + "/////", null).getPath()); + assertEquals(driveSpec + "\\", + p.resolveFile(driveSpec + "\\\\\\\\\\\\", null).getPath()); + } else { + /* + * drive letters are not used, just to be considered as normal + * part of a name + */ + String driveSpec = "C:"; + assertEquals(driveSpec, + p.resolveFile(driveSpec + "/", null).getPath()); + assertEquals(driveSpec, + p.resolveFile(driveSpec + "\\", null).getPath()); + String driveSpecLower = "c:"; + assertEquals(driveSpecLower, + p.resolveFile(driveSpecLower + "/", null).getPath()); + assertEquals(driveSpecLower, + p.resolveFile(driveSpecLower + "\\", null).getPath()); + } /* * Now test some relative file name magic. */ diff --git a/src/testcases/org/apache/tools/ant/util/FileUtilsTest.java b/src/testcases/org/apache/tools/ant/util/FileUtilsTest.java index 6f71455d0..8dbe3df61 100644 --- a/src/testcases/org/apache/tools/ant/util/FileUtilsTest.java +++ b/src/testcases/org/apache/tools/ant/util/FileUtilsTest.java @@ -109,37 +109,37 @@ public class FileUtilsTest extends TestCase { assertEquals(File.separator, FILE_UTILS.resolveFile(null, "\\").getPath()); - /* - * throw in drive letters - */ - String driveSpec = "C:"; - assertEquals(driveSpec + "\\", - FILE_UTILS.resolveFile(null, driveSpec + "/").getPath()); - assertEquals(driveSpec + "\\", - FILE_UTILS.resolveFile(null, driveSpec + "\\").getPath()); - String driveSpecLower = "c:"; - assertEquals(driveSpec + "\\", - FILE_UTILS.resolveFile(null, driveSpecLower + "/").getPath()); - assertEquals(driveSpec + "\\", - FILE_UTILS.resolveFile(null, driveSpecLower + "\\").getPath()); - /* - * promised to eliminate consecutive slashes after drive letter. - */ - assertEquals(driveSpec + "\\", - FILE_UTILS.resolveFile(null, driveSpec + "/////").getPath()); - assertEquals(driveSpec + "\\", - FILE_UTILS.resolveFile(null, driveSpec + "\\\\\\\\\\\\").getPath()); - - if (Os.isFamily("netware")) { + if (Os.isFamily("dos")) { + /* + * throw in drive letters + */ + String driveSpec = "C:"; + assertEquals(driveSpec + "\\", + FILE_UTILS.resolveFile(null, driveSpec + "/").getPath()); + assertEquals(driveSpec + "\\", + FILE_UTILS.resolveFile(null, driveSpec + "\\").getPath()); + String driveSpecLower = "c:"; + assertEquals(driveSpec + "\\", + FILE_UTILS.resolveFile(null, driveSpecLower + "/").getPath()); + assertEquals(driveSpec + "\\", + FILE_UTILS.resolveFile(null, driveSpecLower + "\\").getPath()); + /* + * promised to eliminate consecutive slashes after drive letter. + */ + assertEquals(driveSpec + "\\", + FILE_UTILS.resolveFile(null, driveSpec + "/////").getPath()); + assertEquals(driveSpec + "\\", + FILE_UTILS.resolveFile(null, driveSpec + "\\\\\\\\\\\\").getPath()); + } else if (Os.isFamily("netware")) { /* * throw in NetWare volume names */ - driveSpec = "SYS:"; + String driveSpec = "SYS:"; assertEquals(driveSpec, FILE_UTILS.resolveFile(null, driveSpec + "/").getPath()); assertEquals(driveSpec, FILE_UTILS.resolveFile(null, driveSpec + "\\").getPath()); - driveSpecLower = "sys:"; + String driveSpecLower = "sys:"; assertEquals(driveSpec, FILE_UTILS.resolveFile(null, driveSpecLower + "/").getPath()); assertEquals(driveSpec, @@ -151,6 +151,20 @@ public class FileUtilsTest extends TestCase { FILE_UTILS.resolveFile(null, driveSpec + "/////").getPath()); assertEquals(driveSpec, FILE_UTILS.resolveFile(null, driveSpec + "\\\\\\\\\\\\").getPath()); + } else { + /* + * drive letters must be considered just normal filenames. + */ + String driveSpec = "C:"; + assertEquals(driveSpec, + FILE_UTILS.resolveFile(null, driveSpec + "/").getPath()); + assertEquals(driveSpec, + FILE_UTILS.resolveFile(null, driveSpec + "\\").getPath()); + String driveSpecLower = "c:"; + assertEquals(driveSpecLower, + FILE_UTILS.resolveFile(null, driveSpecLower + "/").getPath()); + assertEquals(driveSpecLower, + FILE_UTILS.resolveFile(null, driveSpecLower + "\\").getPath()); } /* @@ -191,41 +205,41 @@ public class FileUtilsTest extends TestCase { assertEquals(File.separator, FILE_UTILS.normalize("\\").getPath()); - /* - * throw in drive letters - */ - String driveSpec = "C:"; - assertEquals(driveSpec, - FILE_UTILS.normalize(driveSpec).getPath()); - assertEquals(driveSpec + "\\", - FILE_UTILS.normalize(driveSpec + "/").getPath()); - assertEquals(driveSpec + "\\", - FILE_UTILS.normalize(driveSpec + "\\").getPath()); - String driveSpecLower = "c:"; - assertEquals(driveSpec + "\\", - FILE_UTILS.normalize(driveSpecLower + "/").getPath()); - assertEquals(driveSpec + "\\", - FILE_UTILS.normalize(driveSpecLower + "\\").getPath()); - /* - * promised to eliminate consecutive slashes after drive letter. - */ - assertEquals(driveSpec + "\\", - FILE_UTILS.normalize(driveSpec + "/////").getPath()); - assertEquals(driveSpec + "\\", - FILE_UTILS.normalize(driveSpec + "\\\\\\\\\\\\").getPath()); - - if (Os.isFamily("netware")) { + if (Os.isFamily("dos")) { + /* + * throw in drive letters + */ + String driveSpec = "C:"; + assertEquals(driveSpec, + FILE_UTILS.normalize(driveSpec).getPath()); + assertEquals(driveSpec + "\\", + FILE_UTILS.normalize(driveSpec + "/").getPath()); + assertEquals(driveSpec + "\\", + FILE_UTILS.normalize(driveSpec + "\\").getPath()); + String driveSpecLower = "c:"; + assertEquals(driveSpec + "\\", + FILE_UTILS.normalize(driveSpecLower + "/").getPath()); + assertEquals(driveSpec + "\\", + FILE_UTILS.normalize(driveSpecLower + "\\").getPath()); + /* + * promised to eliminate consecutive slashes after drive letter. + */ + assertEquals(driveSpec + "\\", + FILE_UTILS.normalize(driveSpec + "/////").getPath()); + assertEquals(driveSpec + "\\", + FILE_UTILS.normalize(driveSpec + "\\\\\\\\\\\\").getPath()); + } else if (Os.isFamily("netware")) { /* * throw in NetWare volume names */ - driveSpec = "SYS:"; + String driveSpec = "SYS:"; assertEquals(driveSpec, FILE_UTILS.normalize(driveSpec).getPath()); assertEquals(driveSpec, FILE_UTILS.normalize(driveSpec + "/").getPath()); assertEquals(driveSpec, FILE_UTILS.normalize(driveSpec + "\\").getPath()); - driveSpecLower = "sys:"; + String driveSpecLower = "sys:"; assertEquals(driveSpec, FILE_UTILS.normalize(driveSpecLower).getPath()); assertEquals(driveSpec, @@ -241,6 +255,15 @@ public class FileUtilsTest extends TestCase { FILE_UTILS.normalize(driveSpec + "/////").getPath()); assertEquals(driveSpec, FILE_UTILS.normalize(driveSpec + "\\\\\\\\\\\\").getPath()); + } else { + try { + String driveSpec = "C:"; + assertEquals(driveSpec, + FILE_UTILS.normalize(driveSpec).getPath()); + fail("Expected failure, C: isn't an absolute path on other os's"); + } catch (BuildException e) { + // Passed test + } } /*