Add support to check form-factor before running test
Skip running the test if it's non-phone or cuttlefish
Bug: b/288114726
Test: atest ADPFHintSessionHostJUnit4Test
Change-Id: I632d50727a53a5772a748c2689c2d5f118bb334d
diff --git a/hostsidetests/adpf/app/hintsession/Android.bp b/hostsidetests/adpf/app/hintsession/Android.bp
index 53e10da..9ec45ca 100644
--- a/hostsidetests/adpf/app/hintsession/Android.bp
+++ b/hostsidetests/adpf/app/hintsession/Android.bp
@@ -52,6 +52,7 @@
"androidx.test.rules",
"collector-device-lib",
"com.google.android.material_material",
+ "compatibility-device-util-axt",
],
sdk_version: "current",
jni_libs: ["libadpfhintsession_test_helper_jni"],
diff --git a/hostsidetests/adpf/app/hintsession/src/android/adpf/hintsession/app/ADPFHintSessionDeviceTest.java b/hostsidetests/adpf/app/hintsession/src/android/adpf/hintsession/app/ADPFHintSessionDeviceTest.java
index 51f5ac1..2f4759f 100644
--- a/hostsidetests/adpf/app/hintsession/src/android/adpf/hintsession/app/ADPFHintSessionDeviceTest.java
+++ b/hostsidetests/adpf/app/hintsession/src/android/adpf/hintsession/app/ADPFHintSessionDeviceTest.java
@@ -19,29 +19,55 @@
import static android.adpf.common.ADPFHintSessionConstants.TEST_NAME_KEY;
import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeFalse;
import android.app.Instrumentation;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.device.collectors.util.SendToInstrumentation;
import android.os.Bundle;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
+import com.android.compatibility.common.util.MediaUtils;
+
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import java.io.IOException;
import java.util.Map;
@RunWith(AndroidJUnit4.class)
public class ADPFHintSessionDeviceTest {
private final Instrumentation mInstrumentation = InstrumentationRegistry.getInstrumentation();
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ mContext = mInstrumentation.getContext();
+ }
+
+ protected void assumeMobileDeviceFormFactor() throws IOException {
+ final PackageManager pm = mContext.getPackageManager();
+ assumeFalse("Skipping test for auto",
+ pm.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE));
+ assumeFalse("Skipping test for TV",
+ pm.hasSystemFeature(PackageManager.FEATURE_LEANBACK)); // TVs
+ assumeFalse("Skipping test for watch",
+ pm.hasSystemFeature(PackageManager.FEATURE_WATCH));
+ assumeFalse("Skipping test for embedded",
+ pm.hasSystemFeature(PackageManager.FEATURE_EMBEDDED));
+ assumeFalse("Skipping test for Cuttlefish",
+ MediaUtils.onCuttlefish());
+ }
@Test
- public void testAdpfHintSession() {
- final Context context = mInstrumentation.getContext();
- final Intent intent = new Intent(context, ADPFHintSessionDeviceActivity.class);
+ public void testAdpfHintSession() throws IOException {
+ assumeMobileDeviceFormFactor();
+ final Intent intent = new Intent(mContext, ADPFHintSessionDeviceActivity.class);
// TODO: pass config to app
intent.putExtra(TEST_NAME_KEY, "testAdpfHintSession");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);