Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit de5eff02 authored by Trevor Radcliffe's avatar Trevor Radcliffe Committed by Automerger Merge Worker
Browse files

Merge "Migrate DynamicCodeLoggerIntegrationTests to Soong" am: 77009900 am: 012fc9b0

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1856813

Change-Id: Ifa5320b3c151200054998a328af70c59eaf53a9c
parents 5ae87e3a 012fc9b0
Loading
Loading
Loading
Loading
+60 −0
Original line number Diff line number Diff line
//
// 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",
    ],
}
+0 −95
Original line number Diff line number Diff line
#
# 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)
+4 −2
Original line number Diff line number Diff line
@@ -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();