| 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"], |
| ) |