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 17LOCAL_PATH := $(call my-dir) 18 19include $(LOCAL_PATH)/list/vts_apk_package_list.mk 20include $(LOCAL_PATH)/list/vts_bin_package_list.mk 21include $(LOCAL_PATH)/list/vts_lib_package_list.mk 22include $(LOCAL_PATH)/list/vts_spec_file_list.mk 23include $(LOCAL_PATH)/list/vts_test_bin_package_list.mk 24include $(LOCAL_PATH)/list/vts_test_lib_package_list.mk 25include $(LOCAL_PATH)/list/vts_test_lib_hal_package_list.mk 26include $(LOCAL_PATH)/list/vts_test_lib_hidl_package_list.mk 27include $(LOCAL_PATH)/list/vts_func_fuzzer_package_list.mk 28include $(LOCAL_PATH)/list/vts_test_host_lib_package_list.mk 29include $(LOCAL_PATH)/list/vts_test_host_bin_package_list.mk 30include $(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 34VTS_OUT_ROOT := $(HOST_OUT)/vts 35VTS_TESTCASES_OUT := $(HOST_OUT)/vts/android-vts/testcases 36VTS_TOOLS_OUT := $(VTS_OUT_ROOT)/android-vts/tools 37 38# Packaging rule for android-vts.zip 39test_suite_name := vts 40test_suite_tradefed := vts-tradefed 41test_suite_readme := test/vts/README.md 42 43include $(BUILD_SYSTEM)/tasks/tools/compatibility.mk 44 45.PHONY: vts 46vts: $(compatibility_zip) 47$(call dist-for-goals, vts, $(compatibility_zip)) 48 49# Packaging rule for android-vts.zip's testcases dir (DATA subdir). 50target_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 63target_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 81target_spec_modules := \ 82 $(VTS_SPEC_FILE_LIST) 83 84target_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 96target_trace_files := \ 97 $(call find-files-in-subdirs,test/vts-testcase/hal-trace,"*.vts.trace" -and -type f,.) \ 98 99target_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 103target_hal_hash_modules := \ 104 $(vts_test_hidl_hal_hash_list) \ 105 106target_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 114target_hostdriven_modules := \ 115 $(vts_test_host_lib_packages) \ 116 $(vts_test_host_bin_packages) \ 117 118target_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 132host_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 138host_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 143host_framework_copy_pairs := \ 144 $(foreach f,$(host_framework_files),\ 145 test/vts/$(f):$(VTS_TESTCASES_OUT)/vts/$(f)) 146 147host_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 153host_testcase_copy_pairs := \ 154 $(foreach f,$(host_testcase_files),\ 155 test/vts-testcase/$(f):$(VTS_TESTCASES_OUT)/vts/testcases/$(f)) 156 157host_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 162host_camera_its_copy_pairs := \ 163 $(foreach f,$(host_camera_its_files),\ 164 cts/apps/CameraITS/$(f):$(VTS_TESTCASES_OUT)/CameraITS/$(f)) 165 166host_systrace_files := \ 167 $(filter-out .git/%, \ 168 $(call find-files-in-subdirs,external/chromium-trace,"*" -and -type f,.)) 169 170host_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 174media_test_res_files := \ 175 $(call find-files-in-subdirs,hardware/interfaces/media/res,"*.*" -and -type f,.) \ 176 177media_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 181performance_test_res_files := \ 182 $(call find-files-in-subdirs,test/vts-testcase/performance/res/,"*.*" -and -type f,.) \ 183 184performance_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 188audio_test_res_files := \ 189 $(call find-files-in-subdirs,hardware/interfaces/audio,"*.xsd" -and -type f,.) \ 190 191audio_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