blob: 90c7482ae3fd26a21f272ccb5268363bfee7500c [file] [log] [blame]
load("//tools/base/bazel:maven.bzl", "maven_repository")
load("//tools/base/build-system/integration-test:common-dependencies.bzl", "KGP_VERSION_FOR_TESTS", "KGP_1_9_22", "KGP_1_8_10")
load("//tools/base/build-system/integration-test:integration-test.bzl", "gradle_integration_test", "single_gradle_integration_test_per_source")
load("//tools/base/build-system/integration-test:integration-test.bzl", "single_gradle_integration_test")
#keep sorted
TEST_DEPS = [
"//tools/analytics-library/protos/src/main/proto",
"//tools/apksig",
"//tools/apkzlib",
"//tools/base/annotations",
"//tools/base/apkparser/analyzer:tools.analyzer",
"//tools/base/build-analyzer/common",
"//tools/base/build-system:gradle-api",
"//tools/base/build-system/builder",
"//tools/base/build-system/builder-model",
"//tools/base/build-system/builder-test-api:tools.builder-test-api",
"//tools/base/build-system/gradle-api",
"//tools/base/build-system/gradle-core",
"//tools/base/build-system/integration-test/framework",
"//tools/base/build-system/integration-test/framework/src/main/proto",
"//tools/base/build-system/shrinker",
"//tools/base/common:tools.common",
"//tools/base/ddmlib:tools.ddmlib",
"//tools/base/profgen/profgen",
"//tools/base/repository:tools.testlib",
"//tools/base/sdk-common:tools.sdk-common",
"//tools/base/sdklib:tools.sdklib",
"//tools/base/testutils:tools.testutils",
"//tools/base/zipflinger",
"@maven//:com.android.tools.smali.smali-dexlib2",
"@maven//:org.jetbrains.dokka.dokka-core",
"@maven//:org.ow2.asm.asm",
"@maven//:org.ow2.asm.asm-tree",
]
OLD_SDKS = [
"//prebuilts/studio/sdk:platforms/android-19_build_only",
"//prebuilts/studio/sdk:platforms/android-21_build_only",
"//prebuilts/studio/sdk:platforms/android-23_build_only",
"//prebuilts/studio/sdk:platforms/android-24_build_only",
"//prebuilts/studio/sdk:platforms/android-29_build_only",
]
#keep sorted
TEST_DATA = [
"//prebuilts/studio/jdk/jdk17:jdk17_runtime_files",
"//prebuilts/studio/sdk:add-ons/addon-google_apis-google-latest",
"//prebuilts/studio/sdk:build-tools/latest",
"//prebuilts/studio/sdk:platform-tools",
"//tools/base/build-system:gradle-distrib",
"//tools/base/build-system/aapt2:aapt2_for_tests",
"//tools/base/build-system/integration-test:android_platform_for_tests",
"//tools/base/build-system/integration-test:test-projects/BasicRenderScript",
"//tools/base/build-system/integration-test:test-projects/additionalTestOutput",
"//tools/base/build-system/integration-test:test-projects/additionalTestOutputOverride",
"//tools/base/build-system/integration-test:test-projects/androidManifestInTest",
"//tools/base/build-system/integration-test:test-projects/api",
"//tools/base/build-system/integration-test:test-projects/apiBinaryCompatibility",
"//tools/base/build-system/integration-test:test-projects/appWithTests",
"//tools/base/build-system/integration-test:test-projects/applibtest",
"//tools/base/build-system/integration-test:test-projects/applicationIdInLibsTest",
"//tools/base/build-system/integration-test:test-projects/artifactApi",
"//tools/base/build-system/integration-test:test-projects/asmTransformApi",
"//tools/base/build-system/integration-test:test-projects/assets",
"//tools/base/build-system/integration-test:test-projects/attrOrder",
"//tools/base/build-system/integration-test:test-projects/basic",
"//tools/base/build-system/integration-test:test-projects/basicMultiFlavors",
"//tools/base/build-system/integration-test:test-projects/builderTestingApiUse",
"//tools/base/build-system/integration-test:test-projects/bytecodeGenerationHooks",
"//tools/base/build-system/integration-test:test-projects/combinedAbiDensitySplits",
"//tools/base/build-system/integration-test:test-projects/combinedDensityAndLanguageSplits",
"//tools/base/build-system/integration-test:test-projects/compileRClasses",
"//tools/base/build-system/integration-test:test-projects/composeHelloWorld",
"//tools/base/build-system/integration-test:test-projects/customArtifactDep",
"//tools/base/build-system/integration-test:test-projects/daggerTwo",
"//tools/base/build-system/integration-test:test-projects/databindingIncremental",
"//tools/base/build-system/integration-test:test-projects/densitySplit",
"//tools/base/build-system/integration-test:test-projects/dependencies",
"//tools/base/build-system/integration-test:test-projects/dynamicApp",
"//tools/base/build-system/integration-test:test-projects/embedded",
"//tools/base/build-system/integration-test:test-projects/emptyApp",
"//tools/base/build-system/integration-test:test-projects/extractAnnotations",
"//tools/base/build-system/integration-test:test-projects/extractRsEnabledAnnotations",
"//tools/base/build-system/integration-test:test-projects/flavored",
"//tools/base/build-system/integration-test:test-projects/flavoredlib",
"//tools/base/build-system/integration-test:test-projects/flavorlib",
"//tools/base/build-system/integration-test:test-projects/flavors",
"//tools/base/build-system/integration-test:test-projects/genFolderApi",
"//tools/base/build-system/integration-test:test-projects/genFolderApi2",
"//tools/base/build-system/integration-test:test-projects/jacocoOnlySubprojectBuildScriptDependency",
"//tools/base/build-system/integration-test:test-projects/jacocoWithButterKnife",
"//tools/base/build-system/integration-test:test-projects/jarjarIntegration",
"//tools/base/build-system/integration-test:test-projects/jarjarIntegrationLib",
"//tools/base/build-system/integration-test:test-projects/jetifier",
"//tools/base/build-system/integration-test:test-projects/kotlinApp",
"//tools/base/build-system/integration-test:test-projects/kotlinAppWithKsp",
"//tools/base/build-system/integration-test:test-projects/kotlinMultiplatform",
"//tools/base/build-system/integration-test:test-projects/kotlinWithEclipseSourceSet",
"//tools/base/build-system/integration-test:test-projects/libDependency",
"//tools/base/build-system/integration-test:test-projects/libMinify",
"//tools/base/build-system/integration-test:test-projects/libMinifyJarDep",
"//tools/base/build-system/integration-test:test-projects/libMinifyLibDep",
"//tools/base/build-system/integration-test:test-projects/libProguardConsumerFiles",
"//tools/base/build-system/integration-test:test-projects/libTestDep",
"//tools/base/build-system/integration-test:test-projects/libsTest",
"//tools/base/build-system/integration-test:test-projects/lintDeps",
"//tools/base/build-system/integration-test:test-projects/lintLibraryModel",
"//tools/base/build-system/integration-test:test-projects/lintLibrarySkipDeps",
"//tools/base/build-system/integration-test:test-projects/lintMultipleLintJars",
"//tools/base/build-system/integration-test:test-projects/lintResourceResolve",
"//tools/base/build-system/integration-test:test-projects/localAarTest",
"//tools/base/build-system/integration-test:test-projects/localJars",
"//tools/base/build-system/integration-test:test-projects/maxSdkVersion",
"//tools/base/build-system/integration-test:test-projects/migrated",
"//tools/base/build-system/integration-test:test-projects/minify",
"//tools/base/build-system/integration-test:test-projects/minifyLib",
"//tools/base/build-system/integration-test:test-projects/minifyLibWithJavaRes",
"//tools/base/build-system/integration-test:test-projects/multiCompositeBuild",
"//tools/base/build-system/integration-test:test-projects/multiDex",
"//tools/base/build-system/integration-test:test-projects/multiDexWithLib",
"//tools/base/build-system/integration-test:test-projects/multiproject",
"//tools/base/build-system/integration-test:test-projects/multires",
"//tools/base/build-system/integration-test:test-projects/namespacedApp",
"//tools/base/build-system/integration-test:test-projects/navigation",
"//tools/base/build-system/integration-test:test-projects/ndkJniLib",
"//tools/base/build-system/integration-test:test-projects/ndkLibPrebuilts",
"//tools/base/build-system/integration-test:test-projects/ndkPrebuilts",
"//tools/base/build-system/integration-test:test-projects/ndkSanAngeles",
"//tools/base/build-system/integration-test:test-projects/noPngCrunch",
"//tools/base/build-system/integration-test:test-projects/optionalLibInLibWithProguard",
"//tools/base/build-system/integration-test:test-projects/overlay1",
"//tools/base/build-system/integration-test:test-projects/overlay2",
"//tools/base/build-system/integration-test:test-projects/overlay3",
"//tools/base/build-system/integration-test:test-projects/pkgOverride",
"//tools/base/build-system/integration-test:test-projects/placeholderInLibsTest",
"//tools/base/build-system/integration-test:test-projects/prefabApp",
"//tools/base/build-system/integration-test:test-projects/prefabPublishing",
"//tools/base/build-system/integration-test:test-projects/privateResources",
"//tools/base/build-system/integration-test:test-projects/projectWithClassifierDep",
"//tools/base/build-system/integration-test:test-projects/projectWithIvyDependency",
"//tools/base/build-system/integration-test:test-projects/projectWithLocalDeps",
"//tools/base/build-system/integration-test:test-projects/projectWithModules",
"//tools/base/build-system/integration-test:test-projects/pseudolocalized",
"//tools/base/build-system/integration-test:test-projects/renamedApk",
"//tools/base/build-system/integration-test:test-projects/renderscriptNdk",
"//tools/base/build-system/integration-test:test-projects/repo",
"//tools/base/build-system/integration-test:test-projects/rsSupportMode",
"//tools/base/build-system/integration-test:test-projects/sameNamedLibs",
"//tools/base/build-system/integration-test:test-projects/separateTestModule",
"//tools/base/build-system/integration-test:test-projects/separateTestModuleWithDependencies",
"//tools/base/build-system/integration-test:test-projects/separateTestModuleWithMinifiedApp",
"//tools/base/build-system/integration-test:test-projects/separateTestWithMinificationButNoObfuscation",
"//tools/base/build-system/integration-test:test-projects/shrink",
"//tools/base/build-system/integration-test:test-projects/shrinkDynamicFeatureModules",
"//tools/base/build-system/integration-test:test-projects/simpleCompositeBuild",
"//tools/base/build-system/integration-test:test-projects/simpleManifestMergingTask",
"//tools/base/build-system/integration-test:test-projects/simpleMicroApp",
"//tools/base/build-system/integration-test:test-projects/sourceDependency",
"//tools/base/build-system/integration-test:test-projects/testDependency",
"//tools/base/build-system/integration-test:test-projects/testFixturesApp",
"//tools/base/build-system/integration-test:test-projects/testFixturesKotlinApp",
"//tools/base/build-system/integration-test:test-projects/testWithDep",
"//tools/base/build-system/integration-test:test-projects/tictactoe",
"//tools/base/build-system/integration-test:test-projects/transformApiTest",
"//tools/base/build-system/integration-test:test-projects/unitTesting",
"//tools/base/build-system/integration-test:test-projects/unitTestingAndroidResources",
"//tools/base/build-system/integration-test:test-projects/unitTestingBuildTypes",
"//tools/base/build-system/integration-test:test-projects/unitTestingComplexProject",
"//tools/base/build-system/integration-test:test-projects/unitTestingDefaultValues",
"//tools/base/build-system/integration-test:test-projects/unitTestingFlavors",
"//tools/base/build-system/integration-test:test-projects/vectorDrawables",
"//tools/base/build-system/integration-test:test-projects/vulkan",
]
AUTOMATIC_TEST_DATA = TEST_DATA + OLD_SDKS + [
#keep sorted
"//prebuilts/studio/sdk:cmake",
"//prebuilts/studio/sdk:ndk",
"//prebuilts/studio/sdk:ndk-bundle",
"//prebuilts/tools/common/cmake:cmake-3.8.2",
# These test-projects are only used in CheckAll.
"//tools/base/build-system/integration-test:test-projects/androidTestLibDep",
"//tools/base/build-system/integration-test:test-projects/conditionalApiUse",
"//tools/base/build-system/integration-test:test-projects/daggerOne",
"//tools/base/build-system/integration-test:test-projects/dependenciesWithVariants",
"//tools/base/build-system/integration-test:test-projects/emptySplit",
"//tools/base/build-system/integration-test:test-projects/flavorlibWithFailedTests",
"//tools/base/build-system/integration-test:test-projects/instantRunLibraryAdd",
"//tools/base/build-system/integration-test:test-projects/mavenLocal",
"//tools/base/build-system/integration-test:test-projects/noPreDex",
"//tools/base/build-system/integration-test:test-projects/packagingOptions",
"//tools/base/build-system/integration-test:test-projects/renderscript",
"//tools/base/build-system/integration-test:test-projects/renderscriptInLib",
"//tools/base/build-system/integration-test:test-projects/renderscriptMultiSrc",
"//tools/base/build-system/integration-test:test-projects/splitAwareSeparateTestModule",
]
NDK_27 = [
"//prebuilts/studio/sdk:ndk-27",
]
# These sources need to compiled together as there are inter-dependencies. Avoid adding more.
SOURCES_TO_COMPILE_TOGETHER = [
"src/test/java/com/android/build/gradle/integration/application/testData/*",
"src/test/java/com/android/build/gradle/integration/application/AnalyzeDependenciesTest.kt",
"src/test/java/com/android/build/gradle/integration/application/CoreLibraryDesugarTest.kt",
"src/test/java/com/android/build/gradle/integration/application/CoreLibraryDesugarConversionTest.kt",
"src/test/java/com/android/build/gradle/integration/application/CustomClassTransformTest.kt",
"src/test/java/com/android/build/gradle/integration/application/MinSdkVersionTest.kt",
"src/test/java/com/android/build/gradle/integration/application/MultiDexTest.java",
"src/test/java/com/android/build/gradle/integration/application/OptimizeResourcesTaskTest.kt",
"src/test/java/com/android/build/gradle/integration/application/RulesExtractionDynamicAppTest.kt",
"src/test/java/com/android/build/gradle/integration/application/RulesExtractionTestUtil.kt",
"src/test/java/com/android/build/gradle/integration/application/SigningTest.java",
"src/test/java/com/android/build/gradle/integration/bundle/DynamicAppLegacyMultidexTest.kt",
"src/test/java/com/android/build/gradle/integration/bundle/DynamicAppSigningConfigTest.kt",
"src/test/java/com/android/build/gradle/integration/bundle/DynamicAppTest.kt",
"src/test/java/com/android/build/gradle/integration/desugar/desugaringProjectConfigurator.kt",
"src/test/java/com/android/build/gradle/integration/desugar/DesugarAppTest.java",
"src/test/java/com/android/build/gradle/integration/desugar/DesugarLibraryAndroidTestTest.kt",
"src/test/java/com/android/build/gradle/integration/desugar/DesugarAppWithDesugarToolTest.java",
"src/test/java/com/android/build/gradle/integration/desugar/DesugarMultiProjectTest.java",
"src/test/java/com/android/build/gradle/integration/desugar/DesugarFileDependencyTest.kt",
"src/test/java/com/android/build/gradle/integration/desugar/DesugarAppWithLibraryTest.java",
"src/test/java/com/android/build/gradle/integration/desugar/DesugarLibraryWithDesugarToolTest.java",
"src/test/java/com/android/build/gradle/integration/desugar/DesugarAarTogetherWithD8Test.kt",
"src/test/java/com/android/build/gradle/integration/desugar/DesugarAppAndroidTestTest.kt",
"src/test/java/com/android/build/gradle/integration/desugar/resources/*",
"src/test/java/com/android/build/gradle/integration/desugar/RecalculateStackFramesTaskTest.kt",
"src/test/java/com/android/build/gradle/integration/library/JarsInLibraries.java",
]
# Glob matching all connected tests. These should not be run with bazel.
CONNECTED_TESTS = [
"src/test/java/com/android/build/gradle/integration/**/*ConnectedTest.*",
"src/test/java/com/android/build/gradle/integration/testing/ConnectedCheckTest.java",
]
CHECK_ALL_SOURCES = ["src/test/java/**/CheckAll.java"]
# Creates separate target for each source
single_gradle_integration_test_per_source(
name = "tests",
package_name = "tools/base/build-system/integration-test/application",
srcs = glob(
[
"src/test/java/**",
],
exclude = SOURCES_TO_COMPILE_TOGETHER + CONNECTED_TESTS + CHECK_ALL_SOURCES + [
# These subpackages have their own target definitions.
"src/test/java/com/android/build/gradle/integration/packaging/**",
"src/test/java/com/android/build/gradle/integration/kotlin/**",
"src/test/java/com/android/build/gradle/integration/library/**",
"src/test/java/com/android/build/gradle/integration/mlkit/**",
"src/test/java/com/android/build/gradle/integration/testing/**",
"src/test/java/com/android/build/gradle/integration/resources/**",
"src/test/java/com/android/build/gradle/integration/dependencies/**",
"src/test/java/com/android/build/gradle/integration/privacysandbox/**",
"src/test/java/com/android/build/gradle/integration/multiplatform/v2/**",
"src/test/java/com/android/build/gradle/integration/application/Java11CompileTest.kt",
"src/test/java/com/android/build/gradle/integration/application/AgpVersionConsistencyTest.kt",
"src/test/java/com/android/build/gradle/integration/application/JavaCompileWithToolChainTest.kt",
"src/test/java/com/android/build/gradle/integration/application/ComposeHelloWorldTest.kt",
"src/test/java/com/android/build/gradle/integration/compose/ComposePluginOptionsTest.kt",
"src/test/java/com/android/build/gradle/integration/multiplatform/KotlinMultiplatformComposeTest.kt",
],
),
data = TEST_DATA + OLD_SDKS + NDK_27,
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
],
maven_repos = [
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/build-system/integration-test:androidx_latest",
"//tools/base/build-system/integration-test:androidx_test_latest",
"//tools/base/build-system/integration-test:support_library_latest",
"//tools/base/build-system/integration-test:utp_plugins",
"//tools/base/build-system/integration-test:dagger_prebuilts",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_prebuilts",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_1_4_32_prebuilts",
"//tools/base/build-system/integration-test:relocated_coroutines_test_repo",
"//tools/base/build-system/integration-test/application:prebuilts",
"//tools/base/build-system/previous-versions:3.5.0",
],
resources = glob(["src/test/resources/**"]),
very_flaky_targets = [
"GradlePluginMemoryLeakTest", # b/303907470
],
deps = TEST_DEPS,
)
JAVA_COMPILE_TESTS = [
"src/test/java/com/android/build/gradle/integration/application/Java11CompileTest.kt",
"src/test/java/com/android/build/gradle/integration/application/JavaCompileWithToolChainTest.kt",
]
gradle_integration_test(
name = "java-compile-tests",
srcs = glob(
include = JAVA_COMPILE_TESTS,
),
data = TEST_DATA + [
"//prebuilts/studio/jdk:jdk21",
"//prebuilts/studio/jdk:jdk_1_8",
"//prebuilts/studio/jdk/jdk11",
],
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
],
maven_repos = [
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/build-system/integration-test:dagger_prebuilts",
"//tools/base/build-system/integration-test/application:prebuilts",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_prebuilts",
],
resources = glob(["src/test/resources/**"]),
deps = TEST_DEPS,
)
JDK_17_SMOKE_TESTS = [
"src/test/java/com/android/build/gradle/integration/application/BasicTest.java",
"src/test/java/com/android/build/gradle/integration/application/KotlinAppTest.java",
"src/test/java/com/android/build/gradle/integration/application/Java11CompileTest.kt",
"src/test/java/com/android/build/gradle/integration/application/ModelTest.java",
]
gradle_integration_test(
name = "jdk17-smoke-tests",
srcs = glob(
include = JDK_17_SMOKE_TESTS,
),
data = TEST_DATA + [
"//prebuilts/studio/jdk:jdk_1_8",
"//prebuilts/studio/jdk/jdk11",
],
jvm_flags = ["-Dgradle.java.version=17"],
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
],
maven_repos = [
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/build-system/integration-test/application:prebuilts",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_prebuilts",
"//tools/base/build-system/integration-test:support_library_latest",
"//tools/base/build-system/integration-test:dagger_prebuilts",
],
resources = glob(["src/test/resources/**"]),
deps = TEST_DEPS,
)
AGP_VERSION_CONSISTENCY_TESTS = [
"src/test/java/com/android/build/gradle/integration/application/AgpVersionConsistencyTest.kt",
]
gradle_integration_test(
name = "agp-version-consistency-tests",
srcs = glob(
include = AGP_VERSION_CONSISTENCY_TESTS,
),
data = TEST_DATA,
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
],
maven_repos = [
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/build-system/integration-test/application:prebuilts",
"//tools/base/build-system/previous-versions:7.1.0",
],
deps = TEST_DEPS,
)
COMPOSE_TESTS = [
"src/test/java/com/android/build/gradle/integration/application/ComposeHelloWorldTest.kt",
"src/test/java/com/android/build/gradle/integration/compose/ComposePluginOptionsTest.kt",
"src/test/java/com/android/build/gradle/integration/multiplatform/KotlinMultiplatformComposeTest.kt",
]
gradle_integration_test(
name = "compose-tests",
srcs = glob(
include = COMPOSE_TESTS,
),
data = TEST_DATA,
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
],
maven_repos = [
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/build-system/integration-test/application:prebuilts",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_for_compose_prebuilts",
],
deps = TEST_DEPS,
)
gradle_integration_test(
name = "packaging-tests",
timeout = "long",
srcs = glob(
[
"src/test/java/com/android/build/gradle/integration/packaging/*.java",
"src/test/java/com/android/build/gradle/integration/packaging/*.kt",
],
exclude = CONNECTED_TESTS,
),
data = TEST_DATA + OLD_SDKS,
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
],
maven_repos = [
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/build-system/integration-test:androidx_latest",
"//tools/base/build-system/integration-test:support_library_latest",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_prebuilts",
"//tools/base/build-system/integration-test/application:prebuilts",
],
resources = glob(["src/test/resources/**"]),
shard_count = 7,
deps = TEST_DEPS,
)
maven_repository(
name = "kotlin_1_8_10",
artifacts = KGP_1_8_10,
visibility = [":__subpackages__"],
)
maven_repository(
name = "kotlin_1_9_22",
artifacts = KGP_1_9_22,
visibility = [":__subpackages__"],
)
gradle_integration_test(
name = "built-in-kotlin-support-tests",
srcs = glob(
[
"src/test/java/com/android/build/gradle/integration/kotlin/*.java",
"src/test/java/com/android/build/gradle/integration/kotlin/*.kt",
],
),
data = TEST_DATA,
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
],
maven_repos = [
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/build-system/integration-test:androidx_latest",
"//tools/base/build-system/integration-test:support_library_latest",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_prebuilts",
"//tools/base/build-system/integration-test/application:kotlin_1_8_10",
"//tools/base/build-system/integration-test/application:kotlin_1_9_22",
"//tools/base/build-system/integration-test/application:prebuilts",
],
resources = glob(["src/test/resources/**"]),
shard_count = 2,
deps = TEST_DEPS,
)
gradle_integration_test(
name = "dependencies-tests",
timeout = "long",
srcs = glob(
[
"src/test/java/com/android/build/gradle/integration/dependencies/*.java",
"src/test/java/com/android/build/gradle/integration/dependencies/*.kt",
],
exclude = CONNECTED_TESTS,
),
data = TEST_DATA,
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
],
maven_repos = [
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/build-system/integration-test:androidx_latest",
"//tools/base/build-system/integration-test:support_library_latest",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_prebuilts",
"//tools/base/build-system/integration-test/application:prebuilts",
],
resources = glob(["src/test/resources/**"]),
shard_count = 4,
deps = TEST_DEPS,
)
gradle_integration_test(
name = "library-tests",
timeout = "long",
srcs = glob(
[
"src/test/java/com/android/build/gradle/integration/library/*.java",
"src/test/java/com/android/build/gradle/integration/library/*.kt",
],
exclude = CONNECTED_TESTS,
),
data = TEST_DATA,
lint_baseline = "lint_baseline_library_tests.xml",
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
],
maven_repos = [
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/build-system/integration-test:androidx_latest",
"//tools/base/build-system/integration-test:support_library_latest",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_prebuilts",
"//tools/base/build-system/integration-test:ksp_gradle_plugin",
"//tools/base/build-system/integration-test/application:prebuilts",
],
resources = glob(["src/test/resources/**"]),
shard_count = 6,
deps = TEST_DEPS,
)
PRIVACY_SANDBOX_CONSUMPTION_TESTS = [
"src/test/java/com/android/build/gradle/integration/privacysandbox/*Consumption*.java",
"src/test/java/com/android/build/gradle/integration/privacysandbox/*Consumption*.kt",
]
PRIVACY_SANDBOX_SDK_TO_SDK_TESTS = [
"src/test/java/com/android/build/gradle/integration/privacysandbox/PrivacySandboxSdkToSdkTest.kt",
]
PRIVACY_SANDBOX_MAVEN_REPOS = [
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/build-system/integration-test:androidx_latest",
"//tools/base/build-system/integration-test:support_library_latest",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_prebuilts",
"//tools/base/build-system/integration-test:ksp_gradle_plugin",
"//tools/base/build-system/integration-test/application:prebuilts",
]
gradle_integration_test(
name = "privacy-sandbox-tests",
timeout = "long",
srcs = glob(
[
"src/test/java/com/android/build/gradle/integration/privacysandbox/*.java",
"src/test/java/com/android/build/gradle/integration/privacysandbox/*.kt",
],
exclude = CONNECTED_TESTS + PRIVACY_SANDBOX_CONSUMPTION_TESTS + PRIVACY_SANDBOX_SDK_TO_SDK_TESTS,
),
data = TEST_DATA,
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
],
maven_repos = PRIVACY_SANDBOX_MAVEN_REPOS,
resources = glob(["src/test/resources/**"]),
shard_count = 3,
deps = TEST_DEPS,
)
single_gradle_integration_test(
name = "PrivacySandboxSdkToSdkTest",
timeout = "long",
srcs = "src/test/java/com/android/build/gradle/integration/privacysandbox/",
data = TEST_DATA,
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
],
maven_repos = PRIVACY_SANDBOX_MAVEN_REPOS,
resources = glob(["src/test/resources/**"]),
deps = TEST_DEPS,
)
gradle_integration_test(
name = "privacy-sandbox-consumption-tests",
timeout = "long",
srcs = glob(
PRIVACY_SANDBOX_CONSUMPTION_TESTS,
exclude = CONNECTED_TESTS,
),
data = TEST_DATA,
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
],
maven_repos = PRIVACY_SANDBOX_MAVEN_REPOS,
resources = glob(["src/test/resources/**"]),
shard_count = 2,
deps = TEST_DEPS,
)
gradle_integration_test(
name = "testing-tests",
timeout = "long",
srcs = glob(
[
"src/test/java/com/android/build/gradle/integration/testing/testFixtures/*.java",
"src/test/java/com/android/build/gradle/integration/testing/testFixtures/*.kt",
"src/test/java/com/android/build/gradle/integration/testing/*.java",
"src/test/java/com/android/build/gradle/integration/testing/*.kt",
],
exclude = CONNECTED_TESTS,
),
data = TEST_DATA,
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
],
maven_repos = [
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/build-system/integration-test:androidx_latest",
"//tools/base/build-system/integration-test:support_library_latest",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_prebuilts",
"//tools/base/build-system/integration-test/application:prebuilts",
],
resources = glob(["src/test/resources/**"]),
shard_count = 3,
deps = TEST_DEPS,
)
gradle_integration_test(
name = "screenshot-tests",
timeout = "long",
srcs = [
"src/test/java/com/android/build/gradle/integration/testing/screenshot/ScreenshotTest.kt",
],
data = TEST_DATA,
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
"//tools/base/preview/screenshot:preview_screenshot_maven_repo",
],
maven_repos = [
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/build-system/integration-test/application:prebuilts",
"//tools/base/build-system/integration-test/application:layoutlib_prebuilts",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_for_compose_prebuilts",
],
deps = TEST_DEPS,
)
gradle_integration_test(
name = "mlkit-tests",
timeout = "long",
srcs = glob(
[
"src/test/java/com/android/build/gradle/integration/mlkit/*.java",
"src/test/java/com/android/build/gradle/integration/mlkit/*.kt",
],
exclude = CONNECTED_TESTS,
),
data = TEST_DATA + [
"//prebuilts/tools/common/mlkit/testData",
],
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
],
maven_repos = [
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/build-system/integration-test:androidx_latest",
"//tools/base/build-system/integration-test:support_library_latest",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_prebuilts",
"//tools/base/build-system/integration-test/application:prebuilts",
],
resources = glob(["src/test/resources/**"]),
deps = TEST_DEPS,
)
# These tests are split into a target per source due to b/175148611.
# It still helps to define these tests separately to use fewer dependencies.
single_gradle_integration_test_per_source(
name = "resources-tests",
package_name = "tools/base/build-system/integration-test/application",
srcs = glob(
[
"src/test/java/com/android/build/gradle/integration/resources/*.java",
"src/test/java/com/android/build/gradle/integration/resources/*.kt",
],
),
data = TEST_DATA,
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
],
maven_repos = [
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/build-system/integration-test:dagger_prebuilts",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_prebuilts",
"//tools/base/build-system/integration-test:support_library_latest",
"//tools/base/build-system/integration-test/application:prebuilts",
],
resources = glob(["src/test/resources/**"]),
deps = TEST_DEPS,
)
gradle_integration_test(
name = "coupled_tests",
srcs = glob(
SOURCES_TO_COMPILE_TOGETHER,
),
data = TEST_DATA,
lint_baseline = "lint_baseline_coupled_tests.xml",
#keep sorted
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
],
maven_repos = [
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/build-system/integration-test:dagger_prebuilts",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_prebuilts",
"//tools/base/build-system/integration-test:support_library_latest",
"//tools/base/build-system/integration-test/application:prebuilts",
],
resources = glob(["src/test/resources/**"]),
shard_count = 10,
deps = TEST_DEPS,
)
# Test that builds and lints all test projects, without any additional assertions.
gradle_integration_test(
name = "automatic-tests",
timeout = "long",
srcs = glob(CHECK_ALL_SOURCES),
data = AUTOMATIC_TEST_DATA,
#keep sorted
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
],
maven_repos = [
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/build-system/integration-test:androidx_latest",
"//tools/base/build-system/integration-test:dagger_prebuilts",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_1_4_32_prebuilts",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_prebuilts",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_for_compose_prebuilts",
"//tools/base/build-system/integration-test:prefab_repo",
"//tools/base/build-system/integration-test:support_library_latest",
"//tools/base/build-system/integration-test/application:prebuilts",
],
shard_count = 10, # Keep this in sync with logic in our bazel launcher script and CheckAllRunner.
#keep sorted
tags = [
"no_test_mac", # b/69151132
],
deps = TEST_DEPS,
)
# Test for kotlin multiplatform android prototype
gradle_integration_test(
name = "kotlin-multiplatform-android-tests",
timeout = "long",
srcs = glob(
[
"src/test/java/com/android/build/gradle/integration/multiplatform/v2/**/*.kt",
],
),
data = TEST_DATA,
flaky = True, # b/329887373
lint_baseline = "lint_baseline_kotlin_multiplatform_android_tests.xml",
#keep sorted
maven_repo_zips = [
"//tools/base/build-system:android_gradle_plugin",
],
maven_repos = [
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/build-system/integration-test:androidx_test_latest",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_prebuilts",
"//tools/base/build-system/integration-test:support_library_latest",
"//tools/base/build-system/integration-test/application:prebuilts",
],
resources = glob(["src/test/resources/**"]),
shard_count = 3,
#keep sorted
tags = [
"no_test_mac", # b/69151132
],
deps = TEST_DEPS,
)
# Maven repo with all the dependencies required by test projects.
#
# Quick way of updating this list:
# - Run the new test with bazel
# - Copy the output log to $PWD/test.log
# - Run this command:
# grep -F '> Could not find' test.log \
# | sed -e "s# *> Could not find \(.*\)\.#\1#"
# | sed -e 's#\(.*\):\(.*\):\(.*\)#"@maven//:\1.\2_\3",#'
# | sort | uniq
maven_repository(
name = "prebuilts",
# keep sorted
artifacts = [
"@maven//:androidx.activity.activity-compose_1.5.1",
"@maven//:androidx.annotation.annotation-jvm_1.6.0",
"@maven//:androidx.appcompat.appcompat_1.1.0",
"@maven//:androidx.appcompat.appcompat_1.3.0",
"@maven//:androidx.compose.compiler.compiler_1.5.11",
"@maven//:androidx.compose.material.material_1.3.0",
"@maven//:androidx.compose.ui.ui-tooling_1.3.0",
"@maven//:androidx.constraintlayout.constraintlayout_2.1.4",
"@maven//:androidx.fragment.fragment_1.3.0",
"@maven//:androidx.fragment.fragment_1.4.1",
"@maven//:androidx.leanback.leanback_1.0.0",
"@maven//:androidx.lifecycle.lifecycle-common-java8_2.4.0",
"@maven//:androidx.lifecycle.lifecycle-runtime-android_2.8.0-alpha02",
"@maven//:androidx.lifecycle.lifecycle-runtime-desktop_2.8.0-alpha02",
"@maven//:androidx.lifecycle.lifecycle-runtime_2.8.0-alpha02",
"@maven//:androidx.multidex.multidex-instrumentation_2.0.0",
"@maven//:androidx.multidex.multidex_2.0.0",
"@maven//:androidx.multidex.multidex_2.0.1",
"@maven//:androidx.navigation.navigation-fragment_2.0.0",
"@maven//:androidx.navigation.navigation-fragment_2.5.2",
"@maven//:androidx.navigation.navigation-safe-args-gradle-plugin_2.3.1",
"@maven//:androidx.navigation.navigation-safe-args-gradle-plugin_2.5.2",
"@maven//:androidx.privacysandbox.sdkruntime.sdkruntime-client_1.0.0-alpha13",
"@maven//:androidx.privacysandbox.sdkruntime.sdkruntime-core_1.0.0-alpha13",
"@maven//:androidx.privacysandbox.tools.tools-apicompiler_1.0.0-alpha08",
"@maven//:androidx.privacysandbox.tools.tools-apigenerator_1.0.0-alpha08",
"@maven//:androidx.privacysandbox.tools.tools-apipackager_1.0.0-alpha08",
"@maven//:androidx.privacysandbox.tools.tools_1.0.0-alpha08",
"@maven//:androidx.privacysandbox.ui.ui-client_1.0.0-alpha07",
"@maven//:androidx.privacysandbox.ui.ui-core_1.0.0-alpha07",
"@maven//:androidx.test.core_1.3.0",
"@maven//:androidx.test.core_1.4.0-alpha06",
"@maven//:androidx.test.espresso.espresso-core_3.2.0",
"@maven//:androidx.test.ext.junit_1.1.2",
"@maven//:androidx.test.ext.junit_1.1.3-alpha02",
"@maven//:androidx.test.rules_1.4.0-alpha06",
"@maven//:androidx.test.runner_1.4.0-alpha06",
"@maven//:com.android.support.constraint.constraint-layout_1.0.2",
"@maven//:com.android.support.multidex-instrumentation_1.0.2",
"@maven//:com.android.support.preference-v7_28.0.0",
"@maven//:com.android.support.support-v4_24.0.0",
"@maven//:com.android.support.test.espresso.espresso-core_3.0.2",
"@maven//:com.android.support.test.orchestrator_1.0.0",
"@maven//:com.android.tools.build.transform-api_1.5.0",
"@maven//:com.android.tools.desugar_jdk_libs_1.1.5",
"@maven//:com.android.tools.desugar_jdk_libs_nio_2.0.2",
"@maven//:com.crashlytics.sdk.android.crashlytics_2.6.8",
"@maven//:com.fasterxml.aalto-xml_1.3.0",
"@maven//:com.google.android.gms.play-services-base_15.0.1",
"@maven//:com.google.android.material.material_1.8.0",
"@maven//:com.google.android.material.material_1.9.0",
"@maven//:com.google.auto.service.auto-service_1.0-rc2",
"@maven//:com.google.firebase.firebase-crashlytics-gradle_2.5.1",
"@maven//:com.google.guava.guava_20.0",
"@maven//:com.google.guava.listenablefuture_1.0",
"@maven//:com.google.protobuf.protobuf-bom_3.21.8",
"@maven//:com.google.protobuf.protobuf-java-util_3.22.3",
"@maven//:com.google.protobuf.protobuf-java_3.22.3",
"@maven//:com.google.truth.truth_0.44",
"@maven//:com.googlecode.jarjar.jarjar_1.3",
"@maven//:com.jakewharton.butterknife-gradle-plugin_9.0.0-rc1",
"@maven//:com.jakewharton.butterknife-gradle-plugin_9.0.0-rc2",
"@maven//:com.jakewharton.butterknife_7.0.1",
"@maven//:com.squareup.dagger.dagger-compiler_1.2.2",
"@maven//:com.squareup.kotlinpoet_1.12.0",
"@maven//:javax.annotation.jsr250-api_1.0",
"@maven//:org.bouncycastle.bcprov-jdk16_1.46",
"@maven//:org.codehaus.mojo.animal-sniffer-annotations_1.19",
"@maven//:org.jacoco.org.jacoco.agent_0.7.4.201502262128",
"@maven//:org.jacoco.org.jacoco.agent_0.8.11",
"@maven//:org.jacoco.org.jacoco.agent_0.8.7",
"@maven//:org.jacoco.org.jacoco.ant_0.8.11",
"@maven//:org.jacoco.org.jacoco.ant_0.8.7",
"@maven//:org.javassist.javassist_3.26.0-GA",
"@maven//:org.jdeferred.jdeferred-android-aar_1.2.2",
"@maven//:org.jdeferred.jdeferred-android-aar_1.2.3",
"@maven//:org.jetbrains.dokka.javadoc-plugin_1.4.32",
"@maven//:org.jetbrains.kotlin.kotlin-compiler-embeddable_1.8.10",
"@maven//:org.jetbrains.kotlin.kotlin-test-junit",
"@maven//:org.jetbrains.kotlin.kotlin-test-junit_" + KGP_VERSION_FOR_TESTS,
"@maven//:androidx.appcompat.appcompat_1.6.1",
"@maven//:androidx.core.core-ktx_1.9.0",
"@maven//:androidx.legacy.legacy-support-v13_1.0.0",
"@maven//:androidx.legacy.legacy-support-v4_1.0.0",
"@maven//:androidx.media.media_1.6.0",
"@maven//:org.jetbrains.kotlinx.kotlinx-coroutines-android_1.7.1",
"@maven//:org.jetbrains.kotlinx.kotlinx-coroutines-core-common_1.3.6",
"@maven//:org.jetbrains.kotlinx.kotlinx-coroutines-core_1.6.3",
"@maven//:org.mockito.mockito-core_5.6.0",
"@maven//:org.robolectric.robolectric_4.8.2",
"@maven//:org.tensorflow.tensorflow-lite-metadata_0.1.0",
"@maven//:org.tensorflow.tensorflow-lite-support_0.1.0",
"@maven//:org.threeten.threetenbp_1.3.3",
],
visibility = ["__subpackages__"],
)
maven_repository(
name = "layoutlib_prebuilts",
artifacts = [
"@maven//:com.android.tools.layoutlib.layoutlib-resources_14.0.4",
"@maven//:com.android.tools.layoutlib.layoutlib-runtime_14.0.6",
"@maven//:com.android.tools.layoutlib.layoutlib_14.0.4",
],
visibility = ["__subpackages__"],
)