diff --git a/.travis.yml b/.travis.yml index bb46155d4d..ba52ba244d 100755 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,7 @@ language: android jdk: - oraclejdk8 + - openjdk11 android: components: @@ -11,10 +12,11 @@ android: - android-28 before_install: - - yes | sdkmanager "platforms;android-28" + - if [[ "$TRAVIS_JDK_VERSION" == "oraclejdk8" ]]; then yes | sdkmanager "platforms;android-28"; fi script: - - ./gradlew verGJF build + - if [[ "$TRAVIS_JDK_VERSION" == "oraclejdk8" ]]; then ./gradlew verGJF build; fi + - if [[ "$TRAVIS_JDK_VERSION" == "openjdk11" ]]; then ./gradlew :nullaway:test; fi after_success: - .buildscript/deploy_snapshot.sh diff --git a/build.gradle b/build.gradle index 432907e8d0..f1442e84d3 100644 --- a/build.gradle +++ b/build.gradle @@ -52,6 +52,12 @@ subprojects { project -> } } + if (JavaVersion.current().java9Compatible) { + tasks.withType(JavaCompile) { + options.compilerArgs += [ "--release", "8" ] + } + } + repositories { maven { url "https://raw.githubusercontent.com/lazaroclapp/WALA/repository/" diff --git a/nullaway/build.gradle b/nullaway/build.gradle index 408cb82046..063259d0f6 100644 --- a/nullaway/build.gradle +++ b/nullaway/build.gradle @@ -62,11 +62,17 @@ javadoc { test { maxHeapSize = "1024m" - jvmArgs "-Xbootclasspath/p:${configurations.errorproneJavac.asPath}" + if (!JavaVersion.current().java9Compatible) { + jvmArgs "-Xbootclasspath/p:${configurations.errorproneJavac.asPath}" + } } apply from: rootProject.file("gradle/gradle-mvn-push.gradle") +jacoco { + toolVersion = "0.8.2" +} + // From https://github.com/kt3k/coveralls-gradle-plugin jacocoTestReport { reports { diff --git a/nullaway/src/test/java/com/uber/nullaway/NullAwayTest.java b/nullaway/src/test/java/com/uber/nullaway/NullAwayTest.java index 6ca943279b..646014b7e2 100644 --- a/nullaway/src/test/java/com/uber/nullaway/NullAwayTest.java +++ b/nullaway/src/test/java/com/uber/nullaway/NullAwayTest.java @@ -294,6 +294,11 @@ public void externalInitexternalInitSupportFields() { @Test public void generatedAsUnannotated() { + String generatedAnnot = + (Double.parseDouble(System.getProperty("java.specification.version")) >= 11) + ? "@javax.annotation.processing.Generated" + : "@javax.annotation.Generated"; + System.err.println(); compilationHelper .setArgs( Arrays.asList( @@ -304,7 +309,7 @@ public void generatedAsUnannotated() { .addSourceLines( "Generated.java", "package com.uber;", - "@javax.annotation.Generated(\"foo\")", + generatedAnnot + "(\"foo\")", "public class Generated { public void takeObj(Object o) {} }") .addSourceLines( "Test.java", @@ -317,6 +322,10 @@ public void generatedAsUnannotated() { @Test public void generatedAsUnannotatedPlusRestrictive() { + String generatedAnnot = + (Double.parseDouble(System.getProperty("java.specification.version")) >= 11) + ? "@javax.annotation.processing.Generated" + : "@javax.annotation.Generated"; compilationHelper .setArgs( Arrays.asList( @@ -328,7 +337,7 @@ public void generatedAsUnannotatedPlusRestrictive() { .addSourceLines( "Generated.java", "package com.uber;", - "@javax.annotation.Generated(\"foo\")", + generatedAnnot + "(\"foo\")", "public class Generated {", " @javax.annotation.Nullable", " public Object retNull() {", diff --git a/nullaway/src/test/resources/com/uber/nullaway/testdata/NullAwayNativeModels.java b/nullaway/src/test/resources/com/uber/nullaway/testdata/NullAwayNativeModels.java index 8d8d76f1a9..773e4b84e5 100644 --- a/nullaway/src/test/resources/com/uber/nullaway/testdata/NullAwayNativeModels.java +++ b/nullaway/src/test/resources/com/uber/nullaway/testdata/NullAwayNativeModels.java @@ -253,8 +253,9 @@ static void arrayDequeStuff() { d.offer(null); // BUG: Diagnostic contains: passing @Nullable parameter 'null' where @NonNull is required d.push(null); - // BUG: Diagnostic contains: passing @Nullable parameter 'null' where @NonNull is required - d.toArray(null); + Object[] o = null; + // BUG: Diagnostic contains: passing @Nullable parameter 'o' where @NonNull is required + d.toArray(o); // this should be fine d.toArray(); } @@ -275,8 +276,9 @@ static void dequeStuff() { d.offer(null); // BUG: Diagnostic contains: passing @Nullable parameter 'null' where @NonNull is required d.push(null); - // BUG: Diagnostic contains: passing @Nullable parameter 'null' where @NonNull is required - d.toArray(null); + Object[] o = null; + // BUG: Diagnostic contains: passing @Nullable parameter 'o' where @NonNull is required + d.toArray(o); } static void guavaStuff() {