1ACTUAL_LOCAL_PATH := $(call my-dir)
2
3# this var will hold all the test apk module names later.
4FrameworkCoreTests_all_apks :=
5
6# We have to include the subdir makefiles first
7# so that FrameworkCoreTests_all_apks will be populated correctly.
8include $(call all-makefiles-under,$(ACTUAL_LOCAL_PATH))
9
10LOCAL_PATH := $(ACTUAL_LOCAL_PATH)
11
12include $(CLEAR_VARS)
13
14# We only want this apk build for tests.
15LOCAL_MODULE_TAGS := tests
16
17# Include all test java files.
18LOCAL_SRC_FILES := \
19	$(call all-java-files-under, src) \
20	$(call all-Iaidl-files-under, src) \
21	$(call all-java-files-under, DisabledTestApp/src) \
22	$(call all-java-files-under, EnabledTestApp/src)
23
24LOCAL_DX_FLAGS := --core-library
25LOCAL_JACK_FLAGS := --multi-dex native
26LOCAL_AAPT_FLAGS = -0 dat -0 gld -c fa
27LOCAL_STATIC_JAVA_LIBRARIES := \
28    core-tests-support \
29    android-common \
30    frameworks-core-util-lib \
31    mockwebserver \
32    guava \
33    android-support-test \
34    mockito-target-minus-junit4 \
35    espresso-core \
36    ub-uiautomator \
37    platform-test-annotations \
38    compatibility-device-util \
39    truth-prebuilt
40
41LOCAL_JAVA_LIBRARIES := android.test.runner conscrypt telephony-common org.apache.http.legacy
42LOCAL_PACKAGE_NAME := FrameworksCoreTests
43LOCAL_COMPATIBILITY_SUITE := device-tests
44
45LOCAL_CERTIFICATE := platform
46
47# intermediate dir to include all the test apks as raw resource
48FrameworkCoreTests_intermediates := $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME))/test_apks/res
49LOCAL_RESOURCE_DIR := $(FrameworkCoreTests_intermediates) $(LOCAL_PATH)/res
50
51include $(BUILD_PACKAGE)
52# Rules to copy all the test apks to the intermediate raw resource directory
53FrameworkCoreTests_all_apks_res := $(addprefix $(FrameworkCoreTests_intermediates)/raw/, \
54    $(foreach a, $(FrameworkCoreTests_all_apks), $(patsubst FrameworkCoreTests_%,%,$(a))))
55
56$(FrameworkCoreTests_all_apks_res): $(FrameworkCoreTests_intermediates)/raw/%: $(call intermediates-dir-for,APPS,FrameworkCoreTests_%)/package.apk
57	$(call copy-file-to-new-target)
58
59# Use R_file_stamp as dependency because we want the test apks in place before the R.java is generated.
60$(R_file_stamp) : $(FrameworkCoreTests_all_apks_res)
61
62FrameworkCoreTests_all_apks :=
63FrameworkCoreTests_intermediates :=
64FrameworkCoreTests_all_apks_res :=
65