Home | History | Annotate | Download | only in test
      1 //
      2 // Copyright (C) 2016 The Android Open Source Project
      3 //
      4 // Licensed under the Apache License, Version 2.0 (the "License");
      5 // you may not use this file except in compliance with the License.
      6 // You may obtain a copy of the License at
      7 //
      8 //      http://www.apache.org/licenses/LICENSE-2.0
      9 //
     10 // Unless required by applicable law or agreed to in writing, software
     11 // distributed under the License is distributed on an "AS IS" BASIS,
     12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 // See the License for the specific language governing permissions and
     14 // limitations under the License.
     15 //
     16 
     17 art_cc_defaults {
     18     name: "art_test_defaults",
     19     host_supported: true,
     20     target: {
     21         android_arm: {
     22             relative_install_path: "art/arm",
     23         },
     24         android_arm64: {
     25             relative_install_path: "art/arm64",
     26         },
     27         android_mips: {
     28             relative_install_path: "art/mips",
     29         },
     30         android_mips64: {
     31             relative_install_path: "art/mips64",
     32         },
     33         android_x86: {
     34             relative_install_path: "art/x86",
     35         },
     36         android_x86_64: {
     37             relative_install_path: "art/x86_64",
     38         },
     39         darwin: {
     40             enabled: false,
     41         },
     42     },
     43     cflags: [
     44         "-Wno-frame-larger-than=",
     45     ],
     46 }
     47 
     48 art_cc_defaults {
     49     name: "art_gtest_defaults",
     50     test_per_src: true,
     51     // These really are gtests, but the gtest library comes from libart-gtest.so
     52     gtest: false,
     53     defaults: [
     54         "art_test_defaults",
     55         "art_debug_defaults",
     56         "art_defaults",
     57     ],
     58 
     59     shared_libs: [
     60         "libartd",
     61         "libartd-disassembler",
     62         "libvixld-arm",
     63         "libvixld-arm64",
     64         "libart-gtest",
     65         "libdexfiled",
     66 
     67         "libbase",
     68         "libicuuc",
     69         "libicui18n",
     70         "libnativehelper",
     71         "libz",
     72     ],
     73     whole_static_libs: [
     74         "libsigchain",
     75     ],
     76 
     77     target: {
     78         linux: {
     79             ldflags: [
     80                 // Allow jni_compiler_test to find Java_MyClassNatives_bar
     81                 // within itself using dlopen(NULL, ...).
     82                 // Mac OS linker doesn't understand --export-dynamic.
     83                 "-Wl,--export-dynamic",
     84                 "-Wl,-u,Java_MyClassNatives_bar",
     85                 "-Wl,-u,Java_MyClassNatives_sbar",
     86             ],
     87             cflags: [
     88                 // gtest issue
     89                 "-Wno-used-but-marked-unused",
     90                 "-Wno-deprecated",
     91                 "-Wno-missing-noreturn",
     92             ],
     93         },
     94         host: {
     95             shared_libs: [
     96                 "libziparchive",
     97             ],
     98         },
     99         android: {
    100             shared_libs: [
    101                 "liblog",
    102             ],
    103         },
    104     },
    105 }
    106 
    107 art_cc_defaults {
    108     name: "libart-gtest-defaults",
    109     host_supported: true,
    110     defaults: [
    111         "art_debug_defaults",
    112         "art_defaults",
    113     ],
    114     shared_libs: [
    115         "libartd",
    116         "libartd-compiler",
    117         "libdexfiled",
    118     ],
    119     static_libs: [
    120         "libgtest",
    121     ],
    122     target: {
    123         android32: {
    124             cflags: ["-DART_TARGET_NATIVETEST_DIR=/data/nativetest/art"],
    125         },
    126         android64: {
    127             cflags: ["-DART_TARGET_NATIVETEST_DIR=/data/nativetest64/art"],
    128         },
    129         linux: {
    130             cflags: [
    131                 // gtest issue
    132                 "-Wno-used-but-marked-unused",
    133                 "-Wno-deprecated",
    134                 "-Wno-missing-noreturn",
    135             ],
    136         },
    137         darwin: {
    138             enabled: false,
    139         },
    140     },
    141 }
    142 
    143 art_cc_library {
    144     name: "libart-gtest",
    145     host_supported: true,
    146     whole_static_libs: [
    147         "libart-compiler-gtest",
    148         "libart-runtime-gtest",
    149         "libgtest",
    150     ],
    151     shared_libs: [
    152         "libartd",
    153         "libartd-compiler",
    154         "libdexfiled",
    155         "libbase",
    156         "libbacktrace",
    157     ],
    158     target: {
    159         darwin: {
    160             enabled: false,
    161         },
    162     },
    163 }
    164 
    165 cc_defaults {
    166     name: "libartagent-defaults",
    167     defaults: [
    168         "art_test_defaults",
    169         "art_defaults",
    170     ],
    171     shared_libs: [
    172         "libbacktrace",
    173         "libbase",
    174         "libnativehelper",
    175     ],
    176 }
    177 
    178 art_cc_test_library {
    179     name: "libartagent",
    180     srcs: ["900-hello-plugin/load_unload.cc"],
    181     defaults: ["libartagent-defaults"],
    182     shared_libs: [
    183         "libart",
    184         "libdexfile",
    185     ],
    186 }
    187 
    188 art_cc_test_library {
    189     name: "libartagentd",
    190     srcs: ["900-hello-plugin/load_unload.cc"],
    191     defaults: [
    192         "art_debug_defaults",
    193         "libartagent-defaults",
    194     ],
    195     shared_libs: [
    196         "libartd",
    197         "libdexfiled",
    198     ],
    199 }
    200 
    201 art_cc_defaults {
    202     name: "libtiagent-base-defaults",
    203     defaults: [
    204         "art_test_defaults",
    205         "art_defaults",
    206         // Not derived from libartagent-defaults for NDK.
    207     ],
    208     srcs: [
    209         // These are the ART-independent parts.
    210         "ti-agent/agent_common.cc",
    211         "ti-agent/agent_startup.cc",
    212         "ti-agent/jni_binder.cc",
    213         "ti-agent/jvmti_helper.cc",
    214         "ti-agent/test_env.cc",
    215         "ti-agent/breakpoint_helper.cc",
    216         "ti-agent/common_helper.cc",
    217         "ti-agent/frame_pop_helper.cc",
    218         "ti-agent/locals_helper.cc",
    219         "ti-agent/monitors_helper.cc",
    220         "ti-agent/redefinition_helper.cc",
    221         "ti-agent/suspension_helper.cc",
    222         "ti-agent/stack_trace_helper.cc",
    223         "ti-agent/threads_helper.cc",
    224         "ti-agent/trace_helper.cc",
    225         "ti-agent/exceptions_helper.cc",
    226         // This is the list of non-special OnLoad things and excludes BCI and anything that depends
    227         // on ART internals.
    228         "903-hello-tagging/tagging.cc",
    229         "904-object-allocation/tracking.cc",
    230         "905-object-free/tracking_free.cc",
    231         "906-iterate-heap/iterate_heap.cc",
    232         "907-get-loaded-classes/get_loaded_classes.cc",
    233         "908-gc-start-finish/gc_callbacks.cc",
    234         "910-methods/methods.cc",
    235         "911-get-stack-trace/stack_trace.cc",
    236         "912-classes/classes.cc",
    237         "913-heaps/heaps.cc",
    238         "918-fields/fields.cc",
    239         "920-objects/objects.cc",
    240         "922-properties/properties.cc",
    241         "923-monitors/monitors.cc",
    242         "924-threads/threads.cc",
    243         "925-threadgroups/threadgroups.cc",
    244         "927-timers/timers.cc",
    245         "928-jni-table/jni_table.cc",
    246         "929-search/search.cc",
    247         "931-agent-thread/agent_thread.cc",
    248         "933-misc-events/misc_events.cc",
    249         "945-obsolete-native/obsolete_native.cc",
    250         "983-source-transform-verify/source_transform.cc",
    251         "984-obsolete-invoke/obsolete_invoke.cc",
    252         "986-native-method-bind/native_bind.cc",
    253         "987-agent-bind/agent_bind.cc",
    254         "989-method-trace-throw/method_trace.cc",
    255         "991-field-trace-2/field_trace.cc",
    256         "992-source-data/source_file.cc",
    257         "993-breakpoints/breakpoints.cc",
    258         "996-breakpoint-obsolete/obsolete_breakpoints.cc",
    259         "1900-track-alloc/alloc.cc",
    260         "1901-get-bytecodes/bytecodes.cc",
    261         "1905-suspend-native/native_suspend.cc",
    262         "1908-suspend-native-resume-self/native_suspend_resume.cc",
    263         "1909-per-agent-tls/agent_tls.cc",
    264         "1914-get-local-instance/local_instance.cc",
    265         "1919-vminit-thread-start-timing/vminit.cc",
    266         "1920-suspend-native-monitor/native_suspend_monitor.cc",
    267         "1921-suspend-native-recursive-monitor/native_suspend_recursive_monitor.cc",
    268         "1922-owned-monitors-info/owned_monitors.cc",
    269         "1924-frame-pop-toggle/frame_pop_toggle.cc",
    270         "1926-missed-frame-pop/frame_pop_missed.cc",
    271         "1927-exception-event/exception_event.cc",
    272         "1930-monitor-info/monitor.cc",
    273         "1932-monitor-events-misc/monitor_misc.cc",
    274         "1934-jvmti-signal-thread/signal_threads.cc",
    275         "1939-proxy-frames/local_instance.cc",
    276         "1941-dispose-stress/dispose_stress.cc",
    277         "1942-suspend-raw-monitor-exit/native_suspend_monitor.cc",
    278         "1943-suspend-raw-monitor-wait/native_suspend_monitor.cc",
    279         "1946-list-descriptors/descriptors.cc",
    280         "1950-unprepared-transform/unprepared_transform.cc",
    281     ],
    282     // Use NDK-compatible headers for ctstiagent.
    283     header_libs: [
    284         "libopenjdkjvmti_headers",
    285     ],
    286     include_dirs: ["art/test/ti-agent"],
    287 }
    288 
    289 art_cc_defaults {
    290     name: "libtiagent-defaults",
    291     defaults: [
    292         "libtiagent-base-defaults",
    293         "libartagent-defaults",
    294     ],
    295     srcs: [
    296         // This is to get the IsInterpreted native method.
    297         "common/stack_inspect.cc",
    298         "common/runtime_state.cc",
    299         "ti-agent/common_load.cc",
    300         // This includes the remaining test functions. We should try to refactor things to
    301         // make this list smaller.
    302         "901-hello-ti-agent/basics.cc",
    303         "909-attach-agent/attach.cc",
    304         "912-classes/classes_art.cc",
    305         "936-search-onload/search_onload.cc",
    306         "983-source-transform-verify/source_transform_art.cc",
    307         "1940-ddms-ext/ddm_ext.cc",
    308         "1944-sudden-exit/sudden_exit.cc",
    309     ],
    310 }
    311 
    312 art_cc_test_library {
    313     name: "libtiagent",
    314     defaults: ["libtiagent-defaults"],
    315     shared_libs: [
    316         "libart",
    317         "libdexfile",
    318     ],
    319 }
    320 
    321 art_cc_test_library {
    322     name: "libtiagentd",
    323     defaults: [
    324         "art_debug_defaults",
    325         "libtiagent-defaults",
    326     ],
    327     shared_libs: [
    328         "libartd",
    329         "libdexfiled",
    330     ],
    331 }
    332 
    333 cc_library_static {
    334     name: "libctstiagent",
    335     defaults: ["libtiagent-base-defaults"],
    336     host_supported: false,
    337     srcs: [
    338         "983-source-transform-verify/source_transform_slicer.cc",
    339     ],
    340     whole_static_libs: [
    341         "slicer_ndk",
    342     ],
    343     static_libs: [
    344         "libbase_ndk",
    345     ],
    346     shared_libs: [
    347         "libz",  // for slicer (using adler32).
    348     ],
    349     sdk_version: "current",
    350     stl: "c++_static",
    351     cpp_std: "c++14",
    352     include_dirs: [
    353         // This is needed to resolve the base/ header file in libdexfile. Unfortunately there are
    354         // many problems with how we export headers that are making doing this the 'right' way
    355         // difficult.
    356         // TODO: move those headers to art/ rather than under runtime.
    357         "art/runtime",
    358         // NDK headers aren't available in platform NDK builds.
    359         "libnativehelper/include_jni",
    360     ],
    361     export_include_dirs: ["ti-agent"],
    362 }
    363 
    364 art_cc_defaults {
    365     name: "libtistress-defaults",
    366     defaults: ["libartagent-defaults"],
    367     srcs: [
    368         "ti-stress/stress.cc",
    369     ],
    370     shared_libs: [
    371         "libbase",
    372         "slicer",
    373     ],
    374     header_libs: ["libopenjdkjvmti_headers"],
    375 }
    376 
    377 art_cc_test_library {
    378     name: "libtistress",
    379     defaults: ["libtistress-defaults"],
    380     shared_libs: ["libart"],
    381 }
    382 
    383 art_cc_test_library {
    384     name: "libtistressd",
    385     defaults: [
    386         "art_debug_defaults",
    387         "libtistress-defaults",
    388     ],
    389     shared_libs: ["libartd"],
    390 }
    391 
    392 cc_defaults {
    393     name: "libarttest-defaults",
    394     defaults: [
    395         "art_test_defaults",
    396         "art_defaults",
    397     ],
    398     srcs: [
    399         "004-JniTest/jni_test.cc",
    400         "004-ReferenceMap/stack_walk_refmap_jni.cc",
    401         "004-SignalTest/signaltest.cc",
    402         "004-StackWalk/stack_walk_jni.cc",
    403         "004-ThreadStress/thread_stress.cc",
    404         "004-UnsafeTest/unsafe_test.cc",
    405         "044-proxy/native_proxy.cc",
    406         "051-thread/thread_test.cc",
    407         "117-nopatchoat/nopatchoat.cc",
    408         "1337-gc-coverage/gc_coverage.cc",
    409         "136-daemon-jni-shutdown/daemon_jni_shutdown.cc",
    410         "137-cfi/cfi.cc",
    411         "139-register-natives/regnative.cc",
    412         "141-class-unload/jni_unload.cc",
    413         "148-multithread-gc-annotations/gc_coverage.cc",
    414         "149-suspend-all-stress/suspend_all.cc",
    415         "154-gc-loop/heap_interface.cc",
    416         "167-visit-locks/visit_locks.cc",
    417         "169-threadgroup-jni/jni_daemon_thread.cc",
    418         "1945-proxy-method-arguments/get_args.cc",
    419         "203-multi-checkpoint/multi_checkpoint.cc",
    420         "305-other-fault-handler/fault_handler.cc",
    421         "454-get-vreg/get_vreg_jni.cc",
    422         "457-regs/regs_jni.cc",
    423         "461-get-reference-vreg/get_reference_vreg_jni.cc",
    424         "466-get-live-vreg/get_live_vreg_jni.cc",
    425         "497-inlining-and-class-loader/clear_dex_cache.cc",
    426         "543-env-long-ref/env_long_ref.cc",
    427         "566-polymorphic-inlining/polymorphic_inline.cc",
    428         "570-checker-osr/osr.cc",
    429         "595-profile-saving/profile-saving.cc",
    430         "596-app-images/app_images.cc",
    431         "596-monitor-inflation/monitor_inflation.cc",
    432         "597-deopt-new-string/deopt.cc",
    433         "616-cha-unloading/cha_unload.cc",
    434         "626-const-class-linking/clear_dex_cache_types.cc",
    435         "642-fp-callees/fp_callees.cc",
    436         "647-jni-get-field-id/get_field_id.cc",
    437         "656-annotation-lookup-generic-jni/test.cc",
    438         "661-oat-writer-layout/oat_writer_layout.cc",
    439         "664-aget-verifier/aget-verifier.cc",
    440         "667-jit-jni-stub/jit_jni_stub_test.cc",
    441         "674-hiddenapi/hiddenapi.cc",
    442         "708-jit-cache-churn/jit.cc",
    443         "909-attach-agent/disallow_debugging.cc",
    444         "1947-breakpoint-redefine-deopt/check_deopt.cc",
    445         "common/runtime_state.cc",
    446         "common/stack_inspect.cc",
    447     ],
    448     shared_libs: [
    449         "libbacktrace",
    450         "libbase",
    451         "libnativehelper",
    452     ],
    453 }
    454 
    455 art_cc_test_library {
    456     name: "libarttest",
    457     defaults: ["libarttest-defaults"],
    458     shared_libs: [
    459         "libart",
    460         "libdexfile",
    461     ],
    462 }
    463 
    464 art_cc_test_library {
    465     name: "libarttestd",
    466     defaults: [
    467         "art_debug_defaults",
    468         "libarttest-defaults",
    469     ],
    470     shared_libs: [
    471         "libartd",
    472         "libdexfiled",
    473     ],
    474 }
    475 
    476 art_cc_test_library {
    477     name: "libnativebridgetest",
    478     shared_libs: ["libart"],
    479     defaults: [
    480         "art_test_defaults",
    481         "art_debug_defaults",
    482         "art_defaults",
    483     ],
    484     header_libs: ["libnativebridge-dummy-headers"],
    485     srcs: ["115-native-bridge/nativebridge.cc"],
    486 }
    487