1bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom# 2bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom# Copyright (C) 2011 The Android Open Source Project 3bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom# 4bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom# Licensed under the Apache License, Version 2.0 (the "License"); 5bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom# you may not use this file except in compliance with the License. 6bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom# You may obtain a copy of the License at 7bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom# 8bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom# http://www.apache.org/licenses/LICENSE-2.0 9bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom# 10bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom# Unless required by applicable law or agreed to in writing, software 11bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom# distributed under the License is distributed on an "AS IS" BASIS, 12bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom# See the License for the specific language governing permissions and 14bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom# limitations under the License. 15bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom# 16bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom 17afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# The path for which all the dex files are relative, not actually the current directory. 18afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersLOCAL_PATH := art/test 19afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 20afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersinclude art/build/Android.common_test.mk 21afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersinclude art/build/Android.common_path.mk 22afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 23afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# Subdirectories in art/test which contain dex files used as inputs for gtests. 24afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersGTEST_DEX_DIRECTORIES := \ 25afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers AbstractMethod \ 26afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers AllFields \ 27afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ExceptionHandle \ 28afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers GetMethodSignature \ 29afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers Interfaces \ 30afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers Main \ 31afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers MyClass \ 32afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers MyClassNatives \ 33afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers Nested \ 34afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers NonStaticLeafMethods \ 35afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ProtoCompare \ 36afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ProtoCompare2 \ 37afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers StaticLeafMethods \ 38afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers Statics \ 39afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers StaticsFromCode \ 40afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers Transaction \ 41afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers XandY 42afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 43afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# Create build rules for each dex file recording the dependency. 44afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers$(foreach dir,$(GTEST_DEX_DIRECTORIES), $(eval $(call build-art-test-dex,art-gtest,$(dir), \ 451a2f84e80e852b1e210ed54fa995f3d781a23bd3Ian Rogers $(ART_TARGET_NATIVETEST_OUT),art/build/Android.gtest.mk,ART_TEST_TARGET_GTEST_$(dir)_DEX, \ 461a2f84e80e852b1e210ed54fa995f3d781a23bd3Ian Rogers ART_TEST_HOST_GTEST_$(dir)_DEX))) 47afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 48afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# Dex file dependencies for each gtest. 49eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_class_linker_test_DEX_DEPS := Interfaces MyClass Nested Statics StaticsFromCode 50eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_compiler_driver_test_DEX_DEPS := AbstractMethod 51eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_dex_file_test_DEX_DEPS := GetMethodSignature 52eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_exception_test_DEX_DEPS := ExceptionHandle 53eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_jni_compiler_test_DEX_DEPS := MyClassNatives 54eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_jni_internal_test_DEX_DEPS := AllFields StaticLeafMethods 55eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_object_test_DEX_DEPS := ProtoCompare ProtoCompare2 StaticsFromCode XandY 56eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_proxy_test_DEX_DEPS := Interfaces 57eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_reflection_test_DEX_DEPS := Main NonStaticLeafMethods StaticLeafMethods 58eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_stub_test_DEX_DEPS := AllFields 59eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_transaction_test_DEX_DEPS := Transaction 60afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 61afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# The elf writer test has dependencies on core.oat. 62eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_elf_writer_test_HOST_DEPS := $(HOST_CORE_OAT_OUT) $(2ND_HOST_CORE_OAT_OUT) 63eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_elf_writer_test_TARGET_DEPS := $(TARGET_CORE_OAT_OUT) $(2ND_TARGET_CORE_OAT_OUT) 64afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 65afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# The path for which all the source files are relative, not actually the current directory. 667940e44f4517de5e2634a7e07d58d0fb26160513Brian CarlstromLOCAL_PATH := art 677940e44f4517de5e2634a7e07d58d0fb26160513Brian Carlstrom 68a1ce1fef2d49d1d537776a5308ace7102a815fe5Brian CarlstromRUNTIME_GTEST_COMMON_SRC_FILES := \ 69afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/arch/arch_test.cc \ 7086797a791d692f81def5c1b5f0918992c49ed122Serban Constantinescu runtime/arch/memcmp16_test.cc \ 71afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/arch/stub_test.cc \ 72afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/barrier_test.cc \ 73afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/base/bit_field_test.cc \ 74afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/base/bit_vector_test.cc \ 75e05d1d5fd86867afc7513b1c546375dba11eee50Mathieu Chartier runtime/base/hash_set_test.cc \ 76afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/base/hex_dump_test.cc \ 77afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/base/histogram_test.cc \ 78afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/base/mutex_test.cc \ 79afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/base/scoped_flock_test.cc \ 8034fa79ece5b3a1940d412cd94dbdcc4225aae72fBrian Carlstrom runtime/base/stringprintf_test.cc \ 81afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/base/timing_logger_test.cc \ 82afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/base/unix_file/fd_file_test.cc \ 83afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/base/unix_file/mapped_file_test.cc \ 84afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/base/unix_file/null_file_test.cc \ 85afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/base/unix_file/random_access_file_utils_test.cc \ 86afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/base/unix_file/string_file_test.cc \ 87afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/class_linker_test.cc \ 88afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/dex_file_test.cc \ 89afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/dex_file_verifier_test.cc \ 90afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/dex_instruction_visitor_test.cc \ 91afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/dex_method_iterator_test.cc \ 92afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/entrypoints/math_entrypoints_test.cc \ 93afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/entrypoints/quick/quick_trampoline_entrypoints_test.cc \ 94afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/entrypoints_order_test.cc \ 95afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/exception_test.cc \ 962c26501d24d929abe096ecce44f91410290b33c0Mathieu Chartier runtime/gc/accounting/card_table_test.cc \ 97afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/gc/accounting/space_bitmap_test.cc \ 98afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/gc/heap_test.cc \ 99afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/gc/space/dlmalloc_space_base_test.cc \ 100afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/gc/space/dlmalloc_space_static_test.cc \ 101afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/gc/space/dlmalloc_space_random_test.cc \ 102afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/gc/space/rosalloc_space_base_test.cc \ 103afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/gc/space/rosalloc_space_static_test.cc \ 104afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/gc/space/rosalloc_space_random_test.cc \ 105afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/gc/space/large_object_space_test.cc \ 106afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/gtest_test.cc \ 107afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/handle_scope_test.cc \ 108afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/indenter_test.cc \ 109afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/indirect_reference_table_test.cc \ 110afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/instruction_set_test.cc \ 111afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/intern_table_test.cc \ 112afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/leb128_test.cc \ 113afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/mem_map_test.cc \ 114afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/mirror/dex_cache_test.cc \ 115afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/mirror/object_test.cc \ 11674240819ae09e29b2753ef38f4eb4be1c2762e2eAndreas Gampe runtime/monitor_pool_test.cc \ 1171af6a1fa35ff7dc0a5c653f19dbc8a91c914aa42Elena Sayapina runtime/monitor_test.cc \ 118afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/parsed_options_test.cc \ 119afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/reference_table_test.cc \ 120afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/thread_pool_test.cc \ 121afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/transaction_test.cc \ 122afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/utils_test.cc \ 123afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/verifier/method_verifier_test.cc \ 124afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/verifier/reg_type_test.cc \ 125afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/zip_archive_test.cc 126a1ce1fef2d49d1d537776a5308ace7102a815fe5Brian Carlstrom 127a1ce1fef2d49d1d537776a5308ace7102a815fe5Brian CarlstromCOMPILER_GTEST_COMMON_SRC_FILES := \ 128afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/jni_internal_test.cc \ 12995b4c65da93500cdbdcaa3e01010771ef3f466f1Jeff Hao runtime/proxy_test.cc \ 130afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers runtime/reflection_test.cc \ 13195a059793c4c194f026afc74c713cc295d75d91aVladimir Marko compiler/dex/global_value_numbering_test.cc \ 132afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/dex/local_value_numbering_test.cc \ 13355fff044d3a4f7196098e25bab1dad106d9b54a2Vladimir Marko compiler/dex/mir_graph_test.cc \ 134afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/dex/mir_optimization_test.cc \ 135afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/driver/compiler_driver_test.cc \ 136afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/elf_writer_test.cc \ 137afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/image_test.cc \ 138afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/jni/jni_compiler_test.cc \ 139afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/oat_test.cc \ 140afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/optimizing/codegen_test.cc \ 141afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/optimizing/dominator_test.cc \ 142afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/optimizing/find_loops_test.cc \ 143afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/optimizing/graph_test.cc \ 144afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/optimizing/linearize_test.cc \ 145afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/optimizing/liveness_test.cc \ 146afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/optimizing/live_interval_test.cc \ 147afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/optimizing/live_ranges_test.cc \ 148afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/optimizing/parallel_move_test.cc \ 149afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/optimizing/pretty_printer_test.cc \ 150afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/optimizing/register_allocator_test.cc \ 151afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/optimizing/ssa_test.cc \ 15299ea58cc68b51837c065f4a2a54efbf208dd76faNicolas Geoffray compiler/optimizing/stack_map_test.cc \ 153afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/output_stream_test.cc \ 154afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/utils/arena_allocator_test.cc \ 155afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/utils/dedupe_set_test.cc \ 15662746d8d9c4400e4764f162b22bfb1a32be287a9Andreas Gampe compiler/utils/swap_space_test.cc \ 157afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/utils/arm/managed_register_arm_test.cc \ 158afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/utils/arm64/managed_register_arm64_test.cc \ 159afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/utils/x86/managed_register_x86_test.cc \ 16051c2467e8771b56e25ae4f17f66522f979f57a7eBrian Carlstrom 1618cc5162f19d64eb6414e7e421cea4413debe671eDragos Sbirleaifeq ($(ART_SEA_IR_MODE),true) 162a1ce1fef2d49d1d537776a5308ace7102a815fe5Brian CarlstromCOMPILER_GTEST_COMMON_SRC_FILES += \ 163afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/utils/scoped_hashtable_test.cc \ 164afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/sea_ir/types/type_data_test.cc \ 165afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/sea_ir/types/type_inference_visitor_test.cc \ 166afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/sea_ir/ir/regions_test.cc 1678cc5162f19d64eb6414e7e421cea4413debe671eDragos Sbirleaendif 1688cc5162f19d64eb6414e7e421cea4413debe671eDragos Sbirlea 169a1ce1fef2d49d1d537776a5308ace7102a815fe5Brian CarlstromRUNTIME_GTEST_TARGET_SRC_FILES := \ 170afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $(RUNTIME_GTEST_COMMON_SRC_FILES) 171a1ce1fef2d49d1d537776a5308ace7102a815fe5Brian Carlstrom 172a1ce1fef2d49d1d537776a5308ace7102a815fe5Brian CarlstromRUNTIME_GTEST_HOST_SRC_FILES := \ 173afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $(RUNTIME_GTEST_COMMON_SRC_FILES) 174a1ce1fef2d49d1d537776a5308ace7102a815fe5Brian Carlstrom 175a1ce1fef2d49d1d537776a5308ace7102a815fe5Brian CarlstromCOMPILER_GTEST_TARGET_SRC_FILES := \ 176afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $(COMPILER_GTEST_COMMON_SRC_FILES) 17751c2467e8771b56e25ae4f17f66522f979f57a7eBrian Carlstrom 178a1ce1fef2d49d1d537776a5308ace7102a815fe5Brian CarlstromCOMPILER_GTEST_HOST_SRC_FILES := \ 179afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $(COMPILER_GTEST_COMMON_SRC_FILES) \ 1801a43dd78d054dbad8d7af9ba4829ea2f1cb70b53Nicolas Geoffray compiler/utils//assembler_thumb_test.cc \ 181afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/utils/x86/assembler_x86_test.cc \ 182afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers compiler/utils/x86_64/assembler_x86_64_test.cc 183bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom 184c4c9881e5d22432f3f1a30eeec5aa109dfc08a7dShih-wei LiaoART_TEST_CFLAGS := 185c531cefbfb5394413122e9f57d211ba436cff012buzbeeifeq ($(ART_USE_PORTABLE_COMPILER),true) 186c531cefbfb5394413122e9f57d211ba436cff012buzbee ART_TEST_CFLAGS += -DART_USE_PORTABLE_COMPILER=1 1872cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbeeendif 1882cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee 189e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogersinclude $(CLEAR_VARS) 190e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_MODULE := libart-gtest 191e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_MODULE_TAGS := optional 192e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_CPP_EXTENSION := cc 193e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_CFLAGS := $(ART_TARGET_CFLAGS) 194e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_SRC_FILES := runtime/common_runtime_test.cc compiler/common_compiler_test.cc 195e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_C_INCLUDES := $(ART_C_INCLUDES) art/runtime art/compiler 196e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_SHARED_LIBRARIES := libcutils libartd libartd-compiler libdl 197e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_STATIC_LIBRARIES += libgtest_libc++ 198e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_CLANG := $(ART_TARGET_CLANG) 199e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common_build.mk 200e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_ADDITIONAL_DEPENDENCIES += art/build/Android.gtest.mk 201e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogersinclude external/libcxx/libcxx.mk 202e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogersinclude $(BUILD_SHARED_LIBRARY) 203e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogers 204e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogersinclude $(CLEAR_VARS) 205e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_MODULE := libart-gtest 206e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_MODULE_TAGS := optional 207e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_CPP_EXTENSION := cc 208e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_CFLAGS := $(ART_HOST_CFLAGS) 209e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_SRC_FILES := runtime/common_runtime_test.cc compiler/common_compiler_test.cc 210e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_C_INCLUDES := $(ART_C_INCLUDES) art/runtime art/compiler 211e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_SHARED_LIBRARIES := libartd libartd-compiler 212e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_STATIC_LIBRARIES := libcutils 213e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogersifneq ($(WITHOUT_HOST_CLANG),true) 214e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogers # GCC host compiled tests fail with this linked, presumably due to destructors that run. 215e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogers LOCAL_STATIC_LIBRARIES += libgtest_libc++_host 216e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogersendif 217e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_LDLIBS += -ldl -lpthread 218e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_MULTILIB := both 219e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_CLANG := $(ART_HOST_CLANG) 220e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common_build.mk 221e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian RogersLOCAL_ADDITIONAL_DEPENDENCIES += art/build/Android.gtest.mk 222e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogersinclude external/libcxx/libcxx.mk 223e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogersinclude $(BUILD_HOST_SHARED_LIBRARY) 224e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogers 225afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# Variables holding collections of gtest pre-requisits used to run a number of gtests. 226afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_HOST_GTEST$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 227afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_HOST_GTEST$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 228afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_HOST_GTEST_RULES := 229afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_HOST_VALGRIND_GTEST$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 230afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_HOST_VALGRIND_GTEST$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 231afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_HOST_VALGRIND_GTEST_RULES := 232afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_TARGET_GTEST$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 233afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_TARGET_GTEST$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 234afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_TARGET_GTEST_RULES := 235afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 236afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# Define a make rule for a target device gtest. 237afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# $(1): gtest name - the name of the test we're building such as leb128_test. 238afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# $(2): 2ND_ or undefined - used to differentiate between the primary and secondary architecture. 239afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersdefine define-art-gtest-rule-target 240afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers gtest_rule := test-art-target-gtest-$(1)$$($(2)ART_PHONY_TEST_TARGET_SUFFIX) 241afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 242532714abd50c547f0fdbe830f811d99e621e2d34Brian Carlstrom # Add the test dependencies to test-art-target-sync, which will be a prerequisite for the test 243afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers # to ensure files are pushed to the device. 244afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers TEST_ART_TARGET_SYNC_DEPS += \ 245eb85f2bab0b402094a56276558afbf0e137176ebBrian Carlstrom $$(ART_GTEST_$(1)_TARGET_DEPS) \ 2461a2f84e80e852b1e210ed54fa995f3d781a23bd3Ian Rogers $(foreach file,$(ART_GTEST_$(1)_DEX_DEPS),$(ART_TEST_TARGET_GTEST_$(file)_DEX)) \ 247afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $$(ART_TARGET_NATIVETEST_OUT)/$$(TARGET_$(2)ARCH)/$(1) \ 248665de8a1710d2418f60d3bffdc99bdac32252530Ian Rogers $$($(2)TARGET_OUT_SHARED_LIBRARIES)/libjavacore.so 249afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 250afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers.PHONY: $$(gtest_rule) 251afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers$$(gtest_rule): test-art-target-sync 252afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $(hide) adb shell touch $(ART_TARGET_TEST_DIR)/$(TARGET_$(2)ARCH)/$$@-$$$$PPID 253afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $(hide) adb shell rm $(ART_TARGET_TEST_DIR)/$(TARGET_$(2)ARCH)/$$@-$$$$PPID 254afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $(hide) adb shell chmod 755 $(ART_TARGET_NATIVETEST_DIR)/$(TARGET_$(2)ARCH)/$(1) 255afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $(hide) $$(call ART_TEST_SKIP,$$@) && \ 256327e6b49230c2adcb142fe59ea03a6a13cfe346cBrian Carlstrom (adb shell "$(ART_TARGET_NATIVETEST_DIR)/$(TARGET_$(2)ARCH)/$(1) && touch $(ART_TARGET_TEST_DIR)/$(TARGET_$(2)ARCH)/$$@-$$$$PPID" \ 257afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers && (adb pull $(ART_TARGET_TEST_DIR)/$(TARGET_$(2)ARCH)/$$@-$$$$PPID /tmp/ \ 258afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers && $$(call ART_TEST_PASSED,$$@)) \ 259afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers || $$(call ART_TEST_FAILED,$$@)) 260afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $(hide) rm /tmp/$$@-$$$$PPID 261afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 262afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ART_TEST_TARGET_GTEST$($(2)ART_PHONY_TEST_TARGET_SUFFIX)_RULES += $$(gtest_rule) 263afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ART_TEST_TARGET_GTEST_RULES += $$(gtest_rule) 264afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ART_TEST_TARGET_GTEST_$(1)_RULES += $$(gtest_rule) 265afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 266afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers # Clear locally defined variables. 267afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers gtest_rule := 268afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersendef # define-art-gtest-rule-target 269afbaa1aab02cfe519d00336870b1bcd24b61378dAndreas Gampe 270afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# Define make rules for a host gtests. 271afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# $(1): gtest name - the name of the test we're building such as leb128_test. 272afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# $(2): 2ND_ or undefined - used to differentiate between the primary and secondary architecture. 273afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersdefine define-art-gtest-rule-host 274afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers gtest_rule := test-art-host-gtest-$(1)$$($(2)ART_PHONY_TEST_HOST_SUFFIX) 275afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers gtest_exe := $$(HOST_OUT_EXECUTABLES)/$(1)$$($(2)ART_PHONY_TEST_HOST_SUFFIX) 276665de8a1710d2418f60d3bffdc99bdac32252530Ian Rogers # Dependencies for all host gtests. 277665de8a1710d2418f60d3bffdc99bdac32252530Ian Rogers gtest_deps := $$(HOST_CORE_DEX_LOCATIONS) \ 2784d1231d61862b17bc9dce8ff65c5ada93bdcfb15Nicolas Geoffray $$($(2)ART_HOST_OUT_SHARED_LIBRARIES)/libjavacore$$(ART_HOST_SHLIB_EXTENSION) 279665de8a1710d2418f60d3bffdc99bdac32252530Ian Rogers 280afbaa1aab02cfe519d00336870b1bcd24b61378dAndreas Gampe 281afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers.PHONY: $$(gtest_rule) 2821a2f84e80e852b1e210ed54fa995f3d781a23bd3Ian Rogers$$(gtest_rule): $$(gtest_exe) $$(ART_GTEST_$(1)_HOST_DEPS) $(foreach file,$(ART_GTEST_$(1)_DEX_DEPS),$(ART_TEST_HOST_GTEST_$(file)_DEX)) $$(gtest_deps) 2834b70d11dc00b163328c500b0061e9f956dd18903Dmitriy Ivanov $(hide) ($$(call ART_TEST_SKIP,$$@) && $$< && $$(call ART_TEST_PASSED,$$@)) \ 284afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers || $$(call ART_TEST_FAILED,$$@) 285afbaa1aab02cfe519d00336870b1bcd24b61378dAndreas Gampe 286afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ART_TEST_HOST_GTEST$$($(2)ART_PHONY_TEST_HOST_SUFFIX)_RULES += $$(gtest_rule) 287afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ART_TEST_HOST_GTEST_RULES += $$(gtest_rule) 288afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ART_TEST_HOST_GTEST_$(1)_RULES += $$(gtest_rule) 289afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 290afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers.PHONY: valgrind-$$(gtest_rule) 2911a2f84e80e852b1e210ed54fa995f3d781a23bd3Ian Rogersvalgrind-$$(gtest_rule): $$(gtest_exe) $$(ART_GTEST_$(1)_HOST_DEPS) $(foreach file,$(ART_GTEST_$(1)_DEX_DEPS),$(ART_TEST_HOST_GTEST_$(file)_DEX)) $$(gtest_deps) 292afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $(hide) $$(call ART_TEST_SKIP,$$@) && \ 293afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers valgrind --leak-check=full --error-exitcode=1 $$< && $$(call ART_TEST_PASSED,$$@) \ 294afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers || $$(call ART_TEST_FAILED,$$@) 295afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 296afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ART_TEST_HOST_VALGRIND_GTEST$$($(2)ART_PHONY_TEST_HOST_SUFFIX)_RULES += valgrind-$$(gtest_rule) 297afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ART_TEST_HOST_VALGRIND_GTEST_RULES += valgrind-$$(gtest_rule) 298afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ART_TEST_HOST_VALGRIND_GTEST_$(1)_RULES += valgrind-$$(gtest_rule) 299afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 300afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers # Clear locally defined variables. 301afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers valgrind_gtest_rule := 302afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers gtest_rule := 303afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers gtest_exe := 304665de8a1710d2418f60d3bffdc99bdac32252530Ian Rogers gtest_deps := 305afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersendef # define-art-gtest-rule-host 306afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 307afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# Define the rules to build and run host and target gtests. 308bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom# $(1): target or host 3090796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom# $(2): file name 310a1ce1fef2d49d1d537776a5308ace7102a815fe5Brian Carlstrom# $(3): extra C includes 311a1ce1fef2d49d1d537776a5308ace7102a815fe5Brian Carlstrom# $(4): extra shared libraries 312afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersdefine define-art-gtest 3130796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom ifneq ($(1),target) 3140796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom ifneq ($(1),host) 3150796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom $$(error expected target or host for argument 1, received $(1)) 3160796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom endif 3170796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom endif 3180796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom 3190796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom art_target_or_host := $(1) 3200796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom art_gtest_filename := $(2) 321a1ce1fef2d49d1d537776a5308ace7102a815fe5Brian Carlstrom art_gtest_extra_c_includes := $(3) 322a1ce1fef2d49d1d537776a5308ace7102a815fe5Brian Carlstrom art_gtest_extra_shared_libraries := $(4) 3230796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom 324afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers include $$(CLEAR_VARS) 32547a0d5a6f221066c3daf7f67f2122ed9c9cd217cBrian Carlstrom art_gtest_name := $$(notdir $$(basename $$(art_gtest_filename))) 32647a0d5a6f221066c3daf7f67f2122ed9c9cd217cBrian Carlstrom LOCAL_MODULE := $$(art_gtest_name) 327871599a0289b6b81f83caafae7ba755718186205Brian Carlstrom ifeq ($$(art_target_or_host),target) 328871599a0289b6b81f83caafae7ba755718186205Brian Carlstrom LOCAL_MODULE_TAGS := tests 329871599a0289b6b81f83caafae7ba755718186205Brian Carlstrom endif 330afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers LOCAL_CPP_EXTENSION := $$(ART_CPP_EXTENSION) 331e7bc70b7c5d704a9ecc5d3b6e0851921e59ba9afDmitriy Ivanov LOCAL_SRC_FILES := $$(art_gtest_filename) 332afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers LOCAL_C_INCLUDES += $$(ART_C_INCLUDES) art/runtime $$(art_gtest_extra_c_includes) 333e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogers LOCAL_SHARED_LIBRARIES += libartd $$(art_gtest_extra_shared_libraries) libart-gtest 334e7bc70b7c5d704a9ecc5d3b6e0851921e59ba9afDmitriy Ivanov LOCAL_WHOLE_STATIC_LIBRARIES += libsigchain 3354478eb0a14a154fbdbaeef075dce8a5f8a33b25cBrian Carlstrom 336e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogers LOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common_build.mk 337e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogers LOCAL_ADDITIONAL_DEPENDENCIES += art/build/Android.gtest.mk 338b9cc1ca34adec5e9254f78e9ee40d57348aa2fd0Brian Carlstrom 3390f09676a8f61809c474e71b4a677093615bfba19Elliott Hughes # Mac OS linker doesn't understand --export-dynamic. 340afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ifneq ($$(HOST_OS)-$$(art_target_or_host),darwin-host) 341b264f081424642b06b0bbe7102781895d41faa9dElliott Hughes # Allow jni_compiler_test to find Java_MyClassNatives_bar within itself using dlopen(NULL, ...). 342b264f081424642b06b0bbe7102781895d41faa9dElliott Hughes LOCAL_LDFLAGS := -Wl,--export-dynamic -Wl,-u,Java_MyClassNatives_bar -Wl,-u,Java_MyClassNatives_sbar 343cfede668645d1fd40ff500974188cab5fb49d11cBrian Carlstrom endif 3440796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom 345afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers LOCAL_CFLAGS := $$(ART_TEST_CFLAGS) 3462a0e954ecf7c60e6ec62d64b9382cc4ee447e224Dan Albert include external/libcxx/libcxx.mk 3470796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom ifeq ($$(art_target_or_host),target) 348afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $$(eval $$(call set-target-local-clang-vars)) 349afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $$(eval $$(call set-target-local-cflags-vars,debug)) 35015523731549152276f23dcf94d81b1a9ce9c5038Serban Constantinescu LOCAL_SHARED_LIBRARIES += libdl libicuuc libicui18n libnativehelper libz libcutils libvixl 351afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers LOCAL_MODULE_PATH_32 := $$(ART_TARGET_NATIVETEST_OUT)/$$(ART_TARGET_ARCH_32) 352afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers LOCAL_MODULE_PATH_64 := $$(ART_TARGET_NATIVETEST_OUT)/$$(ART_TARGET_ARCH_64) 353afbaa1aab02cfe519d00336870b1bcd24b61378dAndreas Gampe LOCAL_MULTILIB := both 354afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers include $$(BUILD_EXECUTABLE) 355afbaa1aab02cfe519d00336870b1bcd24b61378dAndreas Gampe 356afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ART_TEST_TARGET_GTEST_$$(art_gtest_name)_RULES := 357afbaa1aab02cfe519d00336870b1bcd24b61378dAndreas Gampe ifdef TARGET_2ND_ARCH 358afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $$(eval $$(call define-art-gtest-rule-target,$$(art_gtest_name),2ND_)) 359afbaa1aab02cfe519d00336870b1bcd24b61378dAndreas Gampe endif 360afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $$(eval $$(call define-art-gtest-rule-target,$$(art_gtest_name),)) 361afbaa1aab02cfe519d00336870b1bcd24b61378dAndreas Gampe 362afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers # A rule to run the different architecture versions of the gtest. 363afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers.PHONY: test-art-target-gtest-$$(art_gtest_name) 364afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogerstest-art-target-gtest-$$(art_gtest_name): $$(ART_TEST_TARGET_GTEST_$$(art_gtest_name)_RULES) 365afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $$(hide) $$(call ART_TEST_PREREQ_FINISHED,$$@) 366afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 367afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers # Clear locally defined variables. 368afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ART_TEST_TARGET_GTEST_$$(art_gtest_name)_RULES := 3690796af03edc06d92bb8d631f1c0c23befdae2315Brian Carlstrom else # host 370afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers LOCAL_CLANG := $$(ART_HOST_CLANG) 371afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers LOCAL_CFLAGS += $$(ART_HOST_CFLAGS) $$(ART_HOST_DEBUG_CFLAGS) 372bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom LOCAL_SHARED_LIBRARIES += libicuuc-host libicui18n-host libnativehelper libz-host 37315523731549152276f23dcf94d81b1a9ce9c5038Serban Constantinescu LOCAL_STATIC_LIBRARIES += libcutils libvixl 374cae10f73bdad63774a3a8bc67d568b131f9bd591Andrew Hsieh LOCAL_LDLIBS += -lpthread -ldl 375bd5ea6a2f7c61c4cd7b66fead1bedd96e938369dIan Rogers LOCAL_IS_HOST_MODULE := true 376afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers LOCAL_MULTILIB := both 377afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers LOCAL_MODULE_STEM_32 := $$(art_gtest_name)32 378afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers LOCAL_MODULE_STEM_64 := $$(art_gtest_name)64 379afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers include $$(BUILD_HOST_EXECUTABLE) 380afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 381afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ART_TEST_HOST_GTEST_$$(art_gtest_name)_RULES := 382afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ART_TEST_HOST_VALGRIND_GTEST_$$(art_gtest_name)_RULES := 383afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ifneq ($$(HOST_PREFER_32_BIT),true) 384afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $$(eval $$(call define-art-gtest-rule-host,$$(art_gtest_name),2ND_)) 385afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers endif 386afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $$(eval $$(call define-art-gtest-rule-host,$$(art_gtest_name),)) 387afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 388afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers # Rules to run the different architecture versions of the gtest. 389afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers.PHONY: test-art-host-gtest-$$(art_gtest_name) 390afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogerstest-art-host-gtest-$$(art_gtest_name): $$(ART_TEST_HOST_GTEST_$$(art_gtest_name)_RULES) 391afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $$(hide) $$(call ART_TEST_PREREQ_FINISHED,$$@) 392afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 393afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers.PHONY: valgrind-test-art-host-gtest-$$(art_gtest_name) 394afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersvalgrind-test-art-host-gtest-$$(art_gtest_name): $$(ART_TEST_HOST_VALGRIND_GTEST_$$(art_gtest_name)_RULES) 395afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $$(hide) $$(call ART_TEST_PREREQ_FINISHED,$$@) 396afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 397afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers # Clear locally defined variables. 398afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ART_TEST_HOST_GTEST_$$(art_gtest_name)_RULES := 399afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ART_TEST_HOST_VALGRIND_GTEST_$$(art_gtest_name)_RULES := 400afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers endif # host_or_target 401afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 402afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers # Clear locally defined variables. 403afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers art_target_or_host := 404afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers art_gtest_filename := 405afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers art_gtest_extra_c_includes := 406afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers art_gtest_extra_shared_libraries := 407afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers art_gtest_name := 408afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersendef # define-art-gtest 409bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstrom 410bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstromifeq ($(ART_BUILD_TARGET),true) 411afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $(foreach file,$(RUNTIME_GTEST_TARGET_SRC_FILES), $(eval $(call define-art-gtest,target,$(file),,))) 412afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $(foreach file,$(COMPILER_GTEST_TARGET_SRC_FILES), $(eval $(call define-art-gtest,target,$(file),art/compiler,libartd-compiler))) 413bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstromendif 414c5f17732d8144491c642776b6b48c85dfadf4b52Ian Rogersifeq ($(ART_BUILD_HOST),true) 415afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $(foreach file,$(RUNTIME_GTEST_HOST_SRC_FILES), $(eval $(call define-art-gtest,host,$(file),,))) 416afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $(foreach file,$(COMPILER_GTEST_HOST_SRC_FILES), $(eval $(call define-art-gtest,host,$(file),art/compiler,libartd-compiler))) 417bbf1e41e8d9b2446756e729f30c2501fb3e682c1Brian Carlstromendif 418ec245a42e04adbde15b75d8123287c54fd9fa7b3Tsu Chiang Chuang 419ec245a42e04adbde15b75d8123287c54fd9fa7b3Tsu Chiang Chuang# Used outside the art project to get a list of the current tests 420ec245a42e04adbde15b75d8123287c54fd9fa7b3Tsu Chiang ChuangRUNTIME_TARGET_GTEST_MAKE_TARGETS := 421ec245a42e04adbde15b75d8123287c54fd9fa7b3Tsu Chiang Chuang$(foreach file, $(RUNTIME_GTEST_TARGET_SRC_FILES), $(eval RUNTIME_TARGET_GTEST_MAKE_TARGETS += $$(notdir $$(basename $$(file))))) 422ec245a42e04adbde15b75d8123287c54fd9fa7b3Tsu Chiang ChuangCOMPILER_TARGET_GTEST_MAKE_TARGETS := 423ec245a42e04adbde15b75d8123287c54fd9fa7b3Tsu Chiang Chuang$(foreach file, $(COMPILER_GTEST_TARGET_SRC_FILES), $(eval COMPILER_TARGET_GTEST_MAKE_TARGETS += $$(notdir $$(basename $$(file))))) 424afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 425afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# Define all the combinations of host/target, valgrind and suffix such as: 426afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# test-art-host-gtest or valgrind-test-art-host-gtest64 427afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# $(1): host or target 428afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# $(2): HOST or TARGET 429afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# $(3): valgrind- or undefined 430afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# $(4): undefined, 32 or 64 431afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersdefine define-test-art-gtest-combination 432afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ifeq ($(1),host) 433afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ifneq ($(2),HOST) 434afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $$(error argument mismatch $(1) and ($2)) 435afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers endif 436afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers else 437afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ifneq ($(1),target) 438afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $$(error found $(1) expected host or target) 439afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers endif 440afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers ifneq ($(2),TARGET) 441afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $$(error argument mismatch $(1) and ($2)) 442afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers endif 443afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers endif 444afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 445afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers rule_name := $(3)test-art-$(1)-gtest$(4) 446afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers dependencies := $$(ART_TEST_$(2)_GTEST$(4)_RULES) 447afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 448afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers.PHONY: $$(rule_name) 449afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers$$(rule_name): $$(dependencies) 450afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers $(hide) $$(call ART_TEST_PREREQ_FINISHED,$$@) 451afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 452afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers # Clear locally defined variables. 453afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers rule_name := 454afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers dependencies := 455afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersendef # define-test-art-gtest-combination 456afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 457afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers$(eval $(call define-test-art-gtest-combination,target,TARGET,,)) 458afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers$(eval $(call define-test-art-gtest-combination,target,TARGET,,$(ART_PHONY_TEST_TARGET_SUFFIX))) 459afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersifdef TARGET_2ND_ARCH 460afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers$(eval $(call define-test-art-gtest-combination,target,TARGET,,$(2ND_ART_PHONY_TEST_TARGET_SUFFIX))) 461afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersendif 462afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers$(eval $(call define-test-art-gtest-combination,host,HOST,,)) 463afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers$(eval $(call define-test-art-gtest-combination,host,HOST,valgrind-,)) 464afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers$(eval $(call define-test-art-gtest-combination,host,HOST,,$(ART_PHONY_TEST_HOST_SUFFIX))) 465afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers$(eval $(call define-test-art-gtest-combination,host,HOST,valgrind-,$(ART_PHONY_TEST_HOST_SUFFIX))) 466afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersifneq ($(HOST_PREFER_32_BIT),true) 467afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers$(eval $(call define-test-art-gtest-combination,host,HOST,,$(2ND_ART_PHONY_TEST_HOST_SUFFIX))) 468afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers$(eval $(call define-test-art-gtest-combination,host,HOST,valgrind-,$(2ND_ART_PHONY_TEST_HOST_SUFFIX))) 469afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersendif 470afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers 471afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# Clear locally defined variables. 472afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersdefine-art-gtest-rule-target := 473afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersdefine-art-gtest-rule-host := 474afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersdefine-art-gtest := 475afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersdefine-test-art-gtest-combination := 476afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersRUNTIME_GTEST_COMMON_SRC_FILES := 477afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersCOMPILER_GTEST_COMMON_SRC_FILES := 478afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersRUNTIME_GTEST_TARGET_SRC_FILES := 479afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersRUNTIME_GTEST_HOST_SRC_FILES := 480afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersCOMPILER_GTEST_TARGET_SRC_FILES := 481afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersCOMPILER_GTEST_HOST_SRC_FILES := 482afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_CFLAGS := 483afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_HOST_GTEST$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 484afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_HOST_GTEST$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 485afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_HOST_GTEST_RULES := 486afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_HOST_VALGRIND_GTEST$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 487afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_HOST_VALGRIND_GTEST$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 488afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_HOST_VALGRIND_GTEST_RULES := 489afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_TARGET_GTEST$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 490afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_TARGET_GTEST$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 491afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_TARGET_GTEST_RULES := 492eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_class_linker_test_DEX_DEPS := 493eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_compiler_driver_test_DEX_DEPS := 494eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_dex_file_test_DEX_DEPS := 495eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_exception_test_DEX_DEPS := 496eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_elf_writer_test_HOST_DEPS := 497eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_elf_writer_test_TARGET_DEPS := 498eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_jni_compiler_test_DEX_DEPS := 499eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_jni_internal_test_DEX_DEPS := 500eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_object_test_DEX_DEPS := 501eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_proxy_test_DEX_DEPS := 502eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_reflection_test_DEX_DEPS := 503eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_stub_test_DEX_DEPS := 504eb85f2bab0b402094a56276558afbf0e137176ebBrian CarlstromART_GTEST_transaction_test_DEX_DEPS := 5051a2f84e80e852b1e210ed54fa995f3d781a23bd3Ian Rogers$(foreach dir,$(GTEST_DEX_DIRECTORIES), $(eval ART_TEST_TARGET_GTEST_$(dir)_DEX :=)) 5061a2f84e80e852b1e210ed54fa995f3d781a23bd3Ian Rogers$(foreach dir,$(GTEST_DEX_DIRECTORIES), $(eval ART_TEST_HOST_GTEST_$(dir)_DEX :=)) 507afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersGTEST_DEX_DIRECTORIES := 508532714abd50c547f0fdbe830f811d99e621e2d34Brian CarlstromLOCAL_PATH := 509