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