# 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. """cc_test implementation for the Android environment.""" def _cc_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)] cc_test = rule( _cc_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:cc_tf_test_launcher")), "deps": attr.label_list(allow_files = True), }}, executable = True, test = True, )