• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (C) 2018 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package {
16    // See: http://go/android-license-faq
17    // A large-scale-change added 'default_applicable_licenses' to import
18    // all of the 'license_kinds' from "bootable_recovery_license"
19    // to get the below license kinds:
20    //   SPDX-license-identifier-Apache-2.0
21    default_applicable_licenses: ["bootable_recovery_license"],
22}
23
24cc_defaults {
25    name: "recovery_test_defaults",
26
27    defaults: [
28        "recovery_defaults",
29    ],
30
31    include_dirs: [
32        "bootable/recovery",
33    ],
34
35    shared_libs: [
36        "libbase",
37        "libcrypto",
38        "libcutils",
39        "liblog",
40        "libpng",
41        "libprocessgroup",
42        "libselinux",
43        "libziparchive",
44    ],
45
46    target: {
47        android: {
48            shared_libs: [
49                "libutils",
50                "libvndksupport",
51            ],
52        },
53
54        host: {
55            static_libs: [
56                "libutils",
57            ],
58        },
59    },
60}
61
62// libapplypatch, libapplypatch_modes
63libapplypatch_static_libs = [
64    "libapplypatch_modes",
65    "libapplypatch",
66    "libedify",
67    "libotautil",
68    "libbsdiff",
69    "libbspatch",
70    "libdivsufsort",
71    "libdivsufsort64",
72    "libutils",
73    "libbase",
74    "libbrotli",
75    "libbz",
76    "libz_stable",
77    "libziparchive",
78]
79
80// librecovery_defaults uses many shared libs that we want to avoid using in tests (e.g. we don't
81// have 32-bit android.hardware.health@2.0.so or libbootloader_message.so on marlin).
82librecovery_static_libs = [
83    "librecovery",
84    "librecovery_fastboot",
85    "libinstall",
86    "librecovery_ui",
87    "libminui",
88    "libfusesideload",
89    "libbootloader_message",
90    "libotautil",
91
92    "libhealthhalutils",
93    "libvintf",
94
95    "android.hardware.health@2.0",
96    "android.hardware.health@1.0",
97    "libext4_utils",
98    "libfs_mgr",
99    "libhidl-gen-utils",
100    "libhidlbase",
101    "liblp",
102    "libtinyxml2",
103    "libc++fs",
104]
105
106// recovery image for unittests.
107// ========================================================
108genrule {
109    name: "recovery_image",
110    cmd: "cat $(location testdata/recovery_head) <(cat $(location testdata/recovery_body) | $(location minigzip)) $(location testdata/recovery_tail) > $(out)",
111    srcs: [
112        "testdata/recovery_head",
113        "testdata/recovery_body",
114        "testdata/recovery_tail",
115    ],
116    tools: [
117        "minigzip",
118    ],
119    out: [
120        "testdata/recovery.img",
121    ],
122}
123
124cc_test {
125    name: "recovery_unit_test",
126    isolated: true,
127    require_root: true,
128
129    defaults: [
130        "recovery_test_defaults",
131        "libupdater_defaults",
132        "libupdater_device_defaults",
133    ],
134
135    test_suites: ["device-tests"],
136
137    srcs: [
138        "unit/*.cpp",
139    ],
140
141    static_libs: libapplypatch_static_libs + librecovery_static_libs + [
142        "librecovery_ui",
143        "libfusesideload",
144        "libminui",
145        "librecovery_utils",
146        "libotautil",
147        "libupdater_device",
148        "libupdater_core",
149        "libupdate_verifier",
150
151        "libprotobuf-cpp-lite",
152    ],
153    header_libs: [
154        "libgtest_prod_headers",
155    ],
156
157    data: [
158        "testdata/*",
159        ":recovery_image",
160        ":res-testdata",
161    ],
162}
163
164cc_test {
165    name: "recovery_manual_test",
166    isolated: true,
167
168    defaults: [
169        "recovery_test_defaults",
170    ],
171
172    test_suites: ["device-tests"],
173
174    srcs: [
175        "manual/recovery_test.cpp",
176    ],
177}
178
179cc_test_host {
180    name: "recovery_host_test",
181    isolated: true,
182
183    defaults: [
184        "recovery_test_defaults",
185        "libupdater_defaults",
186    ],
187
188    srcs: [
189        "unit/host/*",
190    ],
191
192    static_libs: [
193        "libupdater_host",
194        "libupdater_core",
195        "libimgdiff",
196        "libbsdiff",
197        "libdivsufsort64",
198        "libdivsufsort",
199        "libfstab",
200        "libc++fs",
201    ],
202
203    test_suites: ["general-tests"],
204
205    data: ["testdata/*"],
206
207    target: {
208        darwin: {
209            // libapplypatch in "libupdater_defaults" is not available on the Mac.
210            enabled: false,
211        },
212    },
213}
214
215cc_fuzz {
216    name: "libinstall_verify_package_fuzzer",
217    defaults: [
218        "recovery_test_defaults",
219    ],
220
221    srcs: ["fuzz/verify_package_fuzzer.cpp"],
222
223    corpus: [
224      "testdata/otasigned*.zip",
225    ],
226
227    static_libs: [
228        "libotautil",
229        "libinstall",
230        "librecovery_ui",
231        "libminui",
232    ],
233}
234