blob: b41d54ae21aa3b179f94cf366414d2ce024e419c [file] [log] [blame]
load("@exec_properties//:constants.bzl", "LARGE_MACHINE")
load("@rules_java//java:defs.bzl", "java_binary")
load("//tools/base/bazel:bazel.bzl", "iml_module")
load("//tools/base/bazel:kotlin.bzl", "kotlin_library")
# managed by go/iml_to_build
iml_module(
name = "intellij.android.sync-memory-tests",
srcs = ["src"],
iml_files = ["intellij.android.sync-memory-tests.iml"],
split_test_targets = {
"Benchmark2000Memory": {
"test_filter": "com.android.tools.idea.gradle.project.sync.memory.Benchmark2000MemoryTest",
"exec_properties": LARGE_MACHINE,
"tags": [
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
"ci:perfgate-win",
"block-network",
],
},
"Benchmark2000MemoryMac": {
"test_filter": "com.android.tools.idea.gradle.project.sync.memory.Benchmark2000MemoryMacTest",
"tags": [
"noci:studio-win",
"noci:studio-linux",
"ci:studio-mac",
"exclusive-if-local",
],
"timeout": "long",
},
"Benchmark2000KotlinMultiplatformCpu": {
"test_filer": "com.android.tools.idea.gradle.project.sync.cpu.Benchmark2000KotlinMultiplatformCpuTest",
"tags": [
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
"block-network",
],
},
# This test is run in release branch, too but not analyzed due to small number of runs per test
# A larger number of runs per test allows to detect regressions amongst the noise
"Benchmark2000Cpu": {
"test_filter": "com.android.tools.idea.gradle.project.sync.cpu.Benchmark2000CpuTest",
"exec_properties": LARGE_MACHINE,
"additional_jvm_args": ["-Xmx6g"],
"tags": [
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
"ci:perfgate-win",
"perfgate-release",
"block-network",
],
},
"Benchmark2000CpuMac": {
"test_filter": "com.android.tools.idea.gradle.project.sync.cpu.Benchmark2000CpuMacTest",
"additional_jvm_args": ["-Xmx6g"],
"tags": [
"noci:studio-win",
"noci:studio-linux",
"ci:studio-mac",
"exclusive-if-local",
],
"timeout": "long",
},
# Release branch tests with comparison to main branch
"Benchmark2000CpuReleaseBranch": {
"test_filter": "com.android.tools.idea.gradle.project.sync.cpu.Benchmark2000CpuTest",
"exec_properties": LARGE_MACHINE,
"tags": [
"perfgate-release",
],
"additional_jvm_args": ["-Drunning.from.release.branch=true"],
},
"Benchmark2000MemoryReleaseBranch": {
"test_filter": "com.android.tools.idea.gradle.project.sync.memory.Benchmark2000MemoryTest",
"exec_properties": LARGE_MACHINE,
"tags": [
"perfgate-release",
],
"additional_jvm_args": ["-Drunning.from.release.branch=true"],
},
# Comparison tests
"Benchmark2000CpuLatestGradleTest": {
"test_filter": "com.android.tools.idea.gradle.project.sync.cpu.Benchmark2000CpuLatestGradleTest",
"exec_properties": LARGE_MACHINE,
"additional_jvm_args": ["-Xmx6g"],
"tags": [
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
"ci:perfgate-win",
"block-network",
],
"data": ["//tools/base/build-system:gradle-distrib-latest-snapshot"],
},
"Benchmark2000MemoryLatestGradleTest": {
"test_filter": "com.android.tools.idea.gradle.project.sync.memory.Benchmark2000MemoryLatestGradleTest",
"exec_properties": LARGE_MACHINE,
"tags": [
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
"ci:perfgate-win",
"block-network",
],
"data": ["//tools/base/build-system:gradle-distrib-latest-snapshot"],
},
"Benchmark2000CpuLatestKotlinTest": {
"test_filter": "com.android.tools.idea.gradle.project.sync.cpu.Benchmark2000CpuLatestKotlinTest",
"exec_properties": LARGE_MACHINE,
"additional_jvm_args": ["-Xmx6g"],
"tags": [
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
"ci:perfgate-win",
"block-network",
],
"data": ["//tools/base/build-system/integration-test:latest_kotlin_gradle_plugin_prebuilts_for_sync_benchmarks"],
},
"Benchmark2000MemoryLatestKotlinTest": {
"test_filter": "com.android.tools.idea.gradle.project.sync.memory.Benchmark2000MemoryLatestKotlinTest",
"exec_properties": LARGE_MACHINE,
"tags": [
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
"ci:perfgate-win",
"block-network",
],
"data": ["//tools/base/build-system/integration-test:latest_kotlin_gradle_plugin_prebuilts_for_sync_benchmarks"],
},
# Presubmit tests
"SyncBenchmarkVersionTest": {
"test_filter": "com.android.tools.idea.gradle.project.sync.SyncBenchmarkVersionTest",
"timeout": "long",
},
# Tests without regression analyzers, to reduce noise
"Benchmark200Cpu": {
"test_filter": "com.android.tools.idea.gradle.project.sync.cpu.Benchmark200CpuTest",
"tags": [
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
"ci:perfgate-win",
"block-network",
],
},
"Benchmark500Cpu": {
"test_filter": "com.android.tools.idea.gradle.project.sync.cpu.Benchmark500CpuTest",
"tags": [
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
"ci:perfgate-win",
"block-network",
],
},
"Benchmark200Repeated20TimesMemory": {
"test_filter": "com.android.tools.idea.gradle.project.sync.memory.Benchmark200Repeated20TimesMemoryTest",
"tags": [
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
"ci:perfgate-win",
"block-network",
],
},
"Benchmark1000Memory": {
"test_filter": "com.android.tools.idea.gradle.project.sync.memory.Benchmark1000MemoryTest",
"tags": [
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
"block-network",
],
},
"Benchmark1000Cpu": {
"test_filter": "com.android.tools.idea.gradle.project.sync.cpu.Benchmark1000CpuTest",
"tags": [
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
"block-network",
],
},
# Disabled tests
"Benchmark4200Cpu": {
"test_filter": "com.android.tools.idea.gradle.project.sync.cpu.Benchmark4200CpuTest",
"exec_properties": LARGE_MACHINE,
"tags": [
"manual",
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
],
},
"BenchmarkMultiApp100Cpu": {
"test_filter": "com.android.tools.idea.gradle.project.sync.cpu.BenchmarkMultiApp100CpuTest",
"tags": [
"manual",
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
],
},
"BenchmarkMultiApp190Cpu": {
"test_filter": "com.android.tools.idea.gradle.project.sync.cpu.BenchmarkMultiApp190CpuTest",
"exec_properties": LARGE_MACHINE,
"additional_jvm_args": ["-Xmx6g"],
"tags": [
"manual",
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
],
},
"Benchmark4200Memory": {
"test_filter": "com.android.tools.idea.gradle.project.sync.memory.Benchmark4200MemoryTest",
"exec_properties": LARGE_MACHINE,
"tags": [
"manual",
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
],
},
"Benchmark2000KotlinMultiplatformMemory": {
"test_filter": "com.android.tools.idea.gradle.project.sync.memory.Benchmark2000KotlinMultiplatformMemoryTest",
"tags": [
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
],
},
"BenchmarkMultiApp100Memory": {
"test_filter": "com.android.tools.idea.gradle.project.sync.memory.BenchmarkMultiApp100MemoryTest",
"tags": [
"manual",
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
],
},
"BenchmarkMultiApp190Memory": {
"test_filter": "com.android.tools.idea.gradle.project.sync.memory.BenchmarkMultiApp190MemoryTest",
"tags": [
"manual",
"noci:studio-win",
"noci:studio-linux",
"ci:perfgate-linux",
],
},
},
test_data = [
"testSrc/com/android/tools/idea/gradle/project/sync/gradle/MeasurementPlugin.kt",
"//prebuilts/studio/buildbenchmarks:ExtraLarge2022_project",
"//prebuilts/studio/buildbenchmarks:ExtraLarge_KMP_project",
"//prebuilts/studio/sdk:build-tools/latest",
"//prebuilts/studio/sdk:platform-tools",
"//prebuilts/studio/sdk:platforms/android-32", # Used for model v1 tests that needs AGP 7.1 (which needs compile sdk 32)
"//prebuilts/studio/sdk:platforms/latest",
"//prebuilts/tools/common/eclipse-mat",
"//tools/adt/idea/memory-usage/src/main/native:liblightweight_heap_traverse",
"//tools/base/build-system:android_gradle_plugin.zip",
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/build-system:gradle-distrib",
"//tools/base/build-system/integration-test:kotlin_gradle_plugin_prebuilts",
"//tools/data-binding:data_binding_runtime.zip",
],
# do not sort: must match IML order
test_deps = [
"//tools/adt/idea/.idea/libraries:junit4",
"//tools/adt/idea/adt-testutils:intellij.android.adt.testutils",
"//tools/adt/idea/android-common:intellij.android.common",
"//tools/base/flags:studio.android.sdktools.flags",
"//tools/base/testutils:studio.android.sdktools.testutils",
"//tools/base/perf-logger:studio.perf-logger",
"//tools/adt/idea/android-test-framework:intellij.android.testFramework",
"//tools/adt/idea/android:intellij.android.core",
"//tools/adt/idea/project-system-gradle:intellij.android.projectSystem.gradle",
"//tools/adt/idea/memory-usage",
"//tools/adt/idea/.idea/libraries:javax-inject",
"//tools/adt/idea/project-system-gradle-sync:intellij.android.projectSystem.gradle.sync",
"//tools/adt/idea/.idea/libraries:truth",
],
test_jvm_flags = [
"-Didea.skip.indices.initialization=true",
],
test_srcs = ["testSrc"],
test_tags = [
"cpu:4",
],
test_timeout = "eternal",
visibility = ["//visibility:public"],
# do not sort: must match IML order
deps = [
"@intellij//:intellij-sdk",
"@intellij//:com.intellij.java",
"@intellij//:com.intellij.gradle",
],
)
java_binary(
name = "benchmark_summary_tool",
testonly = True,
main_class = "com.android.tools.idea.gradle.project.sync.memory.BenchmarkSummaryTool",
runtime_deps = [":benchmark_summary_lib"],
)
kotlin_library(
name = "benchmark_summary_lib",
srcs = ["src/com/android/tools/idea/gradle/project/sync/memory/BenchmarkSummaryTool.kt"],
deps = ["@maven//:com.google.code.gson.gson"],
)
# See for latest versions: https://services.gradle.org/distributions-snapshots/
# usage (meant to be used with a clean repo):
# for Gradle update
# bazel run //tools/adt/idea/sync-memory-tests:update_benchmark_versions -- gradle 8.10-20240621020500+0000
# for latest nightly version: https://gradle.org/nightly/
# This will generate commits at
# tools/adt/idea
# tools/external/gradle
# for Kotlin update
# bazel run //tools/adt/idea/sync-memory-tests:update_benchmark_versions -- kotlin 2.0.0-dev-6897
# available versions: https://packages.jetbrains.team/maven/p/kt/dev/org/jetbrains/kotlin/kotlin-compiler/maven-metadata.xml
# This one might take a while since maven_fetch.sh takes some time
# This will generate commits at
# tools/adt/idea
# tools/base
# prebuilts/tools
java_binary(
name = "update_benchmark_versions",
testonly = True,
main_class = "com.android.tools.idea.gradle.project.sync.UpdateBenchmarkVersionsKt",
runtime_deps = [":update_benchmark_versions_lib"],
)
kotlin_library(
name = "update_benchmark_versions_lib",
srcs = ["src/com/android/tools/idea/gradle/project/sync/UpdateBenchmarkVersions.kt"],
)