Skip to content
Snippets Groups Projects
Commit 77009900 authored by Trevor Radcliffe's avatar Trevor Radcliffe Committed by Gerrit Code Review
Browse files

Merge "Migrate DynamicCodeLoggerIntegrationTests to Soong"

parents f822fdf1 93a5458b
No related branches found
No related tags found
No related merge requests found
//
// Copyright 2017 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
package {
default_applicable_licenses: ["frameworks_base_license"],
}
java_test_helper_library {
name: "DynamicCodeLoggerTestLibrary",
srcs: ["src/com/android/dcl/**/*.java"],
}
cc_library_shared {
name: "DynamicCodeLoggerNativeTestLibrary",
srcs: ["src/cpp/com_android_dcl_Jni.cpp"],
header_libs: ["jni_headers"],
sdk_version: "28",
stl: "c++_static",
}
cc_binary {
name: "DynamicCodeLoggerNativeExecutable",
srcs: ["src/cpp/test_executable.cpp"],
}
android_test {
name: "DynamicCodeLoggerIntegrationTests",
sdk_version: "current",
test_suites: ["device-tests"],
certificate: "shared",
srcs: ["src/com/android/server/pm/**/*.java"],
static_libs: [
"androidx.test.rules",
"truth-prebuilt",
],
compile_multilib: "both",
jni_libs: ["DynamicCodeLoggerNativeTestLibrary"],
java_resources: [
":DynamicCodeLoggerTestLibrary",
":DynamicCodeLoggerNativeExecutable",
],
}
#
# Copyright 2017 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
LOCAL_PATH:= $(call my-dir)
# Build a tiny library that the test app can dynamically load
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := tests
LOCAL_MODULE := DynamicCodeLoggerTestLibrary
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../NOTICE
LOCAL_SRC_FILES := $(call all-java-files-under, src/com/android/dcl)
include $(BUILD_JAVA_LIBRARY)
dynamiccodeloggertest_jar := $(LOCAL_BUILT_MODULE)
# Also build a native library that the test app can dynamically load
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := tests
LOCAL_MODULE := DynamicCodeLoggerNativeTestLibrary
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../NOTICE
LOCAL_SRC_FILES := src/cpp/com_android_dcl_Jni.cpp
LOCAL_HEADER_LIBRARIES := jni_headers
LOCAL_SDK_VERSION := 28
LOCAL_NDK_STL_VARIANT := c++_static
include $(BUILD_SHARED_LIBRARY)
# And a standalone native executable that we can exec.
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := tests
LOCAL_MODULE := DynamicCodeLoggerNativeExecutable
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../NOTICE
LOCAL_SRC_FILES := src/cpp/test_executable.cpp
include $(BUILD_EXECUTABLE)
dynamiccodeloggertest_executable := $(LOCAL_BUILT_MODULE)
# Build the test app itself
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := tests
LOCAL_PACKAGE_NAME := DynamicCodeLoggerIntegrationTests
LOCAL_SDK_VERSION := current
LOCAL_COMPATIBILITY_SUITE := device-tests
LOCAL_CERTIFICATE := shared
LOCAL_SRC_FILES := $(call all-java-files-under, src/com/android/server/pm)
LOCAL_STATIC_JAVA_LIBRARIES := \
androidx.test.rules \
truth-prebuilt \
# Include both versions of the .so if we have 2 arch
LOCAL_MULTILIB := both
LOCAL_JNI_SHARED_LIBRARIES := \
DynamicCodeLoggerNativeTestLibrary \
# This gets us the javalib.jar built by DynamicCodeLoggerTestLibrary above as well as the various
# native binaries.
LOCAL_JAVA_RESOURCE_FILES := \
$(dynamiccodeloggertest_jar) \
$(dynamiccodeloggertest_executable) \
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../NOTICE
include $(BUILD_PACKAGE)
......@@ -114,7 +114,8 @@ public final class DynamicCodeLoggerIntegrationTests {
// Obtained via "echo -n copied.jar | sha256sum"
String expectedNameHash =
"1B6C71DB26F36582867432CCA12FB6A517470C9F9AABE9198DD4C5C030D6DC0C";
String expectedContentHash = copyAndHashResource("/javalib.jar", privateCopyFile);
String expectedContentHash = copyAndHashResource(
"/DynamicCodeLoggerTestLibrary.jar", privateCopyFile);
// Feed the jar to a class loader and make sure it contains what we expect.
ClassLoader parentClassLoader = sContext.getClass().getClassLoader();
......@@ -135,7 +136,8 @@ public final class DynamicCodeLoggerIntegrationTests {
File privateCopyFile = privateFile("copied2.jar");
String expectedNameHash =
"202158B6A3169D78F1722487205A6B036B3F2F5653FDCFB4E74710611AC7EB93";
String expectedContentHash = copyAndHashResource("/javalib.jar", privateCopyFile);
String expectedContentHash = copyAndHashResource(
"/DynamicCodeLoggerTestLibrary.jar", privateCopyFile);
// This time make sure an unknown class loader is an ancestor of the class loader we use.
ClassLoader knownClassLoader = sContext.getClass().getClassLoader();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment