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

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
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();