xref: /aosp_15_r20/build/bazel_common_rules/exec/tests/BUILD (revision 7887bec861e78e44e4e86ae7a52515235a00b778)
1*7887bec8SAndroid Build Coastguard Worker# Copyright (C) 2022 The Android Open Source Project
2*7887bec8SAndroid Build Coastguard Worker#
3*7887bec8SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
4*7887bec8SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
5*7887bec8SAndroid Build Coastguard Worker# You may obtain a copy of the License at
6*7887bec8SAndroid Build Coastguard Worker#
7*7887bec8SAndroid Build Coastguard Worker#       http://www.apache.org/licenses/LICENSE-2.0
8*7887bec8SAndroid Build Coastguard Worker#
9*7887bec8SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*7887bec8SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
11*7887bec8SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*7887bec8SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
13*7887bec8SAndroid Build Coastguard Worker# limitations under the License.
14*7887bec8SAndroid Build Coastguard Worker
15*7887bec8SAndroid Build Coastguard Worker# BUILD
16*7887bec8SAndroid Build Coastguard Workerload("//build/bazel_common_rules/exec/impl:embedded_exec.bzl", "embedded_exec")
17*7887bec8SAndroid Build Coastguard Workerload("//build/bazel_common_rules/exec/impl:exec.bzl", "exec")
18*7887bec8SAndroid Build Coastguard Worker
19*7887bec8SAndroid Build Coastguard Workerexec(
20*7887bec8SAndroid Build Coastguard Worker    name = "script_a",
21*7887bec8SAndroid Build Coastguard Worker    args = [
22*7887bec8SAndroid Build Coastguard Worker        "--argsA=valueA",
23*7887bec8SAndroid Build Coastguard Worker        "--args_expanded=$(rootpath data.txt)",
24*7887bec8SAndroid Build Coastguard Worker    ],
25*7887bec8SAndroid Build Coastguard Worker    data = [":data.txt"],
26*7887bec8SAndroid Build Coastguard Worker    script = "echo script_a $@",
27*7887bec8SAndroid Build Coastguard Worker)
28*7887bec8SAndroid Build Coastguard Worker
29*7887bec8SAndroid Build Coastguard Workersh_binary(
30*7887bec8SAndroid Build Coastguard Worker    name = "script_b",
31*7887bec8SAndroid Build Coastguard Worker    srcs = ["script_b.sh"],
32*7887bec8SAndroid Build Coastguard Worker    args = [
33*7887bec8SAndroid Build Coastguard Worker        "--script_b_arg=value",
34*7887bec8SAndroid Build Coastguard Worker        "--args_expanded=$(rootpath data.txt)",
35*7887bec8SAndroid Build Coastguard Worker    ],
36*7887bec8SAndroid Build Coastguard Worker    data = [":data.txt"],
37*7887bec8SAndroid Build Coastguard Worker    env = {
38*7887bec8SAndroid Build Coastguard Worker        "SCRIPT_B_ENV": "env_value",
39*7887bec8SAndroid Build Coastguard Worker        "SCRIPT_B_ENV_EXPANDED": "$(rootpath data.txt)",
40*7887bec8SAndroid Build Coastguard Worker    },
41*7887bec8SAndroid Build Coastguard Worker)
42*7887bec8SAndroid Build Coastguard Worker
43*7887bec8SAndroid Build Coastguard Workerexec(
44*7887bec8SAndroid Build Coastguard Worker    name = "cat_data",
45*7887bec8SAndroid Build Coastguard Worker    data = [":data.txt"],
46*7887bec8SAndroid Build Coastguard Worker    script = "cat $(rootpath :data.txt)",
47*7887bec8SAndroid Build Coastguard Worker)
48*7887bec8SAndroid Build Coastguard Worker
49*7887bec8SAndroid Build Coastguard Workerembedded_exec(
50*7887bec8SAndroid Build Coastguard Worker    name = "script_a_embedded",
51*7887bec8SAndroid Build Coastguard Worker    actual = "script_a",
52*7887bec8SAndroid Build Coastguard Worker)
53*7887bec8SAndroid Build Coastguard Worker
54*7887bec8SAndroid Build Coastguard Workerembedded_exec(
55*7887bec8SAndroid Build Coastguard Worker    name = "script_b_embedded",
56*7887bec8SAndroid Build Coastguard Worker    actual = "script_b",
57*7887bec8SAndroid Build Coastguard Worker)
58*7887bec8SAndroid Build Coastguard Worker
59*7887bec8SAndroid Build Coastguard Workerexec(
60*7887bec8SAndroid Build Coastguard Worker    name = "combined",
61*7887bec8SAndroid Build Coastguard Worker    args = ["--script_a_path=$(rootpath :script_a_embedded)"],
62*7887bec8SAndroid Build Coastguard Worker    data = [
63*7887bec8SAndroid Build Coastguard Worker        ":cat_data",
64*7887bec8SAndroid Build Coastguard Worker        ":script_a_embedded",
65*7887bec8SAndroid Build Coastguard Worker        ":script_b_embedded",
66*7887bec8SAndroid Build Coastguard Worker    ],
67*7887bec8SAndroid Build Coastguard Worker    script = """
68*7887bec8SAndroid Build Coastguard Worker        echo combined_args=$@
69*7887bec8SAndroid Build Coastguard Worker        $(rootpath :script_a_embedded)
70*7887bec8SAndroid Build Coastguard Worker        $(rootpath :script_b_embedded)
71*7887bec8SAndroid Build Coastguard Worker        $(rootpath :cat_data)
72*7887bec8SAndroid Build Coastguard Worker    """,
73*7887bec8SAndroid Build Coastguard Worker)
74*7887bec8SAndroid Build Coastguard Worker
75*7887bec8SAndroid Build Coastguard Workerpy_test(
76*7887bec8SAndroid Build Coastguard Worker    name = "exec_test",
77*7887bec8SAndroid Build Coastguard Worker    srcs = ["exec_test.py"],
78*7887bec8SAndroid Build Coastguard Worker    args = ["$(location :combined)"],
79*7887bec8SAndroid Build Coastguard Worker    data = [":combined"],
80*7887bec8SAndroid Build Coastguard Worker    deps = [
81*7887bec8SAndroid Build Coastguard Worker        "@io_abseil_py//absl/testing:absltest",
82*7887bec8SAndroid Build Coastguard Worker    ],
83*7887bec8SAndroid Build Coastguard Worker)
84*7887bec8SAndroid Build Coastguard Worker
85*7887bec8SAndroid Build Coastguard Workertest_suite(
86*7887bec8SAndroid Build Coastguard Worker    name = "tests",
87*7887bec8SAndroid Build Coastguard Worker    tests = [
88*7887bec8SAndroid Build Coastguard Worker        ":exec_test",
89*7887bec8SAndroid Build Coastguard Worker    ],
90*7887bec8SAndroid Build Coastguard Worker)
91