diff options
author | Chris Rosenberger <corosenberger@google.com> | 2023-01-13 02:57:59 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2023-01-13 02:57:59 +0000 |
commit | 515ba290d83bf76a2fdf05ca105beb94f362186d (patch) | |
tree | bcc07968253fd2e6fd4116b0ce264c35c10ff15f | |
parent | 85072942303eadecb3e763f56efeb67b20f0e84e (diff) | |
parent | 1e6cdb7d4d0ca7d451518866b4fa40ca294ea99a (diff) | |
download | cts-515ba290d83bf76a2fdf05ca105beb94f362186d.tar.gz |
Merge "Updating MediaPerformanceClassCommon with audio tap-to-tone code" into android13-tests-dev
-rw-r--r-- | tests/mediapc/common/src/android/mediapc/cts/common/PerformanceClassEvaluator.java | 53 | ||||
-rw-r--r-- | tests/mediapc/common/src/android/mediapc/cts/common/RequirementConstants.java | 5 |
2 files changed, 57 insertions, 1 deletions
diff --git a/tests/mediapc/common/src/android/mediapc/cts/common/PerformanceClassEvaluator.java b/tests/mediapc/common/src/android/mediapc/cts/common/PerformanceClassEvaluator.java index 77326bd9a52..5f8ef128fd1 100644 --- a/tests/mediapc/common/src/android/mediapc/cts/common/PerformanceClassEvaluator.java +++ b/tests/mediapc/common/src/android/mediapc/cts/common/PerformanceClassEvaluator.java @@ -23,6 +23,7 @@ import static org.junit.Assume.assumeTrue; import android.hardware.camera2.CameraMetadata; import android.media.MediaFormat; import android.os.Build; +import android.util.Log; import com.google.common.base.Preconditions; @@ -1466,6 +1467,46 @@ public class PerformanceClassEvaluator { } } + public static class AudioTap2ToneLatencyRequirement extends Requirement { + private static final String TAG = AudioTap2ToneLatencyRequirement.class.getSimpleName(); + + private AudioTap2ToneLatencyRequirement(String id, RequiredMeasurement<?> ... reqs) { + super(id, reqs); + } + + public void setNativeLatency(double latency) { + this.setMeasuredValue(RequirementConstants.API_NATIVE_LATENCY, latency); + } + + public void setJavaLatency(double latency) { + this.setMeasuredValue(RequirementConstants.API_JAVA_LATENCY, latency); + } + + public static AudioTap2ToneLatencyRequirement createR5_6__H_1_1() { + RequiredMeasurement<Double> apiNativeLatency = RequiredMeasurement + .<Double>builder() + .setId(RequirementConstants.API_NATIVE_LATENCY) + .setPredicate(RequirementConstants.DOUBLE_LTE) + .addRequiredValue(Build.VERSION_CODES.TIRAMISU, 80.0) + .addRequiredValue(Build.VERSION_CODES.S, 100.0) + .addRequiredValue(Build.VERSION_CODES.R, 100.0) + .build(); + RequiredMeasurement<Double> apiJavaLatency = RequiredMeasurement + .<Double>builder() + .setId(RequirementConstants.API_JAVA_LATENCY) + .setPredicate(RequirementConstants.DOUBLE_LTE) + .addRequiredValue(Build.VERSION_CODES.TIRAMISU, 80.0) + .addRequiredValue(Build.VERSION_CODES.S, 100.0) + .addRequiredValue(Build.VERSION_CODES.R, 100.0) + .build(); + + return new AudioTap2ToneLatencyRequirement( + RequirementConstants.R5_6__H_1_1, + apiNativeLatency, + apiJavaLatency); + } + } + public <R extends Requirement> R addRequirement(R req) { if (!this.mRequirements.add(req)) { throw new IllegalStateException("Requirement " + req.id() + " already added"); @@ -1697,6 +1738,10 @@ public class PerformanceClassEvaluator { return this.addRequirement(StreamUseCaseRequirement.createStreamUseCaseReq()); } + public AudioTap2ToneLatencyRequirement addR5_6__H_1_1() { + return this.addRequirement(AudioTap2ToneLatencyRequirement.createR5_6__H_1_1()); + } + public void submitAndCheck() { boolean perfClassMet = submit(); @@ -1705,6 +1750,14 @@ public class PerformanceClassEvaluator { assertThat(perfClassMet).isTrue(); } + public void submitAndVerify() { + boolean perfClassMet = submit(); + + if (!perfClassMet && Utils.isPerfClass()) { + Log.w(TAG, "Device did not meet specified performance class: " + Utils.getPerfClass()); + } + } + public boolean submit() { boolean perfClassMet = true; for (Requirement req: this.mRequirements) { diff --git a/tests/mediapc/common/src/android/mediapc/cts/common/RequirementConstants.java b/tests/mediapc/common/src/android/mediapc/cts/common/RequirementConstants.java index 8a8da7dfbff..6f055954297 100644 --- a/tests/mediapc/common/src/android/mediapc/cts/common/RequirementConstants.java +++ b/tests/mediapc/common/src/android/mediapc/cts/common/RequirementConstants.java @@ -130,6 +130,8 @@ public class RequirementConstants { "rear_camera_stream_usecase_supported"; public static final String FRONT_CAMERA_STREAM_USECASE_SUPPORTED = "front_camera_stream_usecase_supported"; + public static final String API_NATIVE_LATENCY = "native_latency_ms"; + public static final String API_JAVA_LATENCY = "java_latency_ms"; public enum Result { NA, MET, UNMET @@ -141,9 +143,10 @@ public class RequirementConstants { public static final BiPredicate<Integer, Integer> INTEGER_GTE = RequirementConstants.gte(); public static final BiPredicate<Integer, Integer> INTEGER_LTE = RequirementConstants.lte(); public static final BiPredicate<Integer, Integer> INTEGER_EQ = RequirementConstants.eq(); + public static final BiPredicate<Double, Double> DOUBLE_GTE = RequirementConstants.gte(); + public static final BiPredicate<Double, Double> DOUBLE_LTE = RequirementConstants.lte(); public static final BiPredicate<Double, Double> DOUBLE_EQ = RequirementConstants.eq(); public static final BiPredicate<Boolean, Boolean> BOOLEAN_EQ = RequirementConstants.eq(); - public static final BiPredicate<Double, Double> DOUBLE_GTE = RequirementConstants.gte(); /** * Creates a >= predicate. |