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