1*f50c3066SAndroid Build Coastguard Worker/* 2*f50c3066SAndroid Build Coastguard Worker * Copyright (C) 2022. Uber Technologies 3*f50c3066SAndroid Build Coastguard Worker * 4*f50c3066SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*f50c3066SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*f50c3066SAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*f50c3066SAndroid Build Coastguard Worker * 8*f50c3066SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*f50c3066SAndroid Build Coastguard Worker * 10*f50c3066SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*f50c3066SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*f50c3066SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*f50c3066SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*f50c3066SAndroid Build Coastguard Worker * limitations under the License. 15*f50c3066SAndroid Build Coastguard Worker */ 16*f50c3066SAndroid Build Coastguard Workerplugins { 17*f50c3066SAndroid Build Coastguard Worker id 'java-library' 18*f50c3066SAndroid Build Coastguard Worker id 'nullaway.java-test-conventions' 19*f50c3066SAndroid Build Coastguard Worker} 20*f50c3066SAndroid Build Coastguard Worker 21*f50c3066SAndroid Build Coastguard Worker// We need this separate build target to test newer versions of Guava 22*f50c3066SAndroid Build Coastguard Worker// (e.g. 31+) than that which NullAway currently depends on. 23*f50c3066SAndroid Build Coastguard Worker 24*f50c3066SAndroid Build Coastguard Workerdependencies { 25*f50c3066SAndroid Build Coastguard Worker testImplementation project(":nullaway") 26*f50c3066SAndroid Build Coastguard Worker testImplementation deps.test.junit4 27*f50c3066SAndroid Build Coastguard Worker testImplementation(deps.build.errorProneTestHelpers) { 28*f50c3066SAndroid Build Coastguard Worker exclude group: "junit", module: "junit" 29*f50c3066SAndroid Build Coastguard Worker } 30*f50c3066SAndroid Build Coastguard Worker testImplementation deps.build.jsr305Annotations 31*f50c3066SAndroid Build Coastguard Worker testImplementation "com.google.guava:guava:31.1-jre" 32*f50c3066SAndroid Build Coastguard Worker} 33*f50c3066SAndroid Build Coastguard Worker 34*f50c3066SAndroid Build Coastguard Worker// Create a task to test on JDK 8 35*f50c3066SAndroid Build Coastguard Workerdef jdk8Test = tasks.register("testJdk8", Test) { 36*f50c3066SAndroid Build Coastguard Worker onlyIf { 37*f50c3066SAndroid Build Coastguard Worker // Only if we are using a version of Error Prone compatible with JDK 8 38*f50c3066SAndroid Build Coastguard Worker deps.versions.errorProneApi == "2.10.0" 39*f50c3066SAndroid Build Coastguard Worker } 40*f50c3066SAndroid Build Coastguard Worker 41*f50c3066SAndroid Build Coastguard Worker javaLauncher = javaToolchains.launcherFor { 42*f50c3066SAndroid Build Coastguard Worker languageVersion = JavaLanguageVersion.of(8) 43*f50c3066SAndroid Build Coastguard Worker } 44*f50c3066SAndroid Build Coastguard Worker 45*f50c3066SAndroid Build Coastguard Worker description = "Runs the test suite on JDK 8" 46*f50c3066SAndroid Build Coastguard Worker group = LifecycleBasePlugin.VERIFICATION_GROUP 47*f50c3066SAndroid Build Coastguard Worker 48*f50c3066SAndroid Build Coastguard Worker // Copy inputs from normal Test task. 49*f50c3066SAndroid Build Coastguard Worker def testTask = tasks.getByName("test") 50*f50c3066SAndroid Build Coastguard Worker classpath = testTask.classpath 51*f50c3066SAndroid Build Coastguard Worker testClassesDirs = testTask.testClassesDirs 52*f50c3066SAndroid Build Coastguard Worker jvmArgs "-Xbootclasspath/p:${configurations.errorproneJavac.asPath}" 53*f50c3066SAndroid Build Coastguard Worker} 54*f50c3066SAndroid Build Coastguard Worker 55*f50c3066SAndroid Build Coastguard Workertasks.named('check').configure { 56*f50c3066SAndroid Build Coastguard Worker dependsOn(jdk8Test) 57*f50c3066SAndroid Build Coastguard Worker} 58