• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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