blob: 0f0f3860fe56ada5df9338d7cd1dcbca79433a92 [file] [log] [blame]
# Copyright {year}, The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# WARNING: This BUILD file was generated by a tool.
# It should not be manually modified.
"""java_test implementation for the Android environment."""
def _java_test_impl(ctx):
# Emit the launcher script.
script = ctx.actions.declare_file("%s.sh" % ctx.label.name)
ctx.actions.expand_template(
template=ctx.file._template,
output=script,
substitutions={{
"{{module_name}}":
ctx.label.name,
"{{module_path}}":
ctx.label.package,
"{{tradefed_launcher_module_path}}":
ctx.attr._tradefed_launcher.label.package,
"{{tradefed_jars_module_path}}":
ctx.attr._tradefed_jars.label.package,
"{{path_additions}}":
ctx.attr._adb.label.package,
"{{launcher_path}}":
"{{}}/{{}}".format(
ctx.attr._launcher.label.package,
ctx.attr._launcher.label.name,
),
}},
is_executable=True,
)
# Pass the deps on as runfiles as Tradefed will scan the resulting
# directory for tests.
runfiles = ctx.runfiles(
files=ctx.files._launcher,
transitive_files=depset(transitive=[
depset(ctx.files.deps),
depset(ctx.files._adb),
depset(ctx.files._tradefed_launcher),
depset(ctx.files._tradefed_script_help),
depset(ctx.files._tradefed_jars),
], ),
)
return [DefaultInfo(executable=script, runfiles=runfiles)]
java_test = rule(
_java_test_impl,
attrs={{
"_adb":
attr.label(
default=Label("//packages/modules/adb"),
allow_single_file=True,
),
"_tradefed_launcher":
attr.label(
default=Label("//tools/tradefederation/core:atest_tradefed"),
allow_single_file=True,
),
"_tradefed_script_help":
attr.label(
default=Label("//tools/tradefederation/core:atest_script_help"), ),
"_tradefed_jars":
attr.label(
default=Label("//tools/tradefederation/core:tradefed_lib"), ),
"_template":
attr.label(
default=Label(
"//build/bazel/rules:tf_test_executable.sh.template", ),
allow_single_file=True,
),
"_launcher":
attr.label(default=Label("//build/bazel/rules:java_tf_test_launcher")),
"deps":
attr.label_list(allow_files=True),
}},
executable=True,
test=True,
)