Merge "Fix Not executed test count" into nyc-dev
diff --git a/tests/tests/media/src/android/media/cts/AudioRecordRoutingNative.java b/tests/tests/media/src/android/media/cts/AudioRecordRoutingNative.java
index c965e14..d70abce 100644
--- a/tests/tests/media/src/android/media/cts/AudioRecordRoutingNative.java
+++ b/tests/tests/media/src/android/media/cts/AudioRecordRoutingNative.java
@@ -19,6 +19,7 @@
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.content.Context;
+import android.content.pm.PackageManager;
 import android.media.AudioDeviceInfo;
 import android.media.AudioManager;
 import android.media.AudioRouting;
@@ -59,6 +60,9 @@
 
     // Test a basic Aquire/Release cycle on the default recorder.
     public void testAquireDefaultProxy() throws Exception {
+        if (!hasMicrophone()) {
+            return;
+        }
         AudioRecorder recorder = new AudioRecorder();
         recorder.ClearLastSLResult();
         recorder.RealizeRecorder();
@@ -78,6 +82,9 @@
 
     // Test an Aquire before the OpenSL ES recorder is Realized.
     public void testAquirePreRealizeDefaultProxy() throws Exception {
+        if (!hasMicrophone()) {
+            return;
+        }
         AudioRecorder recorder = new AudioRecorder();
         recorder.ClearLastSLResult();
         recorder.RealizeRecorder();
@@ -97,6 +104,9 @@
 
     // Test actually setting the routing through the enumerated devices.
     public void testRouting() {
+        if (!hasMicrophone()) {
+            return;
+        }
         AudioRecorder recorder = new AudioRecorder();
         recorder.ClearLastSLResult();
         recorder.RealizeRecorder();
@@ -115,4 +125,9 @@
         recorder.ReleaseRoutingInterface(routingObj);
         assertTrue(recorder.GetLastSLResult() == 0);
     }
+
+    private boolean hasMicrophone() {
+        return getContext().getPackageManager().hasSystemFeature(
+                PackageManager.FEATURE_MICROPHONE);
+    }
 }