diff --git a/tests/DynamicCodeLoggerIntegrationTests/Android.bp b/tests/DynamicCodeLoggerIntegrationTests/Android.bp new file mode 100644 index 0000000000000000000000000000000000000000..448d46fe5e4e7eda6e6fc50739243ce01598d0c2 --- /dev/null +++ b/tests/DynamicCodeLoggerIntegrationTests/Android.bp @@ -0,0 +1,60 @@ +// +// 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", + ], +} diff --git a/tests/DynamicCodeLoggerIntegrationTests/Android.mk b/tests/DynamicCodeLoggerIntegrationTests/Android.mk deleted file mode 100644 index dab83046c28f0e3bd31b9abbaeb322134e10f7b7..0000000000000000000000000000000000000000 --- a/tests/DynamicCodeLoggerIntegrationTests/Android.mk +++ /dev/null @@ -1,95 +0,0 @@ -# -# 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) diff --git a/tests/DynamicCodeLoggerIntegrationTests/src/com/android/server/pm/dex/DynamicCodeLoggerIntegrationTests.java b/tests/DynamicCodeLoggerIntegrationTests/src/com/android/server/pm/dex/DynamicCodeLoggerIntegrationTests.java index 883c172e49904eb14d5cd79cbdc52a18bb3fcdd2..5430dee5ca311fa2e3553338315f68b49ca86c72 100644 --- a/tests/DynamicCodeLoggerIntegrationTests/src/com/android/server/pm/dex/DynamicCodeLoggerIntegrationTests.java +++ b/tests/DynamicCodeLoggerIntegrationTests/src/com/android/server/pm/dex/DynamicCodeLoggerIntegrationTests.java @@ -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();