Home | History | Annotate | Download | only in tasks
      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