summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2024-12-11 00:58:21 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2024-12-11 00:58:21 +0000
commit7c63feeb132f731ed9cb67bea1e2cad1a3a3d29e (patch)
tree121e31e04fa3442dc1eb8cdb3f95352564dd6c40
parent19f635bf408f348e169c06e17299b2c9c2860712 (diff)
parent4c9b50d1fac41aab5aaab8bdcf3bc00d4fca5992 (diff)
Merge "Add LazyJniRegistrarTest" into main am: 6d743a83c4 am: 4c9b50d1fa
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3387073 Change-Id: I19ab00f3d000aa047afcd67d02381b9da782bde8 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--services/tests/servicestests/src/com/android/server/utils/LazyJniRegistrarTest.java59
-rw-r--r--services/tests/servicestests/src/com/android/server/utils/OWNERS1
2 files changed, 60 insertions, 0 deletions
diff --git a/services/tests/servicestests/src/com/android/server/utils/LazyJniRegistrarTest.java b/services/tests/servicestests/src/com/android/server/utils/LazyJniRegistrarTest.java
new file mode 100644
index 000000000000..a2df73b7d540
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/utils/LazyJniRegistrarTest.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2024 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 com.android.server.utils;
+
+import android.platform.test.annotations.Presubmit;
+
+import androidx.test.filters.SmallTest;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+
+@SmallTest
+@Presubmit
+@RunWith(JUnit4.class)
+public class LazyJniRegistrarTest {
+
+ @Test
+ public void testNativeMethodsResolve() throws Exception {
+ // Basic test with a few explicit invocations to make sure methods resolve and don't throw.
+ LazyJniRegistrar.registerConsumerIrService();
+ LazyJniRegistrar.registerGameManagerService();
+ LazyJniRegistrar.registerVrManagerService();
+ }
+
+ @Test
+ public void testAllNativeRegisterMethodsResolve() throws Exception {
+ // Catch-all test to make sure public static register* methods resolve and don't throw.
+ for (Method method : LazyJniRegistrar.class.getDeclaredMethods()) {
+ if (Modifier.isPublic(method.getModifiers())
+ && Modifier.isStatic(method.getModifiers())
+ && method.getName().startsWith("register")) {
+ method.invoke(null);
+ }
+ }
+ }
+
+ // TODO(b/302724778): Remove manual JNI load
+ static {
+ System.loadLibrary("servicestestjni");
+ }
+}
diff --git a/services/tests/servicestests/src/com/android/server/utils/OWNERS b/services/tests/servicestests/src/com/android/server/utils/OWNERS
index f5b19a1c40ae..69b9fa23c040 100644
--- a/services/tests/servicestests/src/com/android/server/utils/OWNERS
+++ b/services/tests/servicestests/src/com/android/server/utils/OWNERS
@@ -1,5 +1,6 @@
per-file EventLoggerTest.java = file:/platform/frameworks/av:/media/janitors/media_solutions_OWNERS
per-file EventLoggerTest.java = jmtrivi@google.com
+per-file LazyJniRegistrarTest.java = file:/PERFORMANCE_OWNERS
# Bug component : 158088 = per-file AnrTimer*.java
per-file AnrTimer*.java = file:/PERFORMANCE_OWNERS