diff options
author | Raphael Moll <ralf@android.com> | 2012-12-21 15:18:53 -0800 |
---|---|---|
committer | Raphael Moll <ralf@android.com> | 2012-12-21 15:18:53 -0800 |
commit | a544e4876ab0e0e1e996955993c4f6ecd8d06192 (patch) | |
tree | 99a34a405b3e46f015604f2f31dec1a9872f754a /builder | |
parent | a0445c1f9dd3e807e0aedc2163857332a9c303f3 (diff) | |
download | build-a544e4876ab0e0e1e996955993c4f6ecd8d06192.tar.gz |
Fix build tests under Windows.
Change-Id: I27bce90c5a8b05bc149b4a3d8a9a113d74b050e8
Diffstat (limited to 'builder')
-rwxr-xr-x[-rw-r--r--] | builder/src/main/java/com/android/builder/resources/ResourceMerger.java | 10 | ||||
-rwxr-xr-x[-rw-r--r--] | builder/src/main/java/com/android/builder/resources/ResourceSet.java | 8 | ||||
-rw-r--r-- | builder/src/test/java/com/android/builder/internal/incremental/FileManagerTest.java | 7 | ||||
-rwxr-xr-x[-rw-r--r--] | builder/src/test/java/com/android/builder/resources/ResourceMergerTest.java | 35 |
4 files changed, 50 insertions, 10 deletions
diff --git a/builder/src/main/java/com/android/builder/resources/ResourceMerger.java b/builder/src/main/java/com/android/builder/resources/ResourceMerger.java index 96768c0..cc1fc7b 100644..100755 --- a/builder/src/main/java/com/android/builder/resources/ResourceMerger.java +++ b/builder/src/main/java/com/android/builder/resources/ResourceMerger.java @@ -42,6 +42,10 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; +import java.lang.ArrayStoreException; +import java.lang.Override; +import java.lang.String; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -604,4 +608,10 @@ public class ResourceMerger implements ResourceMap { throw new IOException("Failed to create directory: " + folder); } } + + + @Override + public String toString() { + return Arrays.toString(mResourceSets.toArray()); + } } diff --git a/builder/src/main/java/com/android/builder/resources/ResourceSet.java b/builder/src/main/java/com/android/builder/resources/ResourceSet.java index 20a08b4..1e48c45 100644..100755 --- a/builder/src/main/java/com/android/builder/resources/ResourceSet.java +++ b/builder/src/main/java/com/android/builder/resources/ResourceSet.java @@ -32,6 +32,9 @@ import org.w3c.dom.NodeList; import java.io.File; import java.io.IOException; +import java.lang.Override; +import java.lang.String; +import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.Map; @@ -636,4 +639,9 @@ public class ResourceSet implements SourceSet, ResourceMap { return false; } + + @Override + public String toString() { + return Arrays.toString(mSourceFiles.toArray()); + } } diff --git a/builder/src/test/java/com/android/builder/internal/incremental/FileManagerTest.java b/builder/src/test/java/com/android/builder/internal/incremental/FileManagerTest.java index 182d584..78f182d 100644 --- a/builder/src/test/java/com/android/builder/internal/incremental/FileManagerTest.java +++ b/builder/src/test/java/com/android/builder/internal/incremental/FileManagerTest.java @@ -25,6 +25,7 @@ import junit.framework.TestCase; import java.io.File; import java.io.IOException; +import java.util.regex.Matcher; import java.util.Map; public class FileManagerTest extends TestCase { @@ -130,12 +131,12 @@ public class FileManagerTest extends TestCase { String content = Files.toString(file, Charsets.UTF_8); // search and replace $TOP$ with the root and $SEP$ with the platform separator. - content = content.replaceAll("\\$TOP\\$", targetFolder.getAbsolutePath()) - .replaceAll("\\$SEP\\$", File.separator); + content = content.replaceAll("\\$TOP\\$", Matcher.quoteReplacement(targetFolder.getAbsolutePath())) + .replaceAll("\\$SEP\\$", Matcher.quoteReplacement(File.separator)); // now replace the additional placeholders for (Map.Entry<String, String> entry : placeholders.entrySet()) { - content = content.replaceAll(entry.getKey(), entry.getValue()); + content = content.replaceAll(entry.getKey(), Matcher.quoteReplacement(entry.getValue())); } File tmp = File.createTempFile("android", "getDataFile"); diff --git a/builder/src/test/java/com/android/builder/resources/ResourceMergerTest.java b/builder/src/test/java/com/android/builder/resources/ResourceMergerTest.java index cb11499..f3f2623 100644..100755 --- a/builder/src/test/java/com/android/builder/resources/ResourceMergerTest.java +++ b/builder/src/test/java/com/android/builder/resources/ResourceMergerTest.java @@ -16,6 +16,7 @@ package com.android.builder.resources; +import com.android.SdkConstants; import com.android.builder.TestUtils; import com.android.resources.ResourceFolderType; import com.android.resources.ResourceType; @@ -31,9 +32,12 @@ import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; +import java.lang.String; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class ResourceMergerTest extends BaseTestCase { @@ -75,6 +79,10 @@ public class ResourceMergerTest extends BaseTestCase { "integer/integer" ); } + + private String getPlatformPath(String path) { + return path.replaceAll("/", Matcher.quoteReplacement(File.separator)); + } public void testReplacedLayout() throws Exception { ResourceMerger merger = getResourceMerger(); @@ -87,7 +95,8 @@ public class ResourceMergerTest extends BaseTestCase { Resource mainLayout = values.get(1); ResourceFile sourceFile = mainLayout.getSource(); - assertTrue(sourceFile.getFile().getAbsolutePath().endsWith("overlay/layout/main.xml")); + assertTrue(sourceFile.getFile().getAbsolutePath() + .endsWith(getPlatformPath("overlay/layout/main.xml"))); } public void testReplacedAlias() throws Exception { @@ -548,14 +557,14 @@ public class ResourceMergerTest extends BaseTestCase { public void testCheckValidUpdate() throws Exception { // first merger ResourceMerger merger1 = createMerger(new String[][] { - new String[] { "main", "/main/res1", "/main/res2" }, - new String[] { "overlay", "/overlay/res1", "/overlay/res2" }, + new String[] { "main", ("/main/res1"), ("/main/res2") }, + new String[] { "overlay", ("/overlay/res1"), ("/overlay/res2") }, }); // 2nd merger with different order source files in sets. ResourceMerger merger2 = createMerger(new String[][] { - new String[] { "main", "/main/res2", "/main/res1" }, - new String[] { "overlay", "/overlay/res1", "/overlay/res2" }, + new String[] { "main", ("/main/res2"), ("/main/res1") }, + new String[] { "overlay", ("/overlay/res1"), ("/overlay/res2") }, }); assertTrue(merger1.checkValidUpdate(merger2.getResourceSets())); @@ -568,7 +577,18 @@ public class ResourceMergerTest extends BaseTestCase { ResourceMerger loadedMerger = new ResourceMerger(); loadedMerger.loadFromBlob(folder); - assertTrue(loadedMerger.checkValidUpdate(merger1.getResourceSets())); + String expected = merger1.toString(); + String actual = loadedMerger.toString(); + if (SdkConstants.CURRENT_PLATFORM == SdkConstants.PLATFORM_WINDOWS) { + expected = expected.replaceAll(Pattern.quote(File.separator), "/"). + replaceAll("[A-Z]:/", "/"); + actual = actual.replaceAll(Pattern.quote(File.separator), "/"). + replaceAll("[A-Z]:/", "/"); + assertEquals("Actual: " + actual + "\nExpected: " + expected, expected, actual); + } else { + assertTrue("Actual: " + actual + "\nExpected: " + expected, + loadedMerger.checkValidUpdate(merger1.getResourceSets())); + } } public void testCheckValidUpdateFail() throws Exception { @@ -690,7 +710,8 @@ public class ResourceMergerTest extends BaseTestCase { // search and replace $TOP$ with the root and $SEP$ with the platform separator. content = content.replaceAll( - "\\$TOP\\$", folder.getAbsolutePath()).replaceAll("\\$SEP\\$", File.separator); + "\\$TOP\\$", Matcher.quoteReplacement(folder.getAbsolutePath())). + replaceAll("\\$SEP\\$", Matcher.quoteReplacement(File.separator)); File tempFolder = Files.createTempDir(); Files.write(content, new File(tempFolder, ResourceMerger.FN_MERGER_XML), Charsets.UTF_8); |