1caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot# Copyright (C) 2011 The Android Open Source Project
2caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot#
3caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot# Licensed under the Apache License, Version 2.0 (the "License");
4caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot# you may not use this file except in compliance with the License.
5caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot# You may obtain a copy of the License at
6caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot#
7caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot#      http://www.apache.org/licenses/LICENSE-2.0
8caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot#
9caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot# Unless required by applicable law or agreed to in writing, software
10caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot# distributed under the License is distributed on an "AS IS" BASIS,
11caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot# See the License for the specific language governing permissions and
13caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot# limitations under the License.
14caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot
15caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett ChabotLOCAL_PATH := $(call my-dir)
16caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabotinclude $(CLEAR_VARS)
17caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot
1838e89667e30063d29bb56bea23c1976c062dc631Adam LesinskiLOCAL_USE_AAPT2 := true
19caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett ChabotLOCAL_MODULE_TAGS := tests
20caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot
21b58c46acec2e270f24ca587a64298f06cefb09cbSid SoundararajanLOCAL_JACK_FLAGS := --multi-dex native
22254a418e97e02f43d1f25ea801d67e1bdf498d65Colin CrossLOCAL_DX_FLAGS := --multi-dex
23b58c46acec2e270f24ca587a64298f06cefb09cbSid Soundararajan
247232332dc963c2ce55dda1a3a0367080d5494503Blazej MagnowskiLOCAL_PROTOC_OPTIMIZE_TYPE := nano
257232332dc963c2ce55dda1a3a0367080d5494503Blazej MagnowskiLOCAL_PROTOC_FLAGS := -I$(LOCAL_PATH)/..
267232332dc963c2ce55dda1a3a0367080d5494503Blazej MagnowskiLOCAL_PROTO_JAVA_OUTPUT_PARAMS := optional_field_style=accessors
277232332dc963c2ce55dda1a3a0367080d5494503Blazej Magnowski
2838e89667e30063d29bb56bea23c1976c062dc631Adam LesinskiLOCAL_PACKAGE_NAME := SystemUITests
29473a16e492f0e0b0f726d4351214783458466d2cSimran BasiLOCAL_COMPATIBILITY_SUITE := device-tests
30190fe3bf88388fcb109af64571e3baa0d01f1c37Winson
3129f7a7b0ae2264651c176ef50cc21cf9131247e3Jason MonkLOCAL_SRC_FILES := $(call all-java-files-under, src) \
32190fe3bf88388fcb109af64571e3baa0d01f1c37Winson    $(call all-Iaidl-files-under, src) \
334cc2a58ed2b3e53f6fe8c182f239d08df1caac38Adrian Roos    $(call all-java-files-under, ../src)
3429f7a7b0ae2264651c176ef50cc21cf9131247e3Jason Monk
3529f7a7b0ae2264651c176ef50cc21cf9131247e3Jason MonkLOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res \
3629f7a7b0ae2264651c176ef50cc21cf9131247e3Jason Monk    frameworks/base/packages/SystemUI/res \
3723f85ec14dab49b2c525dc266d2a1f74f7f9d07cJason Monk    frameworks/base/packages/SystemUI/res-keyguard \
38caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot
3938e89667e30063d29bb56bea23c1976c062dc631Adam LesinskiLOCAL_STATIC_ANDROID_LIBRARIES := \
4086bc33188948e7b6beb07dbb5ddba59b5ea3c1fcJason Monk    SystemUIPluginLib \
410f66a4cc16ec1a927c90ac559c73c80ddcb5ee71Selim Cinek    android-support-v4 \
4287ccd55e8a90ff5d1c30f852941d523a83ab735aJason Monk    android-support-v7-recyclerview \
4387ccd55e8a90ff5d1c30f852941d523a83ab735aJason Monk    android-support-v7-preference \
4487ccd55e8a90ff5d1c30f852941d523a83ab735aJason Monk    android-support-v7-appcompat \
451cbf5fbd7ac47a3cbcb4a8910a1dcdd7b7845373Jason Monk    android-support-v7-mediarouter \
46fb49ffc96a724c196fbc3624cca5f7e20e64e10eSelim Cinek    android-support-v7-palette \
47b58c46acec2e270f24ca587a64298f06cefb09cbSid Soundararajan    android-support-v14-preference \
487224c1eca2afa13f2b975447db537038446e4177Lucas Dupin    android-support-v17-leanback
4938e89667e30063d29bb56bea23c1976c062dc631Adam Lesinski
5038e89667e30063d29bb56bea23c1976c062dc631Adam LesinskiLOCAL_STATIC_JAVA_LIBRARIES := \
5127a52fa86bd279407575192fc9842b6a54624cfbChris Wren    metrics-helper-lib \
522c403db659db615831d8bd02661f8769c7762241Geoffrey Pitsch    android-support-test \
53a7773c2fb1aa168ba57b2bb12b300b11ff5f0a66Paul Duffin    mockito-target-minus-junit4 \
54d05651790af7c3dced153876de6db00366f9f9e5Jorim Jaggi    SystemUI-proto \
558aeb59ebcd50a510d024dc082fa17b192074c63dPaul Duffin    SystemUI-tags \
56340b0e5216b4fcc435e0459b1ca46155a572100dJason Monk    legacy-android-test \
578443dd0e7680e489509e8a9bf0bb5fcefd7a8c3ejackqdyulei    testables \
588443dd0e7680e489509e8a9bf0bb5fcefd7a8c3ejackqdyulei    truth-prebuilt \
59caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot
6038e89667e30063d29bb56bea23c1976c062dc631Adam LesinskiLOCAL_JAVA_LIBRARIES := android.test.runner telephony-common android.car
6138e89667e30063d29bb56bea23c1976c062dc631Adam Lesinski
6223f85ec14dab49b2c525dc266d2a1f74f7f9d07cJason MonkLOCAL_AAPT_FLAGS := --extra-packages com.android.systemui:com.android.keyguard
6338e89667e30063d29bb56bea23c1976c062dc631Adam Lesinski
64caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot# sign this with platform cert, so this test is allowed to inject key events into
65caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot# UI it doesn't own. This is necessary to allow screenshots to be taken
66caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett ChabotLOCAL_CERTIFICATE := platform
67caf30a18b52471ebfbc6ae5e853c9a0b9d44905bBrett Chabot
688fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair# Provide jack a list of classes to exclude from code coverage.
698fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair# This is needed because the SystemUITests compile SystemUI source directly, rather than using
708fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair# LOCAL_INSTRUMENTATION_FOR := SystemUI.
718fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair#
728fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair# We want to exclude the test classes from code coverage measurements, but they share the same
738fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair# package as the rest of SystemUI so they can't be easily filtered by package name.
748fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair#
758fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair# Generate a comma separated list of patterns based on the test source files under src/
768fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair# SystemUI classes are in ../src/ so they won't be excluded.
778fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair# Example:
788fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair#   Input files: src/com/android/systemui/Test.java src/com/android/systemui/AnotherTest.java
798fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair#   Generated exclude list: com.android.systemui.Test*,com.android.systemui.AnotherTest*
808fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair
818fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair# Filter all src files under src/ to just java files
828fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hairlocal_java_files := $(filter %.java,$(call all-java-files-under, src))
838fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair# Transform java file names into full class names.
848fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair# This only works if the class name matches the file name and the directory structure
858fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair# matches the package.
868fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hairlocal_classes := $(subst /,.,$(patsubst src/%.java,%,$(local_java_files)))
878fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hairlocal_comma := ,
888fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hairlocal_empty :=
898fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hairlocal_space := $(local_empty) $(local_empty)
908fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair# Convert class name list to jacoco exclude list
918fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair# This appends a * to all classes and replace the space separators with commas.
928fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hairjacoco_exclude := $(subst $(space),$(comma),$(patsubst %,%*,$(local_classes)))
938fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair
9402fd60946005e5f64650032057029f089ae49e60Allen HairLOCAL_JACK_COVERAGE_INCLUDE_FILTER := com.android.systemui.*
958fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen HairLOCAL_JACK_COVERAGE_EXCLUDE_FILTER := com.android.systemui.tests.*,$(jacoco_exclude)
9602fd60946005e5f64650032057029f089ae49e60Allen Hair
972ba4ce6a064e29ee3415ff8c2b4a9bbcff937a6cJason Monkinclude frameworks/base/packages/SettingsLib/common.mk
982ba4ce6a064e29ee3415ff8c2b4a9bbcff937a6cJason Monk
994f70b9cfd408a94330024c79643124cca25987b4Jason Monkifeq ($(EXCLUDE_SYSTEMUI_TESTS),)
1004f70b9cfd408a94330024c79643124cca25987b4Jason Monk    include $(BUILD_PACKAGE)
1014f70b9cfd408a94330024c79643124cca25987b4Jason Monkendif
1028fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair
1038fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hair# Reset variables
1048fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hairlocal_java_files :=
1058fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hairlocal_classes :=
1068fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hairlocal_comma :=
1078fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hairlocal_space :=
1088fef05f2c11e6f9f90e8c139bb7af42581941f4fAllen Hairjacoco_exclude :=
109