xref: /aosp_15_r20/tools/asuite/adevice/Android.bp (revision c2e18aaa1096c836b086f94603d04f4eb9cf37f5)
1// Copyright (C) 2019 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
15rust_test_host {
16    name: "adevice_test",
17    srcs: [
18        "src/lib.rs",
19    ],
20    defaults: ["adevice_deps_defaults"],
21    rustlibs: ["libgoogletest_rust"],
22    test_options: {
23        unit_test: true,
24    },
25    test_suites: ["general-tests"],
26}
27
28rust_binary_host {
29    name: "adevice",
30    srcs: [
31        "src/main.rs",
32    ],
33    defaults: ["adevice_deps_defaults"],
34}
35
36rust_binary {
37    name: "adevice_fingerprint",
38    srcs: [
39        "src/adevice_fingerprint.rs",
40    ],
41    defaults: ["adevice_deps_defaults"],
42    static_executable: true,
43}
44
45rust_test {
46    name: "adevice_fingerprint_test",
47    auto_gen_config: true,
48    defaults: ["adevice_deps_defaults"],
49    srcs: [
50        "src/adevice_fingerprint.rs",
51    ],
52    rustlibs: ["libgoogletest_rust"],
53    static_executable: true,
54    test_suites: ["general-tests"],
55    test_options: {
56        unit_test: true,
57    },
58}
59
60rust_protobuf {
61    name: "libadevice_proto_rust",
62    crate_name: "adevice_proto",
63    host_supported: true,
64    source_stem: "adevice_proto",
65    protos: [
66        "src/protos/clientanalytics.proto",
67        "src/protos/user_log.proto",
68    ],
69}
70
71rust_library {
72    name: "libadevice",
73    srcs: ["src/lib.rs"],
74    crate_name: "adevice",
75    defaults: ["adevice_deps_defaults"],
76    host_supported: true,
77    lints: "none",
78}
79
80rust_defaults {
81    name: "adevice_deps_defaults",
82    rustlibs: [
83        "libadevice_proto_rust",
84        "libanyhow",
85        "libatty",
86        "libclap",
87        "libhex",
88        "libitertools",
89        "librayon",
90        "libregex",
91        "libring",
92        "libserde",
93        "libserde_json",
94        "libtempfile",
95        "libtracing",
96        "libtracing_subscriber",
97        "libwalkdir",
98        "libprotobuf",
99        "libuuid",
100    ],
101}
102
103// Automate as much of the tool invocation testing that we can.
104// It is still TBD what we will do to inject a product out tree
105// and a device in CI.
106sh_test_host {
107    name: "adevice_integration_test",
108    src: "adevice_integration_test.sh",
109    data_bins: [
110        "adevice",
111    ],
112    test_suites: ["general-tests"],
113}
114
115rust_test {
116    name: "adevice_whole_program_test",
117    auto_gen_config: true,
118    defaults: ["adevice_deps_defaults"],
119    srcs: [
120        "tests/whole_program_tests.rs",
121    ],
122    rustlibs: [
123        "libgoogletest_rust",
124        "libadevice",
125    ],
126    static_executable: true,
127    test_suites: ["general-tests"],
128    test_options: {
129        unit_test: true,
130    },
131}
132
133rust_test {
134    name: "adevice_partial_program_test",
135    auto_gen_config: true,
136    defaults: ["adevice_deps_defaults"],
137    srcs: [
138        "tests/partial_program_tests.rs",
139    ],
140    rustlibs: [
141        "libgoogletest_rust",
142        "libadevice",
143    ],
144    static_executable: true,
145    test_suites: ["general-tests"],
146    test_options: {
147        unit_test: true,
148    },
149}
150