xref: /aosp_15_r20/external/nullaway/guava-recent-unit-tests/build.gradle (revision f50c306653bc89b8210ce6c9e0b0b44fc134bc03)
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