1 # 2 # Copyright (C) 2017 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 LOCAL_PATH := $(call my-dir) 18 19 include $(LOCAL_PATH)/list/vts_apk_package_list.mk 20 include $(LOCAL_PATH)/list/vts_bin_package_list.mk 21 include $(LOCAL_PATH)/list/vts_lib_package_list.mk 22 include $(LOCAL_PATH)/list/vts_spec_file_list.mk 23 include $(LOCAL_PATH)/list/vts_test_bin_package_list.mk 24 include $(LOCAL_PATH)/list/vts_test_lib_package_list.mk 25 include $(LOCAL_PATH)/list/vts_test_lib_hal_package_list.mk 26 include $(LOCAL_PATH)/list/vts_test_lib_hidl_package_list.mk 27 include $(LOCAL_PATH)/list/vts_func_fuzzer_package_list.mk 28 include $(LOCAL_PATH)/list/vts_test_host_lib_package_list.mk 29 include $(LOCAL_PATH)/list/vts_test_host_bin_package_list.mk 30 include $(LOCAL_PATH)/list/vts_test_hidl_hal_hash_list.mk 31 -include external/linux-kselftest/android/kselftest_test_list.mk 32 -include external/ltp/android/ltp_package_list.mk 33 34 VTS_OUT_ROOT := $(HOST_OUT)/vts 35 VTS_TESTCASES_OUT := $(HOST_OUT)/vts/android-vts/testcases 36 VTS_TOOLS_OUT := $(VTS_OUT_ROOT)/android-vts/tools 37 38 # Packaging rule for android-vts.zip 39 test_suite_name := vts 40 test_suite_tradefed := vts-tradefed 41 test_suite_readme := test/vts/README.md 42 43 include $(BUILD_SYSTEM)/tasks/tools/compatibility.mk 44 45 .PHONY: vts 46 vts: $(compatibility_zip) 47 $(call dist-for-goals, vts, $(compatibility_zip)) 48 49 # Packaging rule for android-vts.zip's testcases dir (DATA subdir). 50 target_native_modules := \ 51 $(kselftest_modules) \ 52 ltp \ 53 $(ltp_packages) \ 54 $(vts_apk_packages) \ 55 $(vts_bin_packages) \ 56 $(vts_lib_packages) \ 57 $(vts_test_bin_packages) \ 58 $(vts_test_lib_packages) \ 59 $(vts_test_lib_hal_packages) \ 60 $(vts_test_lib_hidl_packages) \ 61 $(vts_func_fuzzer_packages) \ 62 63 target_native_copy_pairs := 64 $(foreach m,$(target_native_modules),\ 65 $(eval _built_files := $(strip $(ALL_MODULES.$(m).BUILT_INSTALLED)\ 66 $(ALL_MODULES.$(m)$(TARGET_2ND_ARCH_MODULE_SUFFIX).BUILT_INSTALLED)))\ 67 $(foreach i, $(_built_files),\ 68 $(eval bui_ins := $(subst :,$(space),$(i)))\ 69 $(eval ins := $(word 2,$(bui_ins)))\ 70 $(if $(filter $(TARGET_OUT_ROOT)/%,$(ins)),\ 71 $(eval bui := $(word 1,$(bui_ins)))\ 72 $(eval my_built_modules += $(bui))\ 73 $(eval my_copy_dest := $(patsubst data/%,DATA/%,\ 74 $(patsubst system/%,DATA/%,\ 75 $(patsubst $(PRODUCT_OUT)/%,%,$(ins)))))\ 76 $(eval target_native_copy_pairs += $(bui):$(VTS_TESTCASES_OUT)/$(my_copy_dest)))\ 77 )) 78 79 # Packaging rule for android-vts.zip's testcases dir (spec subdir). 80 81 target_spec_modules := \ 82 $(VTS_SPEC_FILE_LIST) 83 84 target_spec_copy_pairs := 85 $(foreach m,$(target_spec_modules),\ 86 $(eval my_spec_copy_dir :=\ 87 spec/hardware/interfaces/$(word 2,$(subst android/hardware/, ,$(dir $(m))))/vts)\ 88 $(eval my_spec_copy_file := $(notdir $(m)))\ 89 $(eval my_spec_copy_dest := $(my_spec_copy_dir)/$(my_spec_copy_file))\ 90 $(eval target_spec_copy_pairs += $(m):$(VTS_TESTCASES_OUT)/$(my_spec_copy_dest))) 91 92 $(foreach m,$(vts_spec_file_list),\ 93 $(if $(wildcard $(m)),\ 94 $(eval target_spec_copy_pairs += $(m):$(VTS_TESTCASES_OUT)/spec/$(m)))) 95 96 target_trace_files := \ 97 $(call find-files-in-subdirs,test/vts-testcase/hal-trace,"*.vts.trace" -and -type f,.) \ 98 99 target_trace_copy_pairs := \ 100 $(foreach f,$(target_trace_files),\ 101 test/vts-testcase/hal-trace/$(f):$(VTS_TESTCASES_OUT)/hal-hidl-trace/test/vts-testcase/hal-trace/$(f)) 102 103 target_hal_hash_modules := \ 104 $(vts_test_hidl_hal_hash_list) \ 105 106 target_hal_hash_copy_pairs := 107 $(foreach m,$(target_hal_hash_modules),\ 108 $(if $(wildcard $(m)),\ 109 $(eval target_hal_hash_copy_pairs += $(m):$(VTS_TESTCASES_OUT)/hal-hidl-hash/$(m)))) 110 111 112 # Packaging rule for host-side test native packages 113 114 target_hostdriven_modules := \ 115 $(vts_test_host_lib_packages) \ 116 $(vts_test_host_bin_packages) \ 117 118 target_hostdriven_copy_pairs := 119 $(foreach m,$(target_hostdriven_modules),\ 120 $(eval _built_files := $(strip $(ALL_MODULES.$(m).BUILT_INSTALLED)\ 121 $(ALL_MODULES.$(m)$(HOST_2ND_ARCH_MODULE_SUFFIX).BUILT_INSTALLED)))\ 122 $(foreach i, $(_built_files),\ 123 $(eval bui_ins := $(subst :,$(space),$(i)))\ 124 $(eval ins := $(word 2,$(bui_ins)))\ 125 $(if $(filter $(HOST_OUT)/%,$(ins)),\ 126 $(eval bui := $(word 1,$(bui_ins)))\ 127 $(eval my_built_modules += $(bui))\ 128 $(eval my_copy_dest := $(patsubst $(HOST_OUT)/%,%,$(ins)))\ 129 $(eval target_hostdriven_copy_pairs += $(bui):$(VTS_TESTCASES_OUT)/host/$(my_copy_dest)))\ 130 )) 131 132 host_additional_deps_copy_pairs := \ 133 test/vts/tools/vts-tradefed/etc/vts-tradefed_win.bat:$(VTS_TOOLS_OUT)/vts-tradefed_win.bat \ 134 test/vts/tools/vts-tradefed/CtsDynamicConfig.xml:$(VTS_TESTCASES_OUT)/cts.dynamic 135 136 # Packaging rule for host-side Python logic, configs, and data files 137 138 host_framework_files := \ 139 $(call find-files-in-subdirs,test/vts,"*.py" -and -type f,.) \ 140 $(call find-files-in-subdirs,test/vts,"*.config" -and -type f,.) \ 141 $(call find-files-in-subdirs,test/vts,"*.push" -and -type f,.) 142 143 host_framework_copy_pairs := \ 144 $(foreach f,$(host_framework_files),\ 145 test/vts/$(f):$(VTS_TESTCASES_OUT)/vts/$(f)) 146 147 host_testcase_files := \ 148 $(call find-files-in-subdirs,test/vts-testcase,"*.py" -and -type f,.) \ 149 $(call find-files-in-subdirs,test/vts-testcase,"*.config" -and -type f,.) \ 150 $(call find-files-in-subdirs,test/vts-testcase,"*.push" -and -type f,.) \ 151 $(call find-files-in-subdirs,test/vts-testcase,"android-base*.cfg" -and -type f,.) 152 153 host_testcase_copy_pairs := \ 154 $(foreach f,$(host_testcase_files),\ 155 test/vts-testcase/$(f):$(VTS_TESTCASES_OUT)/vts/testcases/$(f)) 156 157 host_camera_its_files := \ 158 $(call find-files-in-subdirs,cts/apps/CameraITS,"*.py" -and -type f,.) \ 159 $(call find-files-in-subdirs,cts/apps/CameraITS,"*.pdf" -and -type f,.) \ 160 $(call find-files-in-subdirs,cts/apps/CameraITS,"*.png" -and -type f,.) 161 162 host_camera_its_copy_pairs := \ 163 $(foreach f,$(host_camera_its_files),\ 164 cts/apps/CameraITS/$(f):$(VTS_TESTCASES_OUT)/CameraITS/$(f)) 165 166 host_systrace_files := \ 167 $(filter-out .git/%, \ 168 $(call find-files-in-subdirs,external/chromium-trace,"*" -and -type f,.)) 169 170 host_systrace_copy_pairs := \ 171 $(foreach f,$(host_systrace_files),\ 172 external/chromium-trace/$(f):$(VTS_OUT_ROOT)/android-vts/tools/external/chromium-trace/$(f)) 173 174 media_test_res_files := \ 175 $(call find-files-in-subdirs,hardware/interfaces/media/res,"*.*" -and -type f,.) \ 176 177 media_test_res_copy_pairs := \ 178 $(foreach f,$(media_test_res_files),\ 179 hardware/interfaces/media/res/$(f):$(VTS_TESTCASES_OUT)/DATA/media/res/$(f)) 180 181 performance_test_res_files := \ 182 $(call find-files-in-subdirs,test/vts-testcase/performance/res/,"*.*" -and -type f,.) \ 183 184 performance_test_res_copy_pairs := \ 185 $(foreach f,$(performance_test_res_files),\ 186 test/vts-testcase/performance/res/$(f):$(VTS_TESTCASES_OUT)/DATA/performance/res/$(f)) 187 188 audio_test_res_files := \ 189 $(call find-files-in-subdirs,hardware/interfaces/audio,"*.xsd" -and -type f,.) \ 190 191 audio_test_res_copy_pairs := \ 192 $(foreach f,$(audio_test_res_files),\ 193 hardware/interfaces/audio/$(f):$(VTS_TESTCASES_OUT)/DATA/hardware/interfaces/audio/$(f)) 194 195 $(compatibility_zip): \ 196 $(call copy-many-files,$(target_native_copy_pairs)) \ 197 $(call copy-many-files,$(target_spec_copy_pairs)) \ 198 $(call copy-many-files,$(target_trace_copy_pairs)) \ 199 $(call copy-many-files,$(target_hostdriven_copy_pairs)) \ 200 $(call copy-many-files,$(target_hal_hash_copy_pairs)) \ 201 $(call copy-many-files,$(host_additional_deps_copy_pairs)) \ 202 $(call copy-many-files,$(host_framework_copy_pairs)) \ 203 $(call copy-many-files,$(host_testcase_copy_pairs)) \ 204 $(call copy-many-files,$(host_camera_its_copy_pairs)) \ 205 $(call copy-many-files,$(host_systrace_copy_pairs)) \ 206 $(call copy-many-files,$(media_test_res_copy_pairs)) \ 207 $(call copy-many-files,$(performance_test_res_copy_pairs)) \ 208 $(call copy-many-files,$(audio_test_res_copy_pairs)) \ 209 210 -include vendor/google_vts/tools/build/vts_package_vendor.mk 211