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