1load("@bazel_skylib//rules:diff_test.bzl", "diff_test")
2load(":apex_compression_test.bzl", "apex_compression_test")
3load(":apex_diff_test.bzl", "apex_diff_test")
4load(":apex_package_name_test.bzl", "apex_package_name_test")
5
6filegroup(
7    name = "com.android.adbd.capex",
8    srcs = ["//packages/modules/adb/apex:com.android.adbd"],
9    output_group = "signed_compressed_output",
10    tags = ["manual"],
11)
12
13# Test that the compressed apex and uncompressed apex have the same contents
14apex_diff_test(
15    name = "com.android.adbd_compressed_vs_uncompressed",
16    apex1 = ":com.android.adbd.capex",
17    apex2 = "//packages/modules/adb/apex:com.android.adbd",
18    target_compatible_with = ["//build/bazel_common_rules/platforms/os:android"],
19)
20
21apex_compression_test(
22    name = "build.bazel.examples.apex.minimal_apex",
23    apex = "//build/bazel/examples/apex/minimal:build.bazel.examples.apex.minimal",
24    compressed = False,
25)
26
27filegroup(
28    name = "build.bazel.examples.apex.minimal_compressed.capex",
29    srcs = ["//build/bazel/examples/apex/minimal:build.bazel.examples.apex.minimal_compressed"],
30    output_group = "signed_compressed_output",
31    tags = ["manual"],
32)
33
34apex_compression_test(
35    name = "build.bazel.examples.apex.minimal_capex",
36    apex = ":build.bazel.examples.apex.minimal_compressed.capex",
37    compressed = True,
38)
39
40genrule(
41    name = "build.bazel.examples.apex.minimal_android_manifest",
42    testonly = True,
43    srcs = ["//build/bazel/examples/apex/minimal:build.bazel.examples.apex.minimal"],
44    outs = ["minimal_apex_android_manifest.txt"],
45    cmd = "$(location //frameworks/base/tools/aapt2) dump xmltree --file AndroidManifest.xml $< > $@",
46    tools = ["//frameworks/base/tools/aapt2"],
47)
48
49diff_test(
50    name = "minimal_apex_android_manifest_test",
51    file1 = "minimal_apex_android_manifest.txt",
52    file2 = "minimal_apex_android_manifest.golden",
53)
54
55genrule(
56    name = "adbd_aab_zipinfo",
57    testonly = True,
58    srcs = ["//build/bazel/vendor/google:com.android.adbd_apex_aab"],
59    outs = ["adbd_aab_zipinfo.actual"],
60    cmd = "$(location @bazel_tools//tools/zip:zipper) v $< | sort > $@",
61    tools = ["@bazel_tools//tools/zip:zipper"],
62)
63
64diff_test(
65    name = "aab_filelist_diff_test",
66    file1 = "adbd_aab_zipinfo.golden",
67    file2 = "adbd_aab_zipinfo.actual",
68)
69
70py_binary(
71    name = "apks_binary_arches",
72    srcs = ["apks_binary_arches.py"],
73)
74
75genrule(
76    name = "adbd_apks_arches",
77    testonly = True,
78    srcs = ["//build/bazel/vendor/google:com.android.adbd_apks"],
79    outs = ["adb_apks_arches.actual"],
80    cmd = " ".join([
81        "$(location :apks_binary_arches)",
82        "--deapexer-path $(location //system/apex/tools:deapexer)",
83        "--readelf-path $(location //prebuilts/clang/host/linux-x86:llvm-readelf)",
84        "--debugfs-path $(location //external/e2fsprogs/debugfs)",
85        "--fsckerofs-path $(location //external/erofs-utils:fsck.erofs)",
86        "$<",
87        "$@",
88    ]),
89    tags = ["manual"],
90    tools = [
91        ":apks_binary_arches",
92        "//external/e2fsprogs/debugfs",
93        "//external/erofs-utils:fsck.erofs",
94        "//prebuilts/clang/host/linux-x86:llvm-readelf",
95        "//system/apex/tools:deapexer",
96    ],
97)
98
99diff_test(
100    name = "apks_arch_diff_test",
101    file1 = "adb_apks_arches.golden",
102    file2 = "adb_apks_arches.actual",
103)
104
105genrule(
106    name = "adbd_apks_zipinfo",
107    testonly = True,
108    srcs = ["//build/bazel/vendor/google:com.android.adbd_apks"],
109    outs = ["adbd_apks_zipinfo.actual"],
110    cmd = "$(location @bazel_tools//tools/zip:zipper) v $< | sort > $@",
111    tools = ["@bazel_tools//tools/zip:zipper"],
112)
113
114diff_test(
115    name = "apks_filelist_diff_test",
116    file1 = "adbd_apks_zipinfo.golden",
117    file2 = "adbd_apks_zipinfo.actual",
118)
119
120apex_package_name_test(
121    name = "build.bazel.examples.apex.minimal_package_name",
122    apex = "//build/bazel/examples/apex/minimal:build.bazel.examples.apex.minimal",
123    expected_package_name = "build.bazel.examples.apex.minimal",
124)
125
126apex_package_name_test(
127    name = "build.bazel.examples.apex.override.minimal_package_name",
128    apex = "//build/bazel/examples/apex/minimal:build.bazel.examples.apex.override.minimal",
129    expected_package_name = "build.bazel.examples.apex.override.minimal",
130)
131
132apex_package_name_test(
133    name = "com.android.adbd_package_name",
134    apex = "//packages/modules/adb/apex:com.android.adbd",
135    expected_package_name = "com.android.adbd",
136)
137
138genrule(
139    name = "com.android.adbd_manifest_json",
140    srcs = ["//packages/modules/adb/apex:com.android.adbd"],
141    outs = ["com.android.adbd_manifest.json"],
142    cmd = "$(location //system/apex/tools:deapexer) info $< > $@",
143    tools = ["//system/apex/tools:deapexer"],
144)
145
146diff_test(
147    name = "com.android.adbd_manifest_diff_test",
148    file1 = "com.android.adbd_manifest.json",
149    file2 = "com.android.adbd_manifest.json.golden",
150)
151
152filegroup(
153    name = "minimal_apex_coverage_files",
154    srcs = ["//build/bazel/examples/apex/minimal:build.bazel.examples.apex.minimal"],
155    output_group = "coverage_files",
156)
157
158genrule(
159    name = "minimal_apex_using_txt",
160    srcs = [":minimal_apex_coverage_files"],
161    outs = ["minimal_apex_using.txt"],
162    cmd = "cat $(location :minimal_apex_coverage_files) | sort > $@",
163)
164
165diff_test(
166    name = "minimal_apex_symbols_used_by_apex_diff_test",
167    file1 = ":minimal_apex_using.txt",
168    file2 = ":minimal_apex_using.txt.golden",
169    target_compatible_with = [
170        "//build/bazel_common_rules/platforms/os:android",
171        "//build/bazel_common_rules/platforms/arch:arm64",
172    ],
173)
174
175filegroup(
176    name = "minimal_apex_java_coverage_files",
177    srcs = ["//build/bazel/examples/apex/minimal:build.bazel.examples.apex.minimal"],
178    output_group = "java_coverage_files",
179)
180
181genrule(
182    name = "minimal_apex_using_xml",
183    srcs = [":minimal_apex_java_coverage_files"],
184    outs = ["minimal_apex_using.xml"],
185    cmd = "cat $(location :minimal_apex_java_coverage_files) | sort > $@",
186)
187
188diff_test(
189    name = "minimal_apex_java_symbols_used_by_apex_diff_test",
190    file1 = ":minimal_apex_using.xml",
191    file2 = ":minimal_apex_using.xml.golden",
192    target_compatible_with = [
193        "//build/bazel_common_rules/platforms/os:android",
194        "//build/bazel_common_rules/platforms/arch:arm64",
195    ],
196)
197
198filegroup(
199    name = "com.android.adbd_backing_libs",
200    srcs = ["//packages/modules/adb/apex:com.android.adbd"],
201    output_group = "backing_libs",
202)
203
204diff_test(
205    name = "com.android.adbd_backing_libs_diff_test",
206    file1 = ":com.android.adbd_backing_libs",
207    file2 = "com.android.adbd_backing.txt.golden",
208)
209
210filegroup(
211    name = "com.android.adbd_installed_files",
212    srcs = ["//packages/modules/adb/apex:com.android.adbd"],
213    output_group = "installed_files",
214)
215