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 build_utils_dir := $(LOCAL_PATH)/../utils 20 21 include $(LOCAL_PATH)/list/vts_adapter_package_list.mk 22 include $(LOCAL_PATH)/list/vts_apk_package_list.mk 23 include $(LOCAL_PATH)/list/vts_bin_package_list.mk 24 include $(LOCAL_PATH)/list/vts_lib_package_list.mk 25 include $(LOCAL_PATH)/list/vts_spec_file_list.mk 26 include $(LOCAL_PATH)/list/vts_test_bin_package_list.mk 27 include $(LOCAL_PATH)/list/vts_test_lib_package_list.mk 28 include $(LOCAL_PATH)/list/vts_test_lib_hal_package_list.mk 29 include $(LOCAL_PATH)/list/vts_test_lib_hidl_package_list.mk 30 include $(LOCAL_PATH)/list/vts_func_fuzzer_package_list.mk 31 include $(LOCAL_PATH)/list/vts_test_host_lib_package_list.mk 32 include $(LOCAL_PATH)/list/vts_test_host_bin_package_list.mk 33 include $(LOCAL_PATH)/list/vts_test_hidl_hal_hash_list.mk 34 include $(build_utils_dir)/vts_package_utils.mk 35 -include external/linux-kselftest/android/kselftest_test_list.mk 36 -include external/ltp/android/ltp_package_list.mk 37 38 VTS_OUT_ROOT := $(HOST_OUT)/vts 39 VTS_TESTCASES_OUT := $(VTS_OUT_ROOT)/android-vts/testcases 40 VTS_TOOLS_OUT := $(VTS_OUT_ROOT)/android-vts/tools 41 42 # Packaging rule for android-vts.zip 43 test_suite_name := vts 44 test_suite_tradefed := vts-tradefed 45 test_suite_readme := test/vts/README.md 46 47 include $(BUILD_SYSTEM)/tasks/tools/compatibility.mk 48 49 .PHONY: vts 50 vts: $(compatibility_zip) vtslab adb 51 $(call dist-for-goals, vts, $(compatibility_zip)) 52 53 # Packaging rule for android-vts.zip's testcases dir (DATA subdir). 54 target_native_modules := \ 55 $(kselftest_modules) \ 56 ltp \ 57 $(ltp_packages) \ 58 $(vts_adapter_package_list) \ 59 $(vts_apk_packages) \ 60 $(vts_bin_packages) \ 61 $(vts_lib_packages) \ 62 $(vts_test_bin_packages) \ 63 $(vts_test_lib_packages) \ 64 $(vts_test_lib_hal_packages) \ 65 $(vts_test_lib_hidl_packages) \ 66 $(vts_func_fuzzer_packages) \ 67 68 target_native_copy_pairs := \ 69 $(call target-native-copy-pairs,$(target_native_modules),$(VTS_TESTCASES_OUT)) 70 71 # Packaging rule for android-vts.zip's testcases dir (spec subdir). 72 73 target_spec_modules := \ 74 $(VTS_SPEC_FILE_LIST) 75 76 target_spec_copy_pairs := 77 $(foreach m,$(target_spec_modules),\ 78 $(eval my_spec_copy_dir :=\ 79 spec/$(word 2,$(subst android/frameworks/, frameworks/hardware/interfaces/,\ 80 $(subst android/hardware/, hardware/interfaces/,\ 81 $(subst android/hidl/, system/libhidl/transport/,\ 82 $(subst android/system/, system/hardware/interfaces/,$(dir $(m)))))))/vts)\ 83 $(eval my_spec_copy_file := $(notdir $(m)))\ 84 $(eval my_spec_copy_dest := $(my_spec_copy_dir)/$(my_spec_copy_file))\ 85 $(eval target_spec_copy_pairs += $(m):$(VTS_TESTCASES_OUT)/$(my_spec_copy_dest))) 86 87 $(foreach m,$(vts_spec_file_list),\ 88 $(if $(wildcard $(m)),\ 89 $(eval target_spec_copy_pairs += $(m):$(VTS_TESTCASES_OUT)/spec/$(m)))) 90 91 target_trace_files := \ 92 $(call find-files-in-subdirs,test/vts-testcase/hal-trace,"*.vts.trace" -and -type f,.) \ 93 94 target_trace_copy_pairs := \ 95 $(foreach f,$(target_trace_files),\ 96 test/vts-testcase/hal-trace/$(f):$(VTS_TESTCASES_OUT)/hal-hidl-trace/test/vts-testcase/hal-trace/$(f)) 97 98 target_hal_hash_modules := \ 99 $(vts_test_hidl_hal_hash_list) \ 100 101 target_hal_hash_copy_pairs := 102 $(foreach m,$(target_hal_hash_modules),\ 103 $(if $(wildcard $(m)),\ 104 $(eval target_hal_hash_copy_pairs += $(m):$(VTS_TESTCASES_OUT)/hal-hidl-hash/$(m)))) 105 106 107 # Packaging rule for host-side test native packages 108 109 target_hostdriven_modules := \ 110 $(vts_test_host_lib_packages) \ 111 $(vts_test_host_bin_packages) \ 112 113 target_hostdriven_copy_pairs := \ 114 $(call host-native-copy-pairs,$(target_hostdriven_modules),$(VTS_TESTCASES_OUT)) 115 116 host_additional_deps_copy_pairs := \ 117 test/vts/tools/vts-tradefed/etc/vts-tradefed_win.bat:$(VTS_TOOLS_OUT)/vts-tradefed_win.bat \ 118 test/vts/tools/vts-tradefed/DynamicConfig.xml:$(VTS_TESTCASES_OUT)/cts.dynamic 119 120 # Packaging rule for host-side Python logic, configs, and data files 121 122 host_framework_files := \ 123 $(call find-files-in-subdirs,test/vts,"*.py" -and -type f,.) \ 124 $(call find-files-in-subdirs,test/vts,"*.runner_conf" -and -type f,.) \ 125 $(call find-files-in-subdirs,test/vts,"*.push" -and -type f,.) 126 127 host_framework_copy_pairs := \ 128 $(foreach f,$(host_framework_files),\ 129 test/vts/$(f):$(VTS_TESTCASES_OUT)/vts/$(f)) 130 131 host_testcase_files := \ 132 $(call find-files-in-subdirs,test/vts-testcase,"*.py" -and -type f,.) \ 133 $(call find-files-in-subdirs,test/vts-testcase,"*.runner_conf" -and -type f,.) \ 134 $(call find-files-in-subdirs,test/vts-testcase,"*.push" -and -type f,.) \ 135 $(call find-files-in-subdirs,test/vts-testcase,"*.dump" -and -type f,.) 136 137 host_testcase_copy_pairs := \ 138 $(foreach f,$(host_testcase_files),\ 139 test/vts-testcase/$(f):$(VTS_TESTCASES_OUT)/vts/testcases/$(f)) 140 141 host_kernel_config_files :=\ 142 $(call find-files-in-subdirs,kernel/configs,"android-base*.cfg" -and -type f,.) 143 144 host_kernel_config_copy_pairs := \ 145 $(foreach f,$(host_kernel_config_files),\ 146 kernel/configs/$(f):$(VTS_TESTCASES_OUT)/vts/testcases/kernel/config/data/$(f)) 147 148 ifneq ($(TARGET_BUILD_PDK),true) 149 150 host_camera_its_files := \ 151 $(call find-files-in-subdirs,cts/apps/CameraITS,"*.py" -and -type f,.) \ 152 $(call find-files-in-subdirs,cts/apps/CameraITS,"*.pdf" -and -type f,.) \ 153 $(call find-files-in-subdirs,cts/apps/CameraITS,"*.png" -and -type f,.) 154 155 host_camera_its_copy_pairs := \ 156 $(foreach f,$(host_camera_its_files),\ 157 cts/apps/CameraITS/$(f):$(VTS_TESTCASES_OUT)/CameraITS/$(f)) 158 159 else 160 161 host_camera_its_copy_pairs := 162 163 endif # ifneq ($(TARGET_BUILD_PDK),true) 164 165 host_systrace_files := \ 166 $(filter-out .git/%, \ 167 $(call find-files-in-subdirs,external/chromium-trace,"*" -and -type f,.)) 168 169 host_systrace_copy_pairs := \ 170 $(foreach f,$(host_systrace_files),\ 171 external/chromium-trace/$(f):$(VTS_OUT_ROOT)/android-vts/tools/external/chromium-trace/$(f)) 172 173 media_test_res_files := \ 174 $(call find-files-in-subdirs,hardware/interfaces/media/res,"*.*" -and -type f,.) \ 175 176 media_test_res_copy_pairs := \ 177 $(foreach f,$(media_test_res_files),\ 178 hardware/interfaces/media/res/$(f):$(VTS_TESTCASES_OUT)/DATA/media/res/$(f)) 179 180 performance_test_res_files := \ 181 $(call find-files-in-subdirs,test/vts-testcase/performance/res/,"*.*" -and -type f,.) \ 182 183 performance_test_res_copy_pairs := \ 184 $(foreach f,$(performance_test_res_files),\ 185 test/vts-testcase/performance/res/$(f):$(VTS_TESTCASES_OUT)/DATA/performance/res/$(f)) 186 187 audio_test_res_files := \ 188 $(call find-files-in-subdirs,hardware/interfaces/audio,"*.xsd" -and -type f,.) \ 189 190 audio_test_res_copy_pairs := \ 191 $(foreach f,$(audio_test_res_files),\ 192 hardware/interfaces/audio/$(f):$(VTS_TESTCASES_OUT)/DATA/hardware/interfaces/audio/$(f)) 193 194 vndk_test_res_copy_pairs := \ 195 development/vndk/tools/definition-tool/datasets/eligible-list-28.csv:$(VTS_TESTCASES_OUT)/vts/testcases/vndk/golden/$(PLATFORM_VNDK_VERSION)/eligible-list.csv \ 196 197 kernel_rootdir_test_rc_files := \ 198 $(call find-files-in-subdirs,system/core/rootdir,"*.rc" -and -type f,.) \ 199 200 kernel_rootdir_test_rc_copy_pairs := \ 201 $(foreach f,$(kernel_rootdir_test_rc_files),\ 202 system/core/rootdir/$(f):$(VTS_TESTCASES_OUT)/vts/testcases/kernel/api/rootdir/init_rc_files/$(f)) \ 203 204 acts_framework_files := \ 205 $(call find-files-in-subdirs,tools/test/connectivity/acts/framework/acts,"*.py" -and -type f,.) 206 207 acts_framework_copy_pairs := \ 208 $(foreach f,$(acts_framework_files),\ 209 tools/test/connectivity/acts/framework/acts/$(f):$(VTS_TESTCASES_OUT)/acts/$(f)) 210 211 acts_testcases_files := \ 212 $(call find-files-in-subdirs,tools/test/connectivity/acts/tests/google,"*.py" -and -type f,.) 213 214 acts_testcases_copy_pairs := \ 215 $(foreach f,$(acts_testcases_files),\ 216 tools/test/connectivity/acts/tests/google/$(f):$(VTS_TESTCASES_OUT)/vts/testcases/acts/$(f)) 217 218 target_script_files := \ 219 $(call find-files-in-subdirs,test/vts/script/target,"*.sh" -and -type f,.) 220 221 target_script_copy_pairs := \ 222 $(foreach f,$(target_script_files),\ 223 test/vts/script/target/$(f):$(VTS_TESTCASES_OUT)/script/target/$(f)) 224 225 system_property_compatibility_test_res_copy_pairs := \ 226 system/sepolicy/public/property_contexts:$(VTS_TESTCASES_OUT)/vts/testcases/security/system_property/data/property_contexts 227 228 $(VTS_TESTCASES_OUT)/vts/testcases/vndk/golden/platform_vndk_version.txt: 229 @echo -n $(PLATFORM_VNDK_VERSION) > $@ 230 231 vts_test_core_copy_pairs := \ 232 $(call copy-many-files,$(host_framework_copy_pairs)) \ 233 $(call copy-many-files,$(host_testcase_copy_pairs)) \ 234 $(call copy-many-files,$(host_additional_deps_copy_pairs)) \ 235 $(call copy-many-files,$(target_spec_copy_pairs)) \ 236 $(call copy-many-files,$(target_hal_hash_copy_pairs)) \ 237 $(call copy-many-files,$(acts_framework_copy_pairs)) \ 238 239 vts_copy_pairs := \ 240 $(vts_test_core_copy_pairs) \ 241 $(call copy-many-files,$(target_native_copy_pairs)) \ 242 $(call copy-many-files,$(target_trace_copy_pairs)) \ 243 $(call copy-many-files,$(target_hostdriven_copy_pairs)) \ 244 $(call copy-many-files,$(host_kernel_config_copy_pairs)) \ 245 $(call copy-many-files,$(host_camera_its_copy_pairs)) \ 246 $(call copy-many-files,$(host_systrace_copy_pairs)) \ 247 $(call copy-many-files,$(media_test_res_copy_pairs)) \ 248 $(call copy-many-files,$(performance_test_res_copy_pairs)) \ 249 $(call copy-many-files,$(audio_test_res_copy_pairs)) \ 250 $(call copy-many-files,$(vndk_test_res_copy_pairs)) \ 251 $(call copy-many-files,$(kernel_rootdir_test_rc_copy_pairs)) \ 252 $(call copy-many-files,$(acts_testcases_copy_pairs)) \ 253 $(call copy-many-files,$(target_script_copy_pairs)) \ 254 $(call copy-many-files,$(system_property_compatibility_test_res_copy_pairs)) \ 255 $(VTS_TESTCASES_OUT)/vts/testcases/vndk/golden/platform_vndk_version.txt \ 256 257 .PHONY: vts-test-core 258 vts-test-core: $(vts_test_core_copy_pairs) 259 260 $(compatibility_zip): $(vts_copy_pairs) 261 262 -include vendor/google_vts/tools/build/vts_package_vendor.mk 263