| // |
| // Copyright (C) 2014 The Android Open Source Project |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| // |
| |
| package { |
| // See: http://go/android-license-faq |
| // A large-scale-change added 'default_applicable_licenses' to import |
| // all of the 'license_kinds' from "frameworks_native_license" |
| // to get the below license kinds: |
| // SPDX-license-identifier-Apache-2.0 |
| default_applicable_licenses: ["frameworks_native_license"], |
| } |
| |
| cc_defaults { |
| name: "binder_test_defaults", |
| cflags: [ |
| "-Wall", |
| "-Werror", |
| ], |
| } |
| |
| cc_test { |
| name: "binderDriverInterfaceTest", |
| defaults: ["binder_test_defaults"], |
| header_libs: ["libbinder_headers"], |
| srcs: ["binderDriverInterfaceTest.cpp"], |
| test_suites: [ |
| "device-tests", |
| "vts", |
| ], |
| } |
| |
| // unit test only, which can run on host and doesn't use /dev/binder |
| cc_test { |
| name: "binderUnitTest", |
| host_supported: true, |
| target: { |
| darwin: { |
| enabled: false, |
| }, |
| }, |
| srcs: [ |
| "binderParcelUnitTest.cpp", |
| "binderBinderUnitTest.cpp", |
| "binderStatusUnitTest.cpp", |
| "binderMemoryHeapBaseUnitTest.cpp", |
| "binderRecordedTransactionTest.cpp", |
| ], |
| shared_libs: [ |
| "libbinder", |
| "libcutils", |
| "libutils", |
| ], |
| test_suites: ["general-tests"], |
| } |
| |
| cc_test { |
| name: "binderRecordReplayTest", |
| srcs: ["binderRecordReplayTest.cpp"], |
| cflags: [ |
| "-DBINDER_WITH_KERNEL_IPC", |
| ], |
| shared_libs: [ |
| "libbinder", |
| "libcutils", |
| "libutils", |
| "liblog", |
| ], |
| static_libs: [ |
| "binderRecordReplayTestIface-cpp", |
| "binderReadParcelIface-cpp", |
| "libbinder_random_parcel_seeds", |
| "libbinder_random_parcel", |
| ], |
| test_suites: ["general-tests"], |
| require_root: true, |
| } |
| |
| aidl_interface { |
| name: "binderRecordReplayTestIface", |
| unstable: true, |
| srcs: [ |
| "IBinderRecordReplayTest.aidl", |
| ], |
| imports: ["binderReadParcelIface"], |
| backend: { |
| java: { |
| enabled: true, |
| platform_apis: true, |
| }, |
| |
| // TODO: switch from FileDescriptor to ParcelFileDescriptor |
| ndk: { |
| enabled: false, |
| }, |
| rust: { |
| enabled: false, |
| }, |
| }, |
| } |
| |
| cc_test { |
| name: "binderLibTest", |
| defaults: ["binder_test_defaults"], |
| |
| srcs: ["binderLibTest.cpp"], |
| shared_libs: [ |
| "libbase", |
| "libbinder", |
| "liblog", |
| "libutils", |
| ], |
| static_libs: [ |
| "libgmock", |
| ], |
| test_suites: [ |
| "device-tests", |
| "vts", |
| ], |
| require_root: true, |
| } |
| |
| aidl_interface { |
| name: "binderRpcTestIface", |
| vendor_available: true, |
| host_supported: true, |
| unstable: true, |
| srcs: [ |
| "BinderRpcTestClientInfo.aidl", |
| "BinderRpcTestServerConfig.aidl", |
| "BinderRpcTestServerInfo.aidl", |
| "IBinderRpcCallback.aidl", |
| "IBinderRpcSession.aidl", |
| "IBinderRpcTest.aidl", |
| "ParcelableCertificateData.aidl", |
| ], |
| flags: [ |
| "-Werror", |
| "-Wno-mixed-oneway", |
| ], |
| backend: { |
| java: { |
| enabled: false, |
| }, |
| }, |
| } |
| |
| cc_library_static { |
| name: "libbinder_tls_test_utils", |
| host_supported: true, |
| vendor_available: true, |
| target: { |
| darwin: { |
| enabled: false, |
| }, |
| }, |
| defaults: [ |
| "binder_test_defaults", |
| "libbinder_tls_shared_deps", |
| ], |
| shared_libs: [ |
| "libbase", |
| "liblog", |
| ], |
| static_libs: [ |
| "libbinder_tls_static", |
| ], |
| srcs: [ |
| "RpcTlsTestUtils.cpp", |
| ], |
| export_include_dirs: [ |
| "include_tls_test_utils", |
| ], |
| visibility: [ |
| ":__subpackages__", |
| ], |
| } |
| |
| cc_library_static { |
| name: "libbinder_test_utils", |
| host_supported: true, |
| vendor_available: true, |
| target: { |
| darwin: { |
| enabled: false, |
| }, |
| }, |
| defaults: [ |
| "binder_test_defaults", |
| ], |
| shared_libs: [ |
| "libbase", |
| "liblog", |
| ], |
| srcs: [ |
| "FileUtils.cpp", |
| ], |
| visibility: [ |
| ":__subpackages__", |
| ], |
| } |
| |
| cc_defaults { |
| name: "binderRpcTest_common_defaults", |
| host_supported: true, |
| target: { |
| darwin: { |
| enabled: false, |
| }, |
| }, |
| defaults: [ |
| "binder_test_defaults", |
| ], |
| |
| static_libs: [ |
| "libbinder_test_utils", |
| "libbinder_tls_static", |
| "libbinder_tls_test_utils", |
| "binderRpcTestIface-cpp", |
| "binderRpcTestIface-ndk", |
| ], |
| } |
| |
| cc_defaults { |
| name: "binderRpcTest_service_defaults", |
| defaults: [ |
| "binderRpcTest_common_defaults", |
| ], |
| gtest: false, |
| auto_gen_config: false, |
| srcs: [ |
| "binderRpcTestCommon.cpp", |
| "binderRpcTestService.cpp", |
| ], |
| } |
| |
| cc_defaults { |
| name: "binderRpcTest_defaults", |
| target: { |
| android: { |
| test_suites: ["vts"], |
| }, |
| }, |
| defaults: [ |
| "binderRpcTest_common_defaults", |
| ], |
| |
| srcs: [ |
| "binderRpcTest.cpp", |
| "binderRpcTestCommon.cpp", |
| "binderRpcUniversalTests.cpp", |
| ], |
| |
| // This test uses a lot of resources and takes a long time. Due to |
| // design of several tests, it is also very sensitive to resource |
| // contention on the device. b/276820894 |
| test_options: { |
| unit_test: false, |
| test_runner_options: [ |
| { |
| name: "native-test-timeout", |
| value: "10m", |
| }, |
| ], |
| }, |
| |
| test_suites: ["general-tests"], |
| require_root: true, |
| |
| data_bins: [ |
| "binder_rpc_test_service", |
| "binder_rpc_test_service_no_kernel", |
| "binder_rpc_test_service_single_threaded", |
| "binder_rpc_test_service_single_threaded_no_kernel", |
| ], |
| } |
| |
| cc_defaults { |
| name: "binderRpcTest_shared_defaults", |
| cflags: [ |
| "-DBINDER_WITH_KERNEL_IPC", |
| ], |
| |
| shared_libs: [ |
| "libbinder", |
| "libbinder_ndk", |
| "libbase", |
| "libutils", |
| "libcutils", |
| "liblog", |
| ], |
| } |
| |
| cc_defaults { |
| name: "binderRpcTest_static_defaults", |
| |
| shared_libs: [ |
| "liblog", |
| "libutils", |
| // libcrypto_static is not visible to this module |
| "libcrypto", |
| ], |
| static_libs: [ |
| "libbase", |
| "libcutils", |
| "libssl", |
| ], |
| |
| cflags: [ |
| // Disable tests that require shared libraries, |
| // e.g., libbinder.so or libbinder_ndk.so |
| "-DBINDER_TEST_NO_SHARED_LIBS", |
| ], |
| } |
| |
| cc_test { |
| // The module name cannot start with "binderRpcTest" because |
| // then atest tries to execute it as part of binderRpcTest |
| name: "binder_rpc_test_service", |
| defaults: [ |
| "binderRpcTest_service_defaults", |
| "binderRpcTest_shared_defaults", |
| "libbinder_tls_shared_deps", |
| ], |
| } |
| |
| cc_test { |
| name: "binder_rpc_test_service_no_kernel", |
| defaults: [ |
| "binderRpcTest_service_defaults", |
| "binderRpcTest_static_defaults", |
| ], |
| static_libs: [ |
| "libbinder_rpc_no_kernel", |
| ], |
| } |
| |
| cc_test { |
| name: "binder_rpc_test_service_single_threaded", |
| defaults: [ |
| "binderRpcTest_service_defaults", |
| "binderRpcTest_static_defaults", |
| ], |
| cflags: [ |
| "-DBINDER_RPC_SINGLE_THREADED", |
| "-DBINDER_WITH_KERNEL_IPC", |
| ], |
| static_libs: [ |
| "libbinder_rpc_single_threaded", |
| ], |
| } |
| |
| cc_test { |
| name: "binder_rpc_test_service_single_threaded_no_kernel", |
| defaults: [ |
| "binderRpcTest_service_defaults", |
| "binderRpcTest_static_defaults", |
| ], |
| cflags: [ |
| "-DBINDER_RPC_SINGLE_THREADED", |
| ], |
| static_libs: [ |
| "libbinder_rpc_single_threaded_no_kernel", |
| ], |
| } |
| |
| cc_binary { |
| name: "binderRpcTestService_on_trusty_mock", |
| defaults: [ |
| "trusty_mock_defaults", |
| ], |
| |
| srcs: [ |
| "binderRpcTestCommon.cpp", |
| "binderRpcTestServiceTrusty.cpp", |
| ], |
| |
| shared_libs: [ |
| "libbinder_on_trusty_mock", |
| "libbase", |
| "libutils", |
| "libcutils", |
| ], |
| |
| static_libs: [ |
| "binderRpcTestIface-cpp", |
| ], |
| } |
| |
| cc_binary { |
| name: "binderRpcTest_on_trusty_mock", |
| defaults: [ |
| "trusty_mock_defaults", |
| ], |
| |
| srcs: [ |
| "binderRpcUniversalTests.cpp", |
| "binderRpcTestCommon.cpp", |
| "binderRpcTestTrusty.cpp", |
| ], |
| |
| shared_libs: [ |
| "libbinder_on_trusty_mock", |
| "libbase", |
| "libutils", |
| "libcutils", |
| ], |
| |
| static_libs: [ |
| "binderRpcTestIface-cpp", |
| "libgtest", |
| ], |
| } |
| |
| cc_test { |
| name: "binderRpcTest", |
| defaults: [ |
| "binderRpcTest_defaults", |
| "binderRpcTest_shared_defaults", |
| "libbinder_tls_shared_deps", |
| ], |
| |
| // Add the Trusty mock library as a fake dependency so it gets built |
| required: [ |
| "libbinder_on_trusty_mock", |
| "binderRpcTestService_on_trusty_mock", |
| "binderRpcTest_on_trusty_mock", |
| ], |
| } |
| |
| cc_test { |
| name: "binderRpcTestNoKernel", |
| defaults: [ |
| "binderRpcTest_defaults", |
| "binderRpcTest_static_defaults", |
| ], |
| static_libs: [ |
| "libbinder_rpc_no_kernel", |
| ], |
| } |
| |
| cc_test { |
| name: "binderRpcTestSingleThreaded", |
| defaults: [ |
| "binderRpcTest_defaults", |
| "binderRpcTest_static_defaults", |
| ], |
| cflags: [ |
| "-DBINDER_RPC_SINGLE_THREADED", |
| "-DBINDER_WITH_KERNEL_IPC", |
| ], |
| static_libs: [ |
| "libbinder_rpc_single_threaded", |
| ], |
| } |
| |
| cc_test { |
| name: "binderRpcTestSingleThreadedNoKernel", |
| defaults: [ |
| "binderRpcTest_defaults", |
| "binderRpcTest_static_defaults", |
| ], |
| cflags: [ |
| "-DBINDER_RPC_SINGLE_THREADED", |
| ], |
| static_libs: [ |
| "libbinder_rpc_single_threaded_no_kernel", |
| ], |
| } |
| |
| cc_test { |
| name: "binderRpcToTrustyTest", |
| vendor: true, |
| host_supported: false, |
| defaults: [ |
| "binderRpcTest_common_defaults", |
| "binderRpcTest_static_defaults", |
| ], |
| |
| srcs: [ |
| "binderRpcTest.cpp", |
| "binderRpcTestCommon.cpp", |
| "binderRpcUniversalTests.cpp", |
| ], |
| |
| cflags: [ |
| "-DBINDER_RPC_TO_TRUSTY_TEST", |
| ], |
| |
| static_libs: [ |
| // We want to link libbinder statically so we can push the binary |
| // to the device for testing independently of the library |
| "libbinder_rpc_no_kernel", |
| "libbinder_trusty", |
| "libtrusty", |
| ], |
| |
| test_suites: ["device-tests"], |
| require_root: true, |
| } |
| |
| cc_test { |
| name: "RpcTlsUtilsTest", |
| host_supported: true, |
| target: { |
| darwin: { |
| enabled: false, |
| }, |
| android: { |
| test_suites: ["vts"], |
| }, |
| }, |
| defaults: [ |
| "binder_test_defaults", |
| "libbinder_tls_shared_deps", |
| ], |
| srcs: [ |
| "RpcTlsUtilsTest.cpp", |
| ], |
| shared_libs: [ |
| "libbinder", |
| "libbase", |
| "libutils", |
| "liblog", |
| ], |
| static_libs: [ |
| "libbinder_tls_test_utils", |
| "libbinder_tls_static", |
| ], |
| test_suites: [ |
| "general-tests", |
| "device-tests", |
| ], |
| } |
| |
| cc_benchmark { |
| name: "binderRpcBenchmark", |
| defaults: [ |
| "binder_test_defaults", |
| "libbinder_tls_shared_deps", |
| ], |
| host_supported: true, |
| target: { |
| darwin: { |
| enabled: false, |
| }, |
| }, |
| srcs: [ |
| "binderRpcBenchmark.cpp", |
| "IBinderRpcBenchmark.aidl", |
| ], |
| shared_libs: [ |
| "libbase", |
| "libbinder", |
| "liblog", |
| "libutils", |
| ], |
| static_libs: [ |
| "libbinder_tls_test_utils", |
| "libbinder_tls_static", |
| ], |
| } |
| |
| cc_test { |
| name: "binderRpcWireProtocolTest", |
| host_supported: true, |
| target: { |
| darwin: { |
| enabled: false, |
| }, |
| android: { |
| test_suites: ["vts"], |
| }, |
| }, |
| defaults: [ |
| "binder_test_defaults", |
| ], |
| srcs: [ |
| "binderRpcWireProtocolTest.cpp", |
| ], |
| shared_libs: [ |
| "libbinder", |
| "libbase", |
| "libutils", |
| "libcutils", |
| "liblog", |
| ], |
| test_suites: ["general-tests"], |
| } |
| |
| cc_test { |
| name: "binderThroughputTest", |
| defaults: ["binder_test_defaults"], |
| srcs: ["binderThroughputTest.cpp"], |
| shared_libs: [ |
| "libbinder", |
| "libutils", |
| ], |
| cflags: [ |
| "-g", |
| "-Wno-missing-field-initializers", |
| "-Wno-sign-compare", |
| "-O3", |
| ], |
| } |
| |
| cc_test { |
| name: "binderTextOutputTest", |
| defaults: ["binder_test_defaults"], |
| srcs: ["binderTextOutputTest.cpp"], |
| shared_libs: [ |
| "libbinder", |
| "libutils", |
| "libbase", |
| ], |
| test_suites: ["device-tests"], |
| } |
| |
| cc_test { |
| name: "schd-dbg", |
| defaults: ["binder_test_defaults"], |
| srcs: ["schd-dbg.cpp"], |
| shared_libs: [ |
| "libbinder", |
| "libutils", |
| "libbase", |
| ], |
| } |
| |
| cc_test { |
| name: "binderSafeInterfaceTest", |
| defaults: ["binder_test_defaults"], |
| srcs: ["binderSafeInterfaceTest.cpp"], |
| |
| cppflags: [ |
| "-Wextra", |
| ], |
| |
| cpp_std: "experimental", |
| gnu_extensions: false, |
| |
| shared_libs: [ |
| "libbinder", |
| "libcutils", |
| "liblog", |
| "libutils", |
| ], |
| test_suites: [ |
| "device-tests", |
| "vts", |
| ], |
| require_root: true, |
| } |
| |
| cc_test { |
| name: "binderClearBufTest", |
| defaults: ["binder_test_defaults"], |
| srcs: [ |
| "binderClearBufTest.cpp", |
| ], |
| |
| shared_libs: [ |
| "libbase", |
| "libbinder", |
| "liblog", |
| "libutils", |
| ], |
| |
| test_suites: ["general-tests"], |
| require_root: true, |
| } |
| |
| aidl_interface { |
| name: "binderStabilityTestIface", |
| unstable: true, |
| srcs: [ |
| "IBinderStabilityTest.aidl", |
| ], |
| backend: { |
| java: { |
| enabled: false, |
| }, |
| }, |
| } |
| |
| cc_test { |
| name: "binderStabilityTest", |
| defaults: ["binder_test_defaults"], |
| srcs: [ |
| "binderStabilityTest.cpp", |
| ], |
| |
| // critical that libbinder/libbinder_ndk are shared for VTS |
| shared_libs: [ |
| "libbinder_ndk", |
| "libbinder", |
| "liblog", |
| "libutils", |
| ], |
| static_libs: [ |
| "binderStabilityTestIface-cpp", |
| "binderStabilityTestIface-ndk", |
| ], |
| |
| test_suites: [ |
| "device-tests", |
| "vts", |
| ], |
| require_root: true, |
| } |
| |
| cc_test { |
| name: "binderAllocationLimits", |
| defaults: ["binder_test_defaults"], |
| srcs: ["binderAllocationLimits.cpp"], |
| shared_libs: [ |
| "libbinder", |
| "liblog", |
| "libcutils", |
| "libutils", |
| "libutilscallstack", |
| "libbase", |
| ], |
| test_suites: ["device-tests"], |
| require_root: true, |
| } |
| |
| cc_benchmark { |
| name: "binderParcelBenchmark", |
| defaults: ["binder_test_defaults"], |
| srcs: ["binderParcelBenchmark.cpp"], |
| shared_libs: [ |
| "libbase", |
| "libbinder", |
| "liblog", |
| "libutils", |
| ], |
| test_suites: ["general-tests"], |
| } |
| |
| cc_test_host { |
| name: "binderUtilsHostTest", |
| defaults: ["binder_test_defaults"], |
| srcs: ["binderUtilsHostTest.cpp"], |
| shared_libs: [ |
| "libbase", |
| "libbinder", |
| ], |
| static_libs: [ |
| "libgmock", |
| ], |
| test_suites: ["general-tests"], |
| target: { |
| darwin: { |
| enabled: false, |
| }, |
| }, |
| } |
| |
| cc_test_host { |
| name: "binderHostDeviceTest", |
| defaults: ["binder_test_defaults"], |
| srcs: ["binderHostDeviceTest.cpp"], |
| test_config: "binderHostDeviceTest.xml", |
| shared_libs: [ |
| "libbase", |
| "libbinder", |
| "liblog", |
| "libutils", |
| ], |
| static_libs: [ |
| "libgmock", |
| ], |
| target_required: [ |
| "binderHostDeviceTestService", |
| ], |
| test_suites: ["general-tests"], |
| target: { |
| darwin: { |
| enabled: false, |
| }, |
| }, |
| test_options: { |
| unit_test: false, |
| }, |
| } |
| |
| cc_test { |
| name: "binderHostDeviceTestService", |
| // The binary is named differently from the module so that PushFilePreparer pushes the binary |
| // directly, not the test module directory. |
| stem: "binderHostDeviceTest-service", |
| defaults: ["binder_test_defaults"], |
| gtest: false, |
| auto_gen_config: false, |
| srcs: ["binderHostDeviceTestService.cpp"], |
| shared_libs: [ |
| "libbase", |
| "libbinder", |
| "liblog", |
| "libutils", |
| ], |
| test_suites: ["general-tests"], |
| } |
| |
| cc_defaults { |
| name: "service_fuzzer_defaults", |
| static_libs: [ |
| "libbase", |
| "libbinder_random_parcel", |
| "libcutils", |
| ], |
| target: { |
| android: { |
| shared_libs: [ |
| "libbinder_ndk", |
| "libbinder", |
| "libutils", |
| ], |
| }, |
| host: { |
| static_libs: [ |
| "libbinder_ndk", |
| "libbinder", |
| "libutils", |
| ], |
| }, |
| darwin: { |
| enabled: false, |
| }, |
| }, |
| fuzz_config: { |
| cc: [ |
| "smoreland@google.com", |
| "waghpawan@google.com", |
| ], |
| // Adds bugs to hotlist "AIDL fuzzers bugs" on buganizer |
| hotlists: ["4637097"], |
| use_for_presubmit: true, |
| }, |
| } |
| |
| cc_defaults { |
| name: "fuzzer_disable_leaks", |
| fuzz_config: { |
| asan_options: [ |
| "detect_leaks=0", |
| ], |
| hwasan_options: [ |
| "detect_leaks=0", |
| ], |
| }, |
| } |