1e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# Copyright (C) 2017 The Android Open Source Project
2e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum#
3e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# Licensed under the Apache License, Version 2.0 (the "License");
4e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# you may not use this file except in compliance with the License.
5e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# You may obtain a copy of the License at
6e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum#
7e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum#      http://www.apache.org/licenses/LICENSE-2.0
8e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum#
9e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# Unless required by applicable law or agreed to in writing, software
10e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# distributed under the License is distributed on an "AS IS" BASIS,
11e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# See the License for the specific language governing permissions and
13e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# limitations under the License.
14e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
15e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_PATH:= $(call my-dir)
16e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
17e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# Make test APK
18e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# ============================================================
19e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebauminclude $(CLEAR_VARS)
20e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
21e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_MODULE_TAGS := tests
22e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
23e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_SRC_FILES := $(call all-subdir-java-files)
24e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
25e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# This list is generated from the java source files in this module
26e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# The list is a comma separated list of class names with * matching zero or more characters.
27e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# Example:
28e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum#   Input files: src/com/android/server/lowpan/Test.java src/com/android/server/lowpan/AnotherTest.java
29e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum#   Generated exclude list: com.android.server.lowpan.Test*,com.android.server.lowpan.AnotherTest*
30e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
31e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# Filter all src files to just java files
32e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaumlocal_java_files := $(filter %.java,$(LOCAL_SRC_FILES))
33e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# Transform java file names into full class names.
34e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# This only works if the class name matches the file name and the directory structure
35e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# matches the package.
36e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaumlocal_classes := $(subst /,.,$(patsubst src/%.java,%,$(local_java_files)))
37e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# Utility variables to allow replacing a space with a comma
38e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaumcomma:= ,
39e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaumempty:=
40e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaumspace:= $(empty) $(empty)
41e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# Convert class name list to jacoco exclude list
42e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# This appends a * to all classes and replace the space separators with commas.
43e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# These patterns will match all classes in this module and their inner classes.
44e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaumjacoco_exclude := $(subst $(space),$(comma),$(patsubst %,%*,$(local_classes)))
45e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
46e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaumjacoco_include := android.net.lowpan.*
47e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
48e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_JACK_COVERAGE_INCLUDE_FILTER := $(jacoco_include)
49e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_JACK_COVERAGE_EXCLUDE_FILTER := $(jacoco_exclude)
50e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
51e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_STATIC_JAVA_LIBRARIES := \
52e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum	android-support-test \
53e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum	guava \
54e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum	mockito-target-minus-junit4 \
55e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum	frameworks-base-testutils \
56e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
57e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_JNI_SHARED_LIBRARIES += libframeworkslowpantestsjni
58e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_JNI_SHARED_LIBRARIES += libandroid_net_lowpan
59e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_JNI_SHARED_LIBRARIES += \
60e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libbacktrace \
61e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libbase \
62e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libbinder \
63e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libc++ \
64e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libcutils \
65e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    liblog \
66e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    liblzma \
67e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libnativehelper \
68e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libnetdaidl \
69e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libui \
70e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libunwind \
71e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libutils \
72e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libvndksupport \
73e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libcrypto \
74e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libhidl-gen-utils \
75e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libhidlbase \
76e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libhidltransport \
77e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libpackagelistparser \
78e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libpcre2 \
79e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libselinux \
80e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libtinyxml2 \
81e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libvintf \
82e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    libhwbinder \
83e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum    android.hidl.token@1.0
84e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
85e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_JAVA_LIBRARIES := android.test.runner
86e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
87e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_PACKAGE_NAME := FrameworksLowpanApiNativeTests
88e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_COMPATIBILITY_SUITE := device-tests
89e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
90e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_CERTIFICATE := platform
91e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
92e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebauminclude $(BUILD_PACKAGE)
93e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
94e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum#########################################################################
95e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum# Build JNI Shared Library
96e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum#########################################################################
97e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
98e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_PATH:= $(LOCAL_PATH)/jni
99e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
100e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebauminclude $(CLEAR_VARS)
101e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
102e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_MODULE_TAGS := tests
103e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
104e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_CFLAGS := -Wall -Wextra -Werror
105e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
106e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_SRC_FILES := $(call all-cpp-files-under)
107e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
108e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_SHARED_LIBRARIES += libandroid_net_lowpan
109e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_SHARED_LIBRARIES += libbinder
110e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_SHARED_LIBRARIES += liblog
111e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
112e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert QuattlebaumLOCAL_MODULE := libframeworkslowpantestsjni
113e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebaum
114e6a1be5f36c91c12ba89bca99233bdb9d7b448e0Robert Quattlebauminclude $(BUILD_SHARED_LIBRARY)
115