Ensure all tests check that ADPF is supported first

Test: atest PerformanceHintManagerTest
Flag: EXEMPT test change
Bug: 392760210
Change-Id: Ib5d4a55a021b1f79f69b84659db97ae2af0b6413
diff --git a/tests/tests/os/jni/android_os_cts_PerformanceHintManagerTest.cpp b/tests/tests/os/jni/android_os_cts_PerformanceHintManagerTest.cpp
index 0b378b2..b936f00 100644
--- a/tests/tests/os/jni/android_os_cts_PerformanceHintManagerTest.cpp
+++ b/tests/tests/os/jni/android_os_cts_PerformanceHintManagerTest.cpp
@@ -137,6 +137,10 @@
     return wrapWorkDuration(out);
 }
 
+static jboolean nativeGetSessionsAreSupported() {
+    return APerformanceHint_isFeatureSupported(APERF_HINT_SESSIONS);
+}
+
 static jstring nativeTestCreateHintSession(JNIEnv *env, jobject) {
     APerformanceHintManager* manager = APerformanceHint_getManager();
     if (!manager) return toJString(env, "null manager");
@@ -420,7 +424,6 @@
 static jstring nativeTestLoadHints(JNIEnv* env, jobject) {
     APerformanceHintManager* manager = APerformanceHint_getManager();
     if (!manager) return toJString(env, "null manager");
-    SupportHelper supportInfo = getSupportHelper();
     auto session = createSession(manager);
     if (session == nullptr) return nullptr;
 
@@ -498,7 +501,13 @@
 
     return reinterpret_cast<jlong>(session);
 }
+
 static jstring nativeTestCreateGraphicsPipelineSession(JNIEnv* env, jobject) {
+    auto supportInfo = getSupportHelper();
+    if (!supportInfo.graphicsPipeline) {
+        return nullptr;
+    }
+
     APerformanceHintManager* manager = APerformanceHint_getManager();
     if (!manager) return toJString(env, "null manager");
 
@@ -513,14 +522,14 @@
 
 static jstring nativeTestSetNativeSurfaces(JNIEnv* env, jobject, jobject surfaceControlFromJava,
                                            jobject surfaceFromJava) {
-    APerformanceHintManager* manager = APerformanceHint_getManager();
-    if (!manager) return toJString(env, "null manager");
-
     auto supportInfo = getSupportHelper();
     if (!supportInfo.bindToSurface) {
         return nullptr;
     }
 
+    APerformanceHintManager* manager = APerformanceHint_getManager();
+    if (!manager) return toJString(env, "null manager");
+
     int errCode = 0;
 
     auto surfaceControl = wrapSurfaceControl(ASurfaceControl_fromJava(env, surfaceControlFromJava));
@@ -680,7 +689,10 @@
 }
 
 static JNINativeMethod gMethods[] = {
-        {"nativeTestCreateHintSession", "()Ljava/lang/String;", (void*)nativeTestCreateHintSession},
+        {"nativeGetSessionsAreSupported", "()Z",
+         (void*)nativeGetSessionsAreSupported},
+        {"nativeTestCreateHintSession", "()Ljava/lang/String;",
+         (void*)nativeTestCreateHintSession},
         {"nativeTestCreateGraphicsPipelineSession", "()Ljava/lang/String;",
          (void*)nativeTestCreateGraphicsPipelineSession},
         {"nativeTestCreateHintSessionUsingConfig", "()Ljava/lang/String;",
diff --git a/tests/tests/os/src/android/os/cts/PerformanceHintManagerTest.java b/tests/tests/os/src/android/os/cts/PerformanceHintManagerTest.java
index f9d58ca..8384eb8 100644
--- a/tests/tests/os/src/android/os/cts/PerformanceHintManagerTest.java
+++ b/tests/tests/os/src/android/os/cts/PerformanceHintManagerTest.java
@@ -24,6 +24,7 @@
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import static org.junit.Assume.assumeFalse;
+import static org.junit.Assume.assumeTrue;
 import static org.junit.Assume.assumeNotNull;
 
 import android.content.pm.PackageManager;
@@ -109,6 +110,7 @@
 
     @Before
     public void setUp() {
+        assumeTrue(nativeGetSessionsAreSupported());
         mPerformanceHintManager =
                 InstrumentationRegistry.getInstrumentation().getContext().getSystemService(
                         PerformanceHintManager.class);
@@ -448,9 +450,9 @@
         final String resultMessage = nativeTestReportActualWorkDuration2();
     }
 
-    private native String nativeTestCreateGraphicsPipelineSession();
-
+    private native boolean nativeGetSessionsAreSupported();
     private native String nativeTestCreateHintSession();
+    private native String nativeTestCreateGraphicsPipelineSession();
     private native String nativeTestCreateHintSessionUsingConfig();
     private native String nativeTestGetMaxGraphicsPipelineThreadsCount();
     private native String nativeTestGetPreferredUpdateRateNanos();