1package { 2 default_team: "trendy_team_native_tools_libraries", 3 default_applicable_licenses: ["Android-Apache-2.0"], 4} 5 6cc_defaults { 7 name: "libmemunreachable_defaults", 8 9 cflags: [ 10 "-Wall", 11 "-Wextra", 12 "-Werror", 13 ], 14 shared_libs: [ 15 "libbase", 16 ], 17 18 target: { 19 android: { 20 static_libs: ["libasync_safe"], 21 header_libs: ["bionic_libc_platform_headers"], 22 }, 23 linux_bionic: { 24 header_libs: ["bionic_libc_platform_headers"], 25 }, 26 host: { 27 shared_libs: ["liblog"], 28 }, 29 }, 30} 31 32cc_library { 33 name: "libmemunreachable", 34 vendor_available: true, 35 defaults: ["libmemunreachable_defaults"], 36 srcs: [ 37 "Allocator.cpp", 38 "Binder.cpp", 39 "HeapWalker.cpp", 40 "LeakFolding.cpp", 41 "LeakPipe.cpp", 42 "MemUnreachable.cpp", 43 "ProcessMappings.cpp", 44 "PtracerThread.cpp", 45 "ThreadCapture.cpp", 46 ], 47 48 static_libs: [ 49 "libc_malloc_debug_backtrace", 50 "libprocinfo", 51 ], 52 header_libs: [ 53 "libgtest_prod_headers", 54 ], 55 export_include_dirs: ["include"], 56 local_include_dirs: ["include"], 57 version_script: "libmemunreachable.map", 58 59 static: { 60 apex_available: [ 61 "//apex_available:platform", 62 "com.android.runtime", 63 ], 64 }, 65} 66 67// Integration test that runs against the public API of libmemunreachable 68cc_test { 69 name: "memunreachable_test", 70 defaults: ["libmemunreachable_defaults"], 71 srcs: [ 72 "tests/MemUnreachable_test.cpp", 73 ], 74 shared_libs: ["libmemunreachable"], 75 header_libs: [ 76 "libbase_headers", 77 ], 78 test_suites: ["device-tests"], 79} 80 81cc_test { 82 name: "memunreachable_unit_test", 83 defaults: ["libmemunreachable_defaults"], 84 host_supported: true, 85 srcs: [ 86 "tests/Allocator_test.cpp", 87 "tests/AtomicState_test.cpp", 88 "tests/HeapWalker_test.cpp", 89 "tests/LeakFolding_test.cpp", 90 ], 91 tidy_checks: [ 92 // Ignore memory leaks after ASSERT_NE in DisableMalloc_test.cpp. 93 "-clang-analyzer-cplusplus.NewDeleteLeaks", 94 "-clang-analyzer-unix.Malloc", 95 ], 96 target: { 97 android: { 98 srcs: [ 99 "tests/DisableMalloc_test.cpp", 100 "tests/MemUnreachable_test.cpp", 101 "tests/ThreadCapture_test.cpp", 102 ], 103 static_libs: [ 104 "libmemunreachable", 105 "libc_malloc_debug_backtrace", 106 ], 107 }, 108 host: { 109 srcs: [ 110 "Allocator.cpp", 111 "HeapWalker.cpp", 112 "LeakFolding.cpp", 113 "tests/HostMallocStub.cpp", 114 ], 115 }, 116 darwin: { 117 enabled: false, 118 }, 119 }, 120 header_libs: [ 121 "libbase_headers", 122 ], 123 test_suites: ["device-tests"], 124} 125 126cc_test { 127 name: "memunreachable_binder_test", 128 defaults: ["libmemunreachable_defaults"], 129 require_root: true, 130 131 srcs: [ 132 "tests/Binder_test.cpp", 133 ], 134 static_libs: ["libmemunreachable"], 135 shared_libs: [ 136 "libbinder", 137 "libhidlbase", 138 "libutils", 139 ], 140 test_suites: [ 141 "device-tests", 142 "vts" 143 ], 144} 145