1*7594170eSAndroid Build Coastguard Worker# Copyright (C) 2022 The Android Open Source Project 2*7594170eSAndroid Build Coastguard Worker# 3*7594170eSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 4*7594170eSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 5*7594170eSAndroid Build Coastguard Worker# You may obtain a copy of the License at 6*7594170eSAndroid Build Coastguard Worker# 7*7594170eSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 8*7594170eSAndroid Build Coastguard Worker# 9*7594170eSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 10*7594170eSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 11*7594170eSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*7594170eSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 13*7594170eSAndroid Build Coastguard Worker# limitations under the License. 14*7594170eSAndroid Build Coastguard Worker 15*7594170eSAndroid Build Coastguard Worker""" 16*7594170eSAndroid Build Coastguard WorkerUtilities for getting Bazel generated paths from tests 17*7594170eSAndroid Build Coastguard Worker""" 18*7594170eSAndroid Build Coastguard Worker 19*7594170eSAndroid Build Coastguard Workerload("@bazel_skylib//lib:paths.bzl", "paths") 20*7594170eSAndroid Build Coastguard Workerload("@bazel_skylib//lib:unittest.bzl", "analysistest") 21*7594170eSAndroid Build Coastguard Workerload("@rules_testing//lib:util.bzl", "TestingAspectInfo") 22*7594170eSAndroid Build Coastguard Worker 23*7594170eSAndroid Build Coastguard Workerdef get_package_dir_based_path(env, path): 24*7594170eSAndroid Build Coastguard Worker """ 25*7594170eSAndroid Build Coastguard Worker Returns the given path prefixed with the full package directory path 26*7594170eSAndroid Build Coastguard Worker """ 27*7594170eSAndroid Build Coastguard Worker 28*7594170eSAndroid Build Coastguard Worker return paths.join(env.ctx.label.package, path) 29*7594170eSAndroid Build Coastguard Worker 30*7594170eSAndroid Build Coastguard Workerdef get_output_and_package_dir_based_path(env, path): 31*7594170eSAndroid Build Coastguard Worker """ 32*7594170eSAndroid Build Coastguard Worker Returns the given path prefixed with the full output and package directories 33*7594170eSAndroid Build Coastguard Worker """ 34*7594170eSAndroid Build Coastguard Worker 35*7594170eSAndroid Build Coastguard Worker return paths.join(analysistest.target_bin_dir_path(env), analysistest.target_under_test(env).label.package, path) 36*7594170eSAndroid Build Coastguard Worker 37*7594170eSAndroid Build Coastguard Workerdef get_output_and_package_dir_based_path_rt(target, path): 38*7594170eSAndroid Build Coastguard Worker """ 39*7594170eSAndroid Build Coastguard Worker Same as get_output_and_package_dir_based_path but for use with rules_testing 40*7594170eSAndroid Build Coastguard Worker """ 41*7594170eSAndroid Build Coastguard Worker 42*7594170eSAndroid Build Coastguard Worker return paths.join( 43*7594170eSAndroid Build Coastguard Worker target[TestingAspectInfo].bin_path, 44*7594170eSAndroid Build Coastguard Worker target.label.package, 45*7594170eSAndroid Build Coastguard Worker path, 46*7594170eSAndroid Build Coastguard Worker ) 47