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