diff options
Diffstat (limited to 'lint/libs')
-rw-r--r-- | lint/libs/lint_api/build.gradle | 76 | ||||
-rw-r--r-- | lint/libs/lint_checks/build.gradle | 82 | ||||
-rw-r--r-- | lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/AbstractCheckTest.java | 72 |
3 files changed, 201 insertions, 29 deletions
diff --git a/lint/libs/lint_api/build.gradle b/lint/libs/lint_api/build.gradle new file mode 100644 index 0000000..315c2bb --- /dev/null +++ b/lint/libs/lint_api/build.gradle @@ -0,0 +1,76 @@ +dependencies { + compile project(':common') + compile project(':sdklib') + compile project(':layoutlib_api') + + compile 'com.google.guava:guava:13.0.1' + compile 'org.projectlombok:lombok.ast:0.2' + compile 'org.ow2.asm:asm:4.0' + compile 'org.ow2.asm:asm-tree:4.0' +} + +def getVersion() { + if (project.has("release")) { + return project.ext.baseVersion + } + + return project.ext.baseVersion + '-SNAPSHOT' +} + +version = getVersion() +group = 'com.android.tools.lint' +archivesBaseName = 'lint-api' + +sourceSets { + main { + java { + srcDir 'src' + } + resources { + srcDir 'src' + } + } +} + +uploadArchives { + repositories { + mavenDeployer { + beforeDeployment { MavenDeployment deployment -> + if (!project.has("release")) { + throw new StopExecutionException("uploadArchives must be called with the release.gradle init script") + } + + signing.signPom(deployment) + } + + repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { + authentication(userName: sonatypeUsername, password: sonatypePassword) + } + + pom.project { + name 'Android Tools Lint API' + description 'API to build lint checks' + url 'http://tools.android.com' + inceptionYear '2007' + + licenses { + license { + name 'The Apache Software License, Version 2.0' + url 'http://www.apache.org/licenses/LICENSE-2.0.txt' + distribution 'repo' + } + } + + scm { + url "https://android.googlesource.com/platform/sdk" + connection "git://android.googlesource.com/platform/sdk.git" + } + developers { + developer { + name 'The Android Open Source Project' + } + } + } + } + } +} diff --git a/lint/libs/lint_checks/build.gradle b/lint/libs/lint_checks/build.gradle new file mode 100644 index 0000000..53a3cf8 --- /dev/null +++ b/lint/libs/lint_checks/build.gradle @@ -0,0 +1,82 @@ +dependencies { + compile project(':lint_api') + compile 'org.ow2.asm:asm-analysis:4.0' + + testCompile 'org.easymock:easymock:3.1' + testCompile 'junit:junit:3.8.1' + testCompile project(':lint') +} + +def getVersion() { + if (project.has("release")) { + return project.ext.baseVersion + } + + return project.ext.baseVersion + '-SNAPSHOT' +} + +version = getVersion() +group = 'com.android.tools.lint' +archivesBaseName = 'lint-checks' + +sourceSets { + main { + java { + srcDir 'src' + } + resources { + srcDir 'src' + } + } + test { + java { + srcDir 'tests/src' + } + resources { + srcDir 'tests/src' + } + } +} + +uploadArchives { + repositories { + mavenDeployer { + beforeDeployment { MavenDeployment deployment -> + if (!project.has("release")) { + throw new StopExecutionException("uploadArchives must be called with the release.gradle init script") + } + + signing.signPom(deployment) + } + + repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { + authentication(userName: sonatypeUsername, password: sonatypePassword) + } + + pom.project { + name 'Android Lint Checks' + description 'Checks for Android Lint' + url 'http://tools.android.com' + inceptionYear '2007' + + licenses { + license { + name 'The Apache Software License, Version 2.0' + url 'http://www.apache.org/licenses/LICENSE-2.0.txt' + distribution 'repo' + } + } + + scm { + url "https://android.googlesource.com/platform/sdk" + connection "git://android.googlesource.com/platform/sdk.git" + } + developers { + developer { + name 'The Android Open Source Project' + } + } + } + } + } +} diff --git a/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/AbstractCheckTest.java b/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/AbstractCheckTest.java index 9826398..e7774f5 100644 --- a/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/AbstractCheckTest.java +++ b/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/AbstractCheckTest.java @@ -245,6 +245,7 @@ public abstract class AbstractCheckTest extends TestCase { } Files.copy(new InputSupplier<InputStream>() { + @Override public InputStream getInput() throws IOException { return contents; } @@ -436,38 +437,20 @@ public abstract class AbstractCheckTest extends TestCase { @Override public File findResource(String relativePath) { if (relativePath.equals("platform-tools/api/api-versions.xml")) { - CodeSource source = getClass().getProtectionDomain().getCodeSource(); - if (source != null) { - URL location = source.getLocation(); - try { - File dir = new File(location.toURI()); - assertTrue(dir.getPath(), dir.exists()); - File sdkDir = dir.getParentFile().getParentFile().getParentFile() - .getParentFile().getParentFile().getParentFile(); - File file = new File(sdkDir, "development" + File.separator + "sdk" - + File.separator + "api-versions.xml"); - return file; - } catch (URISyntaxException e) { - fail(e.getLocalizedMessage()); - } + File rootDir = getRootDir(); + if (rootDir != null) { + File file = new File(rootDir, "development" + File.separator + "sdk" + + File.separator + "api-versions.xml"); + return file; } } else if (relativePath.startsWith("tools/support/")) { String base = relativePath.substring("tools/support/".length()); - CodeSource source = getClass().getProtectionDomain().getCodeSource(); - if (source != null) { - URL location = source.getLocation(); - try { - File dir = new File(location.toURI()); - assertTrue(dir.getPath(), dir.exists()); - File sdkDir = dir.getParentFile().getParentFile().getParentFile() - .getParentFile().getParentFile().getParentFile(); - File file = new File(sdkDir, "sdk" + File.separator + "files" - + File.separator + "typos" - + File.separator + base); - return file; - } catch (URISyntaxException e) { - fail(e.getLocalizedMessage()); - } + File rootDir = getRootDir(); + if (rootDir != null) { + File file = new File(rootDir, "sdk" + File.separator + "files" + + File.separator + "typos" + + File.separator + base); + return file; } } else { fail("Unit tests don't support arbitrary resource lookup yet."); @@ -477,6 +460,37 @@ public abstract class AbstractCheckTest extends TestCase { } } + /** + * Returns the Android source tree root dir. + * @return the root dir or null if it couldn't be computed. + */ + private File getRootDir() { + CodeSource source = getClass().getProtectionDomain().getCodeSource(); + if (source != null) { + URL location = source.getLocation(); + 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(); + } + + return rootDir; + } catch (URISyntaxException e) { + fail(e.getLocalizedMessage()); + } + } + + return null; + } + public class TestConfiguration extends Configuration { @Override public boolean isEnabled(Issue issue) { |