xref: /aosp_15_r20/external/dagger2/javatests/dagger/internal/codegen/BUILD (revision f585d8a307d0621d6060bd7e80091fdcbf94fe27)
1*f585d8a3SJacky Wang# Copyright (C) 2017 The Dagger Authors.
2*f585d8a3SJacky Wang#
3*f585d8a3SJacky Wang# Licensed under the Apache License, Version 2.0 (the "License");
4*f585d8a3SJacky Wang# you may not use this file except in compliance with the License.
5*f585d8a3SJacky Wang# You may obtain a copy of the License at
6*f585d8a3SJacky Wang#
7*f585d8a3SJacky Wang# http://www.apache.org/licenses/LICENSE-2.0
8*f585d8a3SJacky Wang#
9*f585d8a3SJacky Wang# Unless required by applicable law or agreed to in writing, software
10*f585d8a3SJacky Wang# distributed under the License is distributed on an "AS IS" BASIS,
11*f585d8a3SJacky Wang# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*f585d8a3SJacky Wang# See the License for the specific language governing permissions and
13*f585d8a3SJacky Wang# limitations under the License.
14*f585d8a3SJacky Wang
15*f585d8a3SJacky Wang# Description:
16*f585d8a3SJacky Wang#   Tests for the Dagger compiler/codegen
17*f585d8a3SJacky Wang
18*f585d8a3SJacky Wangload("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kt_jvm_library")
19*f585d8a3SJacky Wangload("//:build_defs.bzl", "DOCLINT_HTML_AND_SYNTAX")
20*f585d8a3SJacky Wangload("//:test_defs.bzl", "GenJavaTests")
21*f585d8a3SJacky Wang
22*f585d8a3SJacky Wangpackage(default_visibility = ["//:src"])
23*f585d8a3SJacky Wang
24*f585d8a3SJacky Wang# These sources are purposely compiled without the Dagger compiler for certain tests.
25*f585d8a3SJacky Wangkt_jvm_library(
26*f585d8a3SJacky Wang    name = "kt_lib_no_dagger_compiler",
27*f585d8a3SJacky Wang    srcs = [
28*f585d8a3SJacky Wang        "KotlinInjectedQualifier.kt",
29*f585d8a3SJacky Wang        "KotlinObjectWithMemberInjection.kt",
30*f585d8a3SJacky Wang    ],
31*f585d8a3SJacky Wang    deps = [
32*f585d8a3SJacky Wang        "//java/dagger:core",
33*f585d8a3SJacky Wang    ],
34*f585d8a3SJacky Wang)
35*f585d8a3SJacky Wang
36*f585d8a3SJacky Wang# These sources are purposely compiled without the Dagger compiler for certain tests.
37*f585d8a3SJacky Wangjava_library(
38*f585d8a3SJacky Wang    name = "java_lib_no_dagger_compiler",
39*f585d8a3SJacky Wang    srcs = [
40*f585d8a3SJacky Wang        "ComponentProcessorTestClasses.java",
41*f585d8a3SJacky Wang        "InvalidInjectConstructor.java",
42*f585d8a3SJacky Wang    ],
43*f585d8a3SJacky Wang    deps = [
44*f585d8a3SJacky Wang        "//third_party/java/jsr330_inject",
45*f585d8a3SJacky Wang    ],
46*f585d8a3SJacky Wang)
47*f585d8a3SJacky Wang
48*f585d8a3SJacky Wang# TODO(bcorso): Move this into a subpackage.
49*f585d8a3SJacky Wangjava_library(
50*f585d8a3SJacky Wang    name = "compilers",
51*f585d8a3SJacky Wang    srcs = [
52*f585d8a3SJacky Wang        "CompilerMode.java",
53*f585d8a3SJacky Wang        "Compilers.java",
54*f585d8a3SJacky Wang        "ComponentCreatorTestHelper.java",
55*f585d8a3SJacky Wang        "DaggerModuleMethodSubject.java",
56*f585d8a3SJacky Wang        "GeneratingProcessingStep.java",
57*f585d8a3SJacky Wang        "JavaFileBuilder.java",
58*f585d8a3SJacky Wang        "TestUtils.java",
59*f585d8a3SJacky Wang    ],
60*f585d8a3SJacky Wang    deps = [
61*f585d8a3SJacky Wang        "//java/dagger:core",
62*f585d8a3SJacky Wang        "//java/dagger/internal/codegen:package_info",
63*f585d8a3SJacky Wang        "//java/dagger/internal/codegen:processor",
64*f585d8a3SJacky Wang        "//java/dagger/internal/codegen/base",
65*f585d8a3SJacky Wang        "//java/dagger/internal/codegen/binding",
66*f585d8a3SJacky Wang        "//java/dagger/internal/codegen/xprocessing",
67*f585d8a3SJacky Wang        "//java/dagger/internal/codegen/xprocessing:xprocessing-testing",
68*f585d8a3SJacky Wang        "//java/dagger/producers",
69*f585d8a3SJacky Wang        "//java/dagger/testing/compile",
70*f585d8a3SJacky Wang        "//third_party/java/compile_testing",
71*f585d8a3SJacky Wang        "//third_party/java/guava/base",
72*f585d8a3SJacky Wang        "//third_party/java/guava/collect",
73*f585d8a3SJacky Wang        "//third_party/java/javapoet",
74*f585d8a3SJacky Wang        "//third_party/java/truth",
75*f585d8a3SJacky Wang        "@com_google_auto_value_auto_value//jar",
76*f585d8a3SJacky Wang    ],
77*f585d8a3SJacky Wang)
78*f585d8a3SJacky Wang
79*f585d8a3SJacky Wang# These are tests with over 25 test cases.
80*f585d8a3SJacky WangLARGE_TESTS = [
81*f585d8a3SJacky Wang    "ComponentCreatorTest.java",
82*f585d8a3SJacky Wang    "ComponentProcessorTest.java",
83*f585d8a3SJacky Wang    "InjectConstructorFactoryGeneratorTest.java",
84*f585d8a3SJacky Wang    "MembersInjectionTest.java",
85*f585d8a3SJacky Wang    "MissingBindingValidationTest.java",
86*f585d8a3SJacky Wang    "ModuleFactoryGeneratorTest.java",
87*f585d8a3SJacky Wang    "ProducerModuleFactoryGeneratorTest.java",
88*f585d8a3SJacky Wang    "SubcomponentCreatorValidationTest.java",
89*f585d8a3SJacky Wang]
90*f585d8a3SJacky Wang
91*f585d8a3SJacky Wang# These are tests with over 10 test cases
92*f585d8a3SJacky WangMEDIUM_TESTS = [
93*f585d8a3SJacky Wang    "BindsMethodValidationTest.java",
94*f585d8a3SJacky Wang    "DaggerSuperficialValidationTest.java",
95*f585d8a3SJacky Wang    "DelegateRequestRepresentationTest.java",
96*f585d8a3SJacky Wang    "DuplicateBindingsValidationTest.java",
97*f585d8a3SJacky Wang    "IgnoreProvisionKeyWildcardsTest.java",
98*f585d8a3SJacky Wang    "MapMultibindingValidationTest.java",
99*f585d8a3SJacky Wang    "MultibindsValidationTest.java",
100*f585d8a3SJacky Wang    "ProductionComponentProcessorTest.java",
101*f585d8a3SJacky Wang    "ProductionGraphValidationTest.java",
102*f585d8a3SJacky Wang    "SubcomponentValidationTest.java",
103*f585d8a3SJacky Wang]
104*f585d8a3SJacky Wang
105*f585d8a3SJacky WangDEPS = [
106*f585d8a3SJacky Wang    ":compilers",
107*f585d8a3SJacky Wang    ":java_lib_no_dagger_compiler",
108*f585d8a3SJacky Wang    ":kt_lib_no_dagger_compiler",
109*f585d8a3SJacky Wang    "//third_party/java/guava/base",
110*f585d8a3SJacky Wang    "//third_party/java/guava/collect",
111*f585d8a3SJacky Wang    "//third_party/java/guava/util/concurrent",
112*f585d8a3SJacky Wang    "//third_party/java/auto:value",
113*f585d8a3SJacky Wang    "@com_google_auto_value_auto_value//jar",
114*f585d8a3SJacky Wang    "//third_party/java/auto:common",
115*f585d8a3SJacky Wang    "//third_party/java/compile_testing",
116*f585d8a3SJacky Wang    "//third_party/java/javapoet",
117*f585d8a3SJacky Wang    "//third_party/java/jsr250_annotations",  # Include @Generated in generated files.
118*f585d8a3SJacky Wang    "//third_party/java/jsr330_inject",
119*f585d8a3SJacky Wang    "//third_party/java/junit",
120*f585d8a3SJacky Wang    "//third_party/java/mockito",
121*f585d8a3SJacky Wang    "//third_party/java/truth",
122*f585d8a3SJacky Wang    "//java/dagger:core",
123*f585d8a3SJacky Wang    "//java/dagger/internal/codegen:package_info",
124*f585d8a3SJacky Wang    "//java/dagger/internal/codegen:processor",
125*f585d8a3SJacky Wang    "//java/dagger/internal/codegen/base",
126*f585d8a3SJacky Wang    "//java/dagger/internal/codegen/binding",
127*f585d8a3SJacky Wang    "//java/dagger/internal/codegen/bindinggraphvalidation",
128*f585d8a3SJacky Wang    "//java/dagger/internal/codegen/compileroption",
129*f585d8a3SJacky Wang    "//java/dagger/internal/codegen/extension",
130*f585d8a3SJacky Wang    "//java/dagger/internal/codegen/javac",
131*f585d8a3SJacky Wang    "//java/dagger/internal/codegen/javapoet",
132*f585d8a3SJacky Wang    "//java/dagger/internal/codegen/kotlin",
133*f585d8a3SJacky Wang    "//java/dagger/internal/codegen/langmodel",
134*f585d8a3SJacky Wang    "//java/dagger/internal/codegen/model",
135*f585d8a3SJacky Wang    "//java/dagger/internal/codegen/validation",
136*f585d8a3SJacky Wang    "//java/dagger/internal/codegen/writing",
137*f585d8a3SJacky Wang    "//java/dagger/internal/codegen/xprocessing",
138*f585d8a3SJacky Wang    "//java/dagger/internal/codegen/xprocessing:xprocessing-testing",
139*f585d8a3SJacky Wang    "//java/dagger/model/testing",
140*f585d8a3SJacky Wang    "//java/dagger/producers",
141*f585d8a3SJacky Wang    "//java/dagger/spi",
142*f585d8a3SJacky Wang    "//java/dagger/spi/model/testing",
143*f585d8a3SJacky Wang    "//java/dagger/testing/compile",
144*f585d8a3SJacky Wang    "//java/dagger/testing/golden",
145*f585d8a3SJacky Wang]
146*f585d8a3SJacky Wang
147*f585d8a3SJacky WangGenJavaTests(
148*f585d8a3SJacky Wang    name = "large_compiler_tests",
149*f585d8a3SJacky Wang    srcs = LARGE_TESTS,
150*f585d8a3SJacky Wang    functional = False,
151*f585d8a3SJacky Wang    javacopts = DOCLINT_HTML_AND_SYNTAX,
152*f585d8a3SJacky Wang    plugins = ["//java/dagger/internal/codegen/bootstrap"],
153*f585d8a3SJacky Wang    shard_count = 7,
154*f585d8a3SJacky Wang    deps = DEPS,
155*f585d8a3SJacky Wang)
156*f585d8a3SJacky Wang
157*f585d8a3SJacky WangGenJavaTests(
158*f585d8a3SJacky Wang    name = "medium_compiler_tests",
159*f585d8a3SJacky Wang    srcs = MEDIUM_TESTS,
160*f585d8a3SJacky Wang    functional = False,
161*f585d8a3SJacky Wang    javacopts = DOCLINT_HTML_AND_SYNTAX,
162*f585d8a3SJacky Wang    plugins = ["//java/dagger/internal/codegen/bootstrap"],
163*f585d8a3SJacky Wang    shard_count = 3,
164*f585d8a3SJacky Wang    deps = DEPS,
165*f585d8a3SJacky Wang)
166*f585d8a3SJacky Wang
167*f585d8a3SJacky WangGenJavaTests(
168*f585d8a3SJacky Wang    name = "compiler_tests",
169*f585d8a3SJacky Wang    srcs = glob(
170*f585d8a3SJacky Wang        ["*.java"],
171*f585d8a3SJacky Wang        exclude = [
172*f585d8a3SJacky Wang            "CompilerMode.java",
173*f585d8a3SJacky Wang            "Compilers.java",
174*f585d8a3SJacky Wang            "ComponentCreatorTestHelper.java",
175*f585d8a3SJacky Wang            "ComponentProcessorTestClasses.java",
176*f585d8a3SJacky Wang            "DaggerModuleMethodSubject.java",
177*f585d8a3SJacky Wang            "GeneratingProcessingStep.java",
178*f585d8a3SJacky Wang            "InvalidInjectConstructor.java",
179*f585d8a3SJacky Wang            "JavaFileBuilder.java",
180*f585d8a3SJacky Wang            "TestUtils.java",
181*f585d8a3SJacky Wang        ] + LARGE_TESTS + MEDIUM_TESTS,
182*f585d8a3SJacky Wang    ),
183*f585d8a3SJacky Wang    functional = False,
184*f585d8a3SJacky Wang    javacopts = DOCLINT_HTML_AND_SYNTAX,
185*f585d8a3SJacky Wang    plugins = ["//java/dagger/internal/codegen/bootstrap"],
186*f585d8a3SJacky Wang    deps = DEPS,
187*f585d8a3SJacky Wang)
188