From cb5ac70c3e5587fc3904ea742ca9460c3ced40c2 Mon Sep 17 00:00:00 2001 From: Tor Norbye Date: Mon, 10 Dec 2012 09:59:29 -0800 Subject: Unit test fix: make tests more resilient to test jar location Also handle case where $ANDROID_BUILD_TOP is set better. Change-Id: Ib39f275417738af9145697e19f4de085255c1655 --- .../android/tools/lint/checks/AbstractCheckTest.java | 17 +++++++---------- .../tools/lint/checks/JavaPerformanceDetectorTest.java | 10 +++++++++- 2 files changed, 16 insertions(+), 11 deletions(-) (limited to 'lint/cli') diff --git a/lint/cli/src/test/java/com/android/tools/lint/checks/AbstractCheckTest.java b/lint/cli/src/test/java/com/android/tools/lint/checks/AbstractCheckTest.java index d54962a..f57fb9c 100644 --- a/lint/cli/src/test/java/com/android/tools/lint/checks/AbstractCheckTest.java +++ b/lint/cli/src/test/java/com/android/tools/lint/checks/AbstractCheckTest.java @@ -376,18 +376,15 @@ public abstract class AbstractCheckTest extends SdkTestCase { try { File dir = new File(location.toURI()); assertTrue(dir.getPath(), dir.exists()); - File rootDir = dir.getParentFile().getParentFile().getParentFile() - .getParentFile().getParentFile().getParentFile(); - - // check if "settings.gradle" is there. This will let us know if we need - // to go up one extra level, which is the case when running the tests - // from gradle. - File settingsGradle = new File(rootDir, "settings.gradle"); //$NON-NLS-1$ - if (settingsGradle.isFile()) { - rootDir = rootDir.getParentFile(); + while (dir != null) { + File settingsGradle = new File(dir, "settings.gradle"); //$NON-NLS-1$ + if (settingsGradle.exists()) { + return dir.getParentFile(); + } + dir = dir.getParentFile(); } - return rootDir; + return null; } catch (URISyntaxException e) { fail(e.getLocalizedMessage()); } diff --git a/lint/cli/src/test/java/com/android/tools/lint/checks/JavaPerformanceDetectorTest.java b/lint/cli/src/test/java/com/android/tools/lint/checks/JavaPerformanceDetectorTest.java index 9705dff..5d47c5c 100644 --- a/lint/cli/src/test/java/com/android/tools/lint/checks/JavaPerformanceDetectorTest.java +++ b/lint/cli/src/test/java/com/android/tools/lint/checks/JavaPerformanceDetectorTest.java @@ -26,6 +26,7 @@ public class JavaPerformanceDetectorTest extends AbstractCheckTest { } public void test() throws Exception { + boolean isInAospEnvironment = System.getenv("ANDROID_BUILD_TOP") != null; assertEquals( "src/test/pkg/JavaPerformanceTest.java:28: Warning: Avoid object allocations during draw/layout operations (preallocate and reuse instead) [DrawAllocation]\n" + " new String(\"foo\");\n" + @@ -66,6 +67,12 @@ public class JavaPerformanceDetectorTest extends AbstractCheckTest { "src/test/pkg/JavaPerformanceTest.java:190: Warning: Use new SparseIntArray(...) instead for better performance [UseSparseArrays]\n" + " new SparseArray(); // Use SparseIntArray instead\n" + " ~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + + + (isInAospEnvironment ? + "src/test/pkg/JavaPerformanceTest.java:191: Warning: Use new SparseLongArray(...) instead for better performance [UseSparseArrays]\n" + + " new SparseArray(); // Use SparseLongArray instead\n" + + " ~~~~~~~~~~~~~~~~~~~~~~~\n" : "") + + "src/test/pkg/JavaPerformanceTest.java:192: Warning: Use new SparseBooleanArray(...) instead for better performance [UseSparseArrays]\n" + " new SparseArray(); // Use SparseBooleanArray instead\n" + " ~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + @@ -90,7 +97,8 @@ public class JavaPerformanceDetectorTest extends AbstractCheckTest { "src/test/pkg/JavaPerformanceTest.java:150: Warning: Use Double.valueOf(1.0) instead [UseValueOf]\n" + " Double d1 = new Double(1.0);\n" + " ~~~~~~~~~~~~~~~\n" + - "0 errors, 21 warnings\n", + (isInAospEnvironment ? + "0 errors, 22 warnings\n" : "0 errors, 21 warnings\n"), lintProject("src/test/pkg/JavaPerformanceTest.java.txt=>" + "src/test/pkg/JavaPerformanceTest.java")); -- cgit v1.1