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