blob: 21575d5e50290a82fb35ac8c7fdc506f16e11cce [file] [log] [blame]
load("//tools/base/bazel:android.bzl", "dex_library")
load("//tools/base/fakeandroid:fakeandroid.bzl", "fake_android_test")
def perf_test(name, srcs, test_app, deps = [], tags = [], size = "small"):
native.genrule(
name = name + "_transform-app_java",
srcs = [test_app + "_java_deploy.jar"],
outs = [name + "_transform-app_java.jar"],
cmd = select({
"//tools/base/bazel:darwin": "cp ./$< ./$@",
"//tools/base/bazel:windows": "cp ./$< ./$@",
"//conditions:default": "$(location //tools/base/profiler/tests/perf-test:profilers-transform-main) ./$< ./$@",
}),
executable = 1,
tools = select({
"//tools/base/bazel:darwin": [],
"//tools/base/bazel:windows": [],
"//conditions:default": [
"//tools/base/profiler/tests/perf-test:profilers-transform-main",
],
}),
tags = tags,
)
dex_library(
name = name + "_transform-app",
jars = [":" + name + "_transform-app_java"],
)
fake_android_test(
name = name,
srcs = srcs,
deps = deps + [
"//tools/base/profiler/tests/perf-test:profiler-service",
"//tools/base/profiler:studio-profiler-grpc-1.0-jarjar",
"//tools/base/profiler/app:perfa",
"//tools/base/transport/agent:libjvmtiagent.so",
"//tools/base/transport:transport_main",
":" + name + "_transform-app",
test_app,
],
runtime_deps = select({
"//tools/base/bazel:darwin": [],
"//tools/base/bazel:windows": [],
"//conditions:default": [
":profiler-service",
"//tools/base/profiler:netty-grpc-jar",
"//tools/base/profiler/native/agent:libsupportjni.so",
"//tools/base/profiler/app:perfa",
"//tools/base/profiler/app:perfa_java",
"//tools/base/profiler/app:perfa_okhttp",
"//tools/base/transport/agent:libjvmtiagent.so",
],
}),
tags = tags,
size = size,
jvm_flags = [
"-Dperfd.location=$(location //tools/base/transport:transport_main)",
"-Dagent.location=/tools/base/profiler/native/agent",
"-Dprofiler.service.location=$(location //tools/base/profiler/tests/perf-test:profiler-service)",
"-Dperfa.dir.location=/tools/base/transport/agent",
"-Dperfa.location=$(location //tools/base/transport/agent:libjvmtiagent.so)",
"-Dperfa.jar.location=$(location //tools/base/profiler/app:perfa)",
"-Dnative.lib.location=$(location " + test_app + ").dirname",
# Non transformed app should be used here.
"-Djvmti.app.dex.location=$(location " + test_app + ")",
# Transformed app should be used here. This way we can test our support for both O+ and pre-O devices.
"-Dinstrumented.app.dex.location=$(location :" + name + "_transform-app)",
],
data = select({
"//tools/base/bazel:darwin": [],
"//tools/base/bazel:windows": [],
"//conditions:default": [
":profiler-service",
"//tools/base/profiler/app:perfa",
"//tools/base/profiler/app:perfa_java",
"//tools/base/profiler/app:perfa_okhttp",
"//tools/base/transport/agent:libjvmtiagent.so",
],
}),
)