summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2014-10-22 14:07:50 -0700
committerThe Android Automerger <android-build@google.com>2014-10-23 17:35:34 -0700
commitf635b27cf43bca5076dcb5a37b919d86e7f4ebdf (patch)
treef54febbeb5d8043cc566314bdd2a5a3975d48089
parent170436048893ff0b3075d0e453d494e18676ac0f (diff)
downloadplatform_cts-f635b27cf43bca5076dcb5a37b919d86e7f4ebdf.tar.gz
platform_cts-f635b27cf43bca5076dcb5a37b919d86e7f4ebdf.tar.bz2
platform_cts-f635b27cf43bca5076dcb5a37b919d86e7f4ebdf.zip
skip audio effect tests when not applicable
Only Equalizer and Visualizer audio effects are mandated. Skip the test when the platform does not support audio output or when an effect is not reported as being implemented. Bug: 18085894. Bug: 15338282. Change-Id: I2ca3af69737a5d1ae76e9505998c485ff57f9c96
-rw-r--r--tests/tests/media/src/android/media/cts/AudioEffectTest.java168
-rw-r--r--tests/tests/media/src/android/media/cts/BassBoostTest.java38
-rw-r--r--tests/tests/media/src/android/media/cts/EnvReverbTest.java44
-rw-r--r--tests/tests/media/src/android/media/cts/EqualizerTest.java46
-rw-r--r--tests/tests/media/src/android/media/cts/PostProcTestBase.java65
-rw-r--r--tests/tests/media/src/android/media/cts/PresetReverbTest.java35
-rw-r--r--tests/tests/media/src/android/media/cts/VirtualizerTest.java14
-rw-r--r--tests/tests/media/src/android/media/cts/VisualizerTest.java24
8 files changed, 283 insertions, 151 deletions
diff --git a/tests/tests/media/src/android/media/cts/AudioEffectTest.java b/tests/tests/media/src/android/media/cts/AudioEffectTest.java
index 7ff78d8011f..1c96abd82fc 100644
--- a/tests/tests/media/src/android/media/cts/AudioEffectTest.java
+++ b/tests/tests/media/src/android/media/cts/AudioEffectTest.java
@@ -35,10 +35,10 @@ import android.test.AndroidTestCase;
import android.util.Log;
import java.util.UUID;
-public class AudioEffectTest extends AndroidTestCase {
+public class AudioEffectTest extends PostProcTestBase {
private String TAG = "AudioEffectTest";
- private final static int MIN_NUMBER_EFFECTS = 5;
+ private final static int MIN_NUMBER_EFFECTS = 1;
// allow +/- 5% tolerance between set and get delays
private final static float DELAY_TOLERANCE = 1.05f;
// allow +/- 5% tolerance between set and get ratios
@@ -50,17 +50,9 @@ public class AudioEffectTest extends AndroidTestCase {
private AudioEffect mEffect = null;
private AudioEffect mEffect2 = null;
- private int mSession = -1;
- private boolean mHasControl = false;
- private boolean mIsEnabled = false;
- private int mChangedParameter = -1;
- private boolean mInitialized = false;
- private Looper mLooper = null;
private MediaPlayer mMediaPlayer = null;
private int mError = 0;
- private final Object mLock = new Object();
-
private ListenerThread mEffectListenerLooper = null;
//-----------------------------------------------------------------
@@ -71,9 +63,11 @@ public class AudioEffectTest extends AndroidTestCase {
// 0 - static methods
//----------------------------------
- //Test case 0.0: test queryEffects() and platfrom at least provides Equalizer, Bass Boost,
- // Virtualizer, Environmental reverb and Preset reverb effects
+ //Test case 0.0: test queryEffects() and platfrom at least provides an Equalizer
public void test0_0QueryEffects() throws Exception {
+ if (!hasAudioOutput()) {
+ return;
+ }
AudioEffect.Descriptor[] desc = AudioEffect.queryEffects();
@@ -81,29 +75,14 @@ public class AudioEffectTest extends AndroidTestCase {
(desc.length >= MIN_NUMBER_EFFECTS));
boolean hasEQ = false;
- boolean hasBassBoost = false;
- boolean hasVirtualizer = false;
- boolean hasEnvReverb = false;
- boolean hasPresetReverb = false;
for (int i = 0; i < desc.length; i++) {
if (desc[i].type.equals(AudioEffect.EFFECT_TYPE_EQUALIZER)) {
hasEQ = true;
- } else if (desc[i].type.equals(AudioEffect.EFFECT_TYPE_BASS_BOOST)) {
- hasBassBoost = true;
- } else if (desc[i].type.equals(AudioEffect.EFFECT_TYPE_VIRTUALIZER)) {
- hasVirtualizer = true;
- } else if (desc[i].type.equals(AudioEffect.EFFECT_TYPE_ENV_REVERB)) {
- hasEnvReverb = true;
- } else if (desc[i].type.equals(AudioEffect.EFFECT_TYPE_PRESET_REVERB)) {
- hasPresetReverb = true;
+ break;
}
}
assertTrue("test0_0QueryEffects: equalizer not found", hasEQ);
- assertTrue("test0_0QueryEffects: bass boost not found", hasBassBoost);
- assertTrue("test0_0QueryEffects: virtualizer not found", hasVirtualizer);
- assertTrue("test0_0QueryEffects: environmental reverb not found", hasEnvReverb);
- assertTrue("test0_0QueryEffects: preset reverb not found", hasPresetReverb);
}
//-----------------------------------------------------------------
@@ -129,45 +108,10 @@ public class AudioEffectTest extends AndroidTestCase {
return ar;
}
- //Test case 1.0: test constructor from effect type and get effect ID
- public void test1_0ConstructorFromType() throws Exception {
- AudioEffect.Descriptor[] desc = AudioEffect.queryEffects();
- assertTrue("no effects found", (desc.length != 0));
- for (int i = 0; i < desc.length; i++) {
- if (!desc[i].type.equals(AudioEffect.EFFECT_TYPE_NULL)) {
- try {
- int sessionId;
- AudioRecord ar = null;
- if (AudioEffect.EFFECT_PRE_PROCESSING.equals(desc[i].connectMode)) {
- ar = getAudioRecord();
- sessionId = ar.getAudioSessionId();
- } else {
- sessionId = 0;
- }
- AudioEffect effect = new AudioEffect(desc[i].type,
- AudioEffect.EFFECT_TYPE_NULL,
- 0,
- sessionId);
+// // Test case 1.0: test constructor from effect type and get effect ID
+// public void test1_0ConstructorFromType() ...
+// Note: This test was removed because it used hidden api's.
- assertNotNull("could not create AudioEffect", effect);
- try {
- assertTrue("invalid effect ID", (effect.getId() != 0));
- } catch (IllegalStateException e) {
- fail("AudioEffect not initialized");
- } finally {
- effect.release();
- if (ar != null) {
- ar.release();
- }
- }
- } catch (IllegalArgumentException e) {
- fail("Effect not found: "+desc[i].name);
- } catch (UnsupportedOperationException e) {
- fail("Effect library not loaded");
- }
- }
- }
- }
// //Test case 1.1: test constructor from effect uuid
// public void test1_1ConstructorFromUuid() ...
@@ -175,28 +119,15 @@ public class AudioEffectTest extends AndroidTestCase {
// 1. will fail in devices that offload effects
// 2. it used hidden api's.
- //Test case 1.2: test constructor failure from unknown type
- public void test1_2ConstructorUnknownType() throws Exception {
-
- try {
- AudioEffect effect = new AudioEffect(UUID.randomUUID(),
- AudioEffect.EFFECT_TYPE_NULL,
- 0,
- 0);
- fail("could create random AudioEffect");
- if (effect != null) {
- effect.release();
- }
- } catch (IllegalArgumentException e) {
-
- } catch (UnsupportedOperationException e) {
- fail("Effect library not loaded");
- }
- }
+// //Test case 1.2: test constructor failure from unknown type
+// public void test1_2ConstructorUnknownType() ...
+// Note: This test was removed because it used hidden api's.
//Test case 1.3: test getEnabled() failure when called on released effect
public void test1_3GetEnabledAfterRelease() throws Exception {
-
+ if (!hasAudioOutput()) {
+ return;
+ }
try {
AudioEffect effect = new AudioEffect(AudioEffect.EFFECT_TYPE_EQUALIZER,
AudioEffect.EFFECT_TYPE_NULL,
@@ -219,6 +150,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 1.4: test contructor on mediaPlayer audio session
public void test1_4InsertOnMediaPlayer() throws Exception {
+ if (!hasAudioOutput()) {
+ return;
+ }
MediaPlayer mp = new MediaPlayer();
assertNotNull("could not create mediaplayer", mp);
AssetFileDescriptor afd = mContext.getResources().openRawResourceFd(R.raw.testmp3);
@@ -238,6 +172,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 1.5: test auxiliary effect attachement on MediaPlayer
public void test1_5AuxiliaryOnMediaPlayer() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
synchronized(mLock) {
mInitialized = false;
createMediaPlayerLooper();
@@ -270,6 +207,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 1.6: test auxiliary effect attachement failure before setDatasource
public void test1_6AuxiliaryOnMediaPlayerFailure() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
synchronized(mLock) {
mInitialized = false;
createMediaPlayerLooper();
@@ -301,6 +241,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 1.7: test auxiliary effect attachement on AudioTrack
public void test1_7AuxiliaryOnAudioTrack() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
AudioTrack track = null;
getEffect(AudioEffect.EFFECT_TYPE_PRESET_REVERB, 0);
try {
@@ -342,7 +285,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 2.0: test setEnabled() and getEnabled() in valid state
public void test2_0SetEnabledGetEnabled() throws Exception {
-
+ if (!hasAudioOutput()) {
+ return;
+ }
try {
AudioEffect effect = new AudioEffect(AudioEffect.EFFECT_TYPE_EQUALIZER,
AudioEffect.EFFECT_TYPE_NULL,
@@ -370,7 +315,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 2.1: test setEnabled() throws exception after release
public void test2_1SetEnabledAfterRelease() throws Exception {
-
+ if (!hasAudioOutput()) {
+ return;
+ }
try {
AudioEffect effect = new AudioEffect(AudioEffect.EFFECT_TYPE_EQUALIZER,
AudioEffect.EFFECT_TYPE_NULL,
@@ -397,6 +344,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 3.0: test setParameter(byte[], byte[]) / getParameter(byte[], byte[])
public void test3_0SetParameterByteArrayByteArray() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
getEffect(AudioEffect.EFFECT_TYPE_PRESET_REVERB, 0);
try {
byte[] param = mEffect.intToByteArray(PresetReverb.PARAM_PRESET);
@@ -428,6 +378,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 3.1: test setParameter(int, int) / getParameter(int, int[])
public void test3_1SetParameterIntInt() throws Exception {
+ if (!isEnvReverbAvailable()) {
+ return;
+ }
getEffect(AudioEffect.EFFECT_TYPE_ENV_REVERB, 0);
try {
int param = EnvironmentalReverb.PARAM_DECAY_TIME;
@@ -459,6 +412,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 3.2: test setParameter(int, short) / getParameter(int, short[])
public void test3_2SetParameterIntShort() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
getEffect(AudioEffect.EFFECT_TYPE_PRESET_REVERB, 0);
try {
int param = PresetReverb.PARAM_PRESET;
@@ -488,6 +444,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 3.3: test setParameter(int, byte[]) / getParameter(int, byte[])
public void test3_3SetParameterIntByteArray() throws Exception {
+ if (!isEnvReverbAvailable()) {
+ return;
+ }
getEffect(AudioEffect.EFFECT_TYPE_ENV_REVERB, 0);
try {
int param = EnvironmentalReverb.PARAM_DECAY_TIME;
@@ -521,6 +480,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 3.4: test setParameter(int[], int[]) / getParameter(int[], int[])
public void test3_4SetParameterIntArrayIntArray() throws Exception {
+ if (!isEnvReverbAvailable()) {
+ return;
+ }
getEffect(AudioEffect.EFFECT_TYPE_ENV_REVERB, 0);
try {
int[] param = new int[1];
@@ -555,6 +517,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 3.5: test setParameter(int[], short[]) / getParameter(int[], short[])
public void test3_5SetParameterIntArrayShortArray() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
getEffect(AudioEffect.EFFECT_TYPE_PRESET_REVERB, 0);
try {
int[] param = new int[1];
@@ -586,6 +551,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 3.6: test setParameter(int[], byte[]) / getParameter(int[], byte[])
public void test3_6SetParameterIntArrayByteArray() throws Exception {
+ if (!isEnvReverbAvailable()) {
+ return;
+ }
getEffect(AudioEffect.EFFECT_TYPE_ENV_REVERB, 0);
try {
int[] param = new int[1];
@@ -620,6 +588,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 3.7: test setParameter() throws exception after release()
public void test3_7SetParameterAfterRelease() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
AudioEffect effect = null;
try {
effect = new AudioEffect(AudioEffect.EFFECT_TYPE_PRESET_REVERB,
@@ -645,6 +616,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 3.8: test getParameter() throws exception after release()
public void test3_8GetParameterAfterRelease() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
AudioEffect effect = null;
try {
effect = new AudioEffect(AudioEffect.EFFECT_TYPE_PRESET_REVERB,
@@ -675,6 +649,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 4.0: test control passed to higher priority client
public void test4_0setEnabledLowerPriority() throws Exception {
+ if (!hasAudioOutput()) {
+ return;
+ }
AudioEffect effect1 = null;
AudioEffect effect2 = null;
try {
@@ -712,6 +689,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 4.1: test control passed to higher priority client
public void test4_1setParameterLowerPriority() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
AudioEffect effect1 = null;
AudioEffect effect2 = null;
try {
@@ -761,7 +741,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 4.2: test control status listener
public void test4_2ControlStatusListener() throws Exception {
-
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
synchronized(mLock) {
mHasControl = true;
mInitialized = false;
@@ -784,7 +766,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 4.3: test enable status listener
public void test4_3EnableStatusListener() throws Exception {
-
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
synchronized(mLock) {
mInitialized = false;
createListenerLooper(false, true, false);
@@ -811,6 +795,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 4.4: test parameter changed listener
public void test4_4ParameterChangedListener() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
synchronized(mLock) {
mInitialized = false;
createListenerLooper(false, false, true);
@@ -844,6 +831,9 @@ public class AudioEffectTest extends AndroidTestCase {
//Test case 5.0: test command method
public void test5_0Command() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
getEffect(AudioEffect.EFFECT_TYPE_PRESET_REVERB, 0);
try {
byte[] cmd = new byte[0];
diff --git a/tests/tests/media/src/android/media/cts/BassBoostTest.java b/tests/tests/media/src/android/media/cts/BassBoostTest.java
index 9dcb4e9a8ac..c9bffd9a064 100644
--- a/tests/tests/media/src/android/media/cts/BassBoostTest.java
+++ b/tests/tests/media/src/android/media/cts/BassBoostTest.java
@@ -24,7 +24,7 @@ import android.os.Looper;
import android.test.AndroidTestCase;
import android.util.Log;
-public class BassBoostTest extends AndroidTestCase {
+public class BassBoostTest extends PostProcTestBase {
private String TAG = "BassBoostTest";
private final static short TEST_STRENGTH = 500;
@@ -34,13 +34,6 @@ public class BassBoostTest extends AndroidTestCase {
private BassBoost mBassBoost = null;
private BassBoost mBassBoost2 = null;
- private int mSession = -1;
- private boolean mHasControl = false;
- private boolean mIsEnabled = false;
- private int mChangedParameter = -1;
- private boolean mInitialized = false;
- private Looper mLooper = null;
- private final Object mLock = new Object();
private ListenerThread mEffectListenerLooper = null;
//-----------------------------------------------------------------
@@ -53,10 +46,12 @@ public class BassBoostTest extends AndroidTestCase {
//Test case 0.0: test constructor and release
public void test0_0ConstructorAndRelease() throws Exception {
+ if (!isBassBoostAvailable()) {
+ return;
+ }
BassBoost eq = null;
try {
eq = new BassBoost(0, 0);
- assertNotNull("could not create BassBoost", eq);
try {
assertTrue("invalid effect ID", (eq.getId() != 0));
} catch (IllegalStateException e) {
@@ -81,6 +76,9 @@ public class BassBoostTest extends AndroidTestCase {
//Test case 1.0: test strength
public void test1_0Strength() throws Exception {
+ if (!isBassBoostAvailable()) {
+ return;
+ }
getBassBoost(0);
try {
if (mBassBoost.getStrengthSupported()) {
@@ -110,6 +108,9 @@ public class BassBoostTest extends AndroidTestCase {
//Test case 1.1: test properties
public void test1_1Properties() throws Exception {
+ if (!isBassBoostAvailable()) {
+ return;
+ }
getBassBoost(0);
try {
BassBoost.Settings settings = mBassBoost.getProperties();
@@ -144,6 +145,9 @@ public class BassBoostTest extends AndroidTestCase {
//Test case 1.2: test setStrength() throws exception after release
public void test1_2SetStrengthAfterRelease() throws Exception {
+ if (!isBassBoostAvailable()) {
+ return;
+ }
getBassBoost(0);
mBassBoost.release();
try {
@@ -162,6 +166,9 @@ public class BassBoostTest extends AndroidTestCase {
//Test case 2.0: test setEnabled() and getEnabled() in valid state
public void test2_0SetEnabledGetEnabled() throws Exception {
+ if (!isBassBoostAvailable()) {
+ return;
+ }
getBassBoost(0);
try {
mBassBoost.setEnabled(true);
@@ -178,6 +185,9 @@ public class BassBoostTest extends AndroidTestCase {
//Test case 2.1: test setEnabled() throws exception after release
public void test2_1SetEnabledAfterRelease() throws Exception {
+ if (!isBassBoostAvailable()) {
+ return;
+ }
getBassBoost(0);
mBassBoost.release();
try {
@@ -196,6 +206,9 @@ public class BassBoostTest extends AndroidTestCase {
//Test case 3.0: test control status listener
public void test3_0ControlStatusListener() throws Exception {
+ if (!isBassBoostAvailable()) {
+ return;
+ }
synchronized(mLock) {
mHasControl = true;
mInitialized = false;
@@ -218,6 +231,9 @@ public class BassBoostTest extends AndroidTestCase {
//Test case 3.1: test enable status listener
public void test3_1EnableStatusListener() throws Exception {
+ if (!isBassBoostAvailable()) {
+ return;
+ }
synchronized(mLock) {
mInitialized = false;
createListenerLooper(false, true, false);
@@ -242,6 +258,9 @@ public class BassBoostTest extends AndroidTestCase {
//Test case 3.2: test parameter changed listener
public void test3_2ParameterChangedListener() throws Exception {
+ if (!isBassBoostAvailable()) {
+ return;
+ }
synchronized(mLock) {
mInitialized = false;
createListenerLooper(false, false, true);
@@ -413,5 +432,4 @@ public class BassBoostTest extends AndroidTestCase {
mBassBoost2 = null;
}
}
-
} \ No newline at end of file
diff --git a/tests/tests/media/src/android/media/cts/EnvReverbTest.java b/tests/tests/media/src/android/media/cts/EnvReverbTest.java
index edfef964c03..e2e9b6d54f5 100644
--- a/tests/tests/media/src/android/media/cts/EnvReverbTest.java
+++ b/tests/tests/media/src/android/media/cts/EnvReverbTest.java
@@ -24,7 +24,7 @@ import android.os.Looper;
import android.test.AndroidTestCase;
import android.util.Log;
-public class EnvReverbTest extends AndroidTestCase {
+public class EnvReverbTest extends PostProcTestBase {
private String TAG = "EnvReverbTest";
private final static int MILLIBEL_TOLERANCE = 100; // +/-1dB
@@ -34,13 +34,6 @@ public class EnvReverbTest extends AndroidTestCase {
private EnvironmentalReverb mReverb = null;
private EnvironmentalReverb mReverb2 = null;
- private int mSession = -1;
- private boolean mHasControl = false;
- private boolean mIsEnabled = false;
- private int mChangedParameter = -1;
- private boolean mInitialized = false;
- private Looper mLooper = null;
- private final Object mLock = new Object();
private ListenerThread mEffectListenerLooper = null;
//-----------------------------------------------------------------
@@ -53,10 +46,12 @@ public class EnvReverbTest extends AndroidTestCase {
//Test case 0.0: test constructor and release
public void test0_0ConstructorAndRelease() throws Exception {
+ if (!isEnvReverbAvailable()) {
+ return;
+ }
EnvironmentalReverb envReverb = null;
try {
envReverb = new EnvironmentalReverb(0, 0);
- assertNotNull("could not create EnvironmentalReverb", envReverb);
try {
assertTrue("invalid effect ID", (envReverb.getId() != 0));
} catch (IllegalStateException e) {
@@ -80,6 +75,9 @@ public class EnvReverbTest extends AndroidTestCase {
//Test case 1.0: test room level and room HF level
public void test1_0Room() throws Exception {
+ if (!isEnvReverbAvailable()) {
+ return;
+ }
getReverb(0);
try {
short level = mReverb.getRoomLevel();
@@ -111,6 +109,9 @@ public class EnvReverbTest extends AndroidTestCase {
//Test case 1.1: test decay time and ratio
public void test1_1Decay() throws Exception {
+ if (!isEnvReverbAvailable()) {
+ return;
+ }
getReverb(0);
try {
int time = mReverb.getDecayTime();
@@ -142,6 +143,9 @@ public class EnvReverbTest extends AndroidTestCase {
//Test case 1.2: test reverb level and delay
public void test1_2Reverb() throws Exception {
+ if (!isEnvReverbAvailable()) {
+ return;
+ }
getReverb(0);
try {
short level = mReverb.getReverbLevel();
@@ -175,6 +179,9 @@ public class EnvReverbTest extends AndroidTestCase {
//Test case 1.3: test early reflections level and delay
public void test1_3Reflections() throws Exception {
+ if (!isEnvReverbAvailable()) {
+ return;
+ }
getReverb(0);
try {
// FIXME:uncomment actual test when early reflections are implemented in the reverb
@@ -213,6 +220,9 @@ public class EnvReverbTest extends AndroidTestCase {
//Test case 1.4: test diffusion and density
public void test1_4DiffusionAndDensity() throws Exception {
+ if (!isEnvReverbAvailable()) {
+ return;
+ }
getReverb(0);
try {
short ratio = mReverb.getDiffusion();
@@ -244,6 +254,9 @@ public class EnvReverbTest extends AndroidTestCase {
//Test case 1.5: test properties
public void test1_5Properties() throws Exception {
+ if (!isEnvReverbAvailable()) {
+ return;
+ }
getReverb(0);
try {
EnvironmentalReverb.Settings settings = mReverb.getProperties();
@@ -273,6 +286,9 @@ public class EnvReverbTest extends AndroidTestCase {
//Test case 2.0: test setEnabled() and getEnabled() in valid state
public void test2_0SetEnabledGetEnabled() throws Exception {
+ if (!isEnvReverbAvailable()) {
+ return;
+ }
getReverb(0);
try {
mReverb.setEnabled(true);
@@ -306,6 +322,9 @@ public class EnvReverbTest extends AndroidTestCase {
//Test case 3.0: test control status listener
public void test3_0ControlStatusListener() throws Exception {
+ if (!isEnvReverbAvailable()) {
+ return;
+ }
synchronized(mLock) {
mHasControl = true;
mInitialized = false;
@@ -328,6 +347,9 @@ public class EnvReverbTest extends AndroidTestCase {
//Test case 3.1: test enable status listener
public void test3_1EnableStatusListener() throws Exception {
+ if (!isEnvReverbAvailable()) {
+ return;
+ }
synchronized(mLock) {
mInitialized = false;
createListenerLooper(false, true, false);
@@ -352,6 +374,9 @@ public class EnvReverbTest extends AndroidTestCase {
//Test case 3.2: test parameter changed listener
public void test3_2ParameterChangedListener() throws Exception {
+ if (!isEnvReverbAvailable()) {
+ return;
+ }
synchronized(mLock) {
mInitialized = false;
createListenerLooper(false, false, true);
@@ -523,5 +548,4 @@ public class EnvReverbTest extends AndroidTestCase {
mReverb2 = null;
}
}
-
} \ No newline at end of file
diff --git a/tests/tests/media/src/android/media/cts/EqualizerTest.java b/tests/tests/media/src/android/media/cts/EqualizerTest.java
index 3bc0d8e245e..15f0c73c053 100644
--- a/tests/tests/media/src/android/media/cts/EqualizerTest.java
+++ b/tests/tests/media/src/android/media/cts/EqualizerTest.java
@@ -24,7 +24,7 @@ import android.os.Looper;
import android.test.AndroidTestCase;
import android.util.Log;
-public class EqualizerTest extends AndroidTestCase {
+public class EqualizerTest extends PostProcTestBase {
private String TAG = "EqualizerTest";
private final static int MIN_NUMBER_OF_BANDS = 4;
@@ -37,13 +37,6 @@ public class EqualizerTest extends AndroidTestCase {
private Equalizer mEqualizer = null;
private Equalizer mEqualizer2 = null;
- private int mSession = -1;
- private boolean mHasControl = false;
- private boolean mIsEnabled = false;
- private int mChangedParameter = -1;
- private boolean mInitialized = false;
- private Looper mLooper = null;
- private final Object mLock = new Object();
private ListenerThread mEffectListenerLooper = null;
//-----------------------------------------------------------------
@@ -56,10 +49,12 @@ public class EqualizerTest extends AndroidTestCase {
//Test case 0.0: test constructor and release
public void test0_0ConstructorAndRelease() throws Exception {
+ if (!hasAudioOutput()) {
+ return;
+ }
Equalizer eq = null;
try {
eq = new Equalizer(0, 0);
- assertNotNull("could not create Equalizer", eq);
try {
assertTrue("invalid effect ID", (eq.getId() != 0));
} catch (IllegalStateException e) {
@@ -83,6 +78,9 @@ public class EqualizerTest extends AndroidTestCase {
//Test case 1.0: test setBandLevel() and getBandLevel()
public void test1_0BandLevel() throws Exception {
+ if (!hasAudioOutput()) {
+ return;
+ }
getEqualizer(0);
try {
short numBands = mEqualizer.getNumberOfBands();
@@ -112,6 +110,9 @@ public class EqualizerTest extends AndroidTestCase {
//Test case 1.1: test band frequency
public void test1_1BandFrequency() throws Exception {
+ if (!hasAudioOutput()) {
+ return;
+ }
getEqualizer(0);
try {
short band = mEqualizer.getBand(TEST_FREQUENCY_MILLIHERTZ);
@@ -137,6 +138,9 @@ public class EqualizerTest extends AndroidTestCase {
//Test case 1.2: test presets
public void test1_2Presets() throws Exception {
+ if (!hasAudioOutput()) {
+ return;
+ }
getEqualizer(0);
try {
short numPresets = mEqualizer.getNumberOfPresets();
@@ -162,6 +166,9 @@ public class EqualizerTest extends AndroidTestCase {
//Test case 1.3: test properties
public void test1_3Properties() throws Exception {
+ if (!hasAudioOutput()) {
+ return;
+ }
getEqualizer(0);
try {
Equalizer.Settings settings = mEqualizer.getProperties();
@@ -193,7 +200,9 @@ public class EqualizerTest extends AndroidTestCase {
//Test case 1.4: test setBandLevel() throws exception after release
public void test1_4SetBandLevelAfterRelease() throws Exception {
-
+ if (!hasAudioOutput()) {
+ return;
+ }
getEqualizer(0);
mEqualizer.release();
try {
@@ -211,6 +220,9 @@ public class EqualizerTest extends AndroidTestCase {
//Test case 2.0: test setEnabled() and getEnabled() in valid state
public void test2_0SetEnabledGetEnabled() throws Exception {
+ if (!hasAudioOutput()) {
+ return;
+ }
getEqualizer(0);
try {
mEqualizer.setEnabled(true);
@@ -227,7 +239,9 @@ public class EqualizerTest extends AndroidTestCase {
//Test case 2.1: test setEnabled() throws exception after release
public void test2_1SetEnabledAfterRelease() throws Exception {
-
+ if (!hasAudioOutput()) {
+ return;
+ }
getEqualizer(0);
mEqualizer.release();
try {
@@ -245,6 +259,9 @@ public class EqualizerTest extends AndroidTestCase {
//Test case 3.0: test control status listener
public void test3_0ControlStatusListener() throws Exception {
+ if (!hasAudioOutput()) {
+ return;
+ }
synchronized(mLock) {
mHasControl = true;
mInitialized = false;
@@ -267,6 +284,9 @@ public class EqualizerTest extends AndroidTestCase {
//Test case 3.1: test enable status listener
public void test3_1EnableStatusListener() throws Exception {
+ if (!hasAudioOutput()) {
+ return;
+ }
synchronized(mLock) {
mInitialized = false;
createListenerLooper(false, true, false);
@@ -291,6 +311,9 @@ public class EqualizerTest extends AndroidTestCase {
//Test case 3.2: test parameter changed listener
public void test3_2ParameterChangedListener() throws Exception {
+ if (!hasAudioOutput()) {
+ return;
+ }
synchronized(mLock) {
mInitialized = false;
createListenerLooper(false, false, true);
@@ -460,5 +483,4 @@ public class EqualizerTest extends AndroidTestCase {
mEqualizer2 = null;
}
}
-
}
diff --git a/tests/tests/media/src/android/media/cts/PostProcTestBase.java b/tests/tests/media/src/android/media/cts/PostProcTestBase.java
new file mode 100644
index 00000000000..b03476387fc
--- /dev/null
+++ b/tests/tests/media/src/android/media/cts/PostProcTestBase.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2014 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 android.media.cts;
+
+import android.content.pm.PackageManager;
+import android.media.audiofx.AudioEffect;
+import android.os.Looper;
+import android.test.AndroidTestCase;
+
+public class PostProcTestBase extends AndroidTestCase {
+ protected int mSession = -1;
+ protected boolean mHasControl = false;
+ protected boolean mIsEnabled = false;
+ protected boolean mInitialized = false;
+ protected Looper mLooper = null;
+ protected final Object mLock = new Object();
+ protected int mChangedParameter = -1;
+
+ protected boolean hasAudioOutput() {
+ return getContext().getPackageManager().hasSystemFeature(
+ PackageManager.FEATURE_AUDIO_OUTPUT);
+ }
+
+ protected boolean isBassBoostAvailable() {
+ if (!hasAudioOutput()) {
+ return false;
+ }
+ return AudioEffect.isEffectTypeAvailable(AudioEffect.EFFECT_TYPE_BASS_BOOST);
+ }
+
+ protected boolean isVirtualizerAvailable() {
+ if (!hasAudioOutput()) {
+ return false;
+ }
+ return AudioEffect.isEffectTypeAvailable(AudioEffect.EFFECT_TYPE_VIRTUALIZER);
+ }
+
+ protected boolean isPresetReverbAvailable() {
+ if (!hasAudioOutput()) {
+ return false;
+ }
+ return AudioEffect.isEffectTypeAvailable(AudioEffect.EFFECT_TYPE_PRESET_REVERB);
+ }
+
+ protected boolean isEnvReverbAvailable() {
+ if (!hasAudioOutput()) {
+ return false;
+ }
+ return AudioEffect.isEffectTypeAvailable(AudioEffect.EFFECT_TYPE_ENV_REVERB);
+ }
+}
diff --git a/tests/tests/media/src/android/media/cts/PresetReverbTest.java b/tests/tests/media/src/android/media/cts/PresetReverbTest.java
index d69256c392b..ba6d08c78dd 100644
--- a/tests/tests/media/src/android/media/cts/PresetReverbTest.java
+++ b/tests/tests/media/src/android/media/cts/PresetReverbTest.java
@@ -24,7 +24,7 @@ import android.os.Looper;
import android.test.AndroidTestCase;
import android.util.Log;
-public class PresetReverbTest extends AndroidTestCase {
+public class PresetReverbTest extends PostProcTestBase {
private String TAG = "PresetReverbTest";
private final static short FIRST_PRESET = PresetReverb.PRESET_NONE;
@@ -33,13 +33,6 @@ public class PresetReverbTest extends AndroidTestCase {
private PresetReverb mReverb = null;
private PresetReverb mReverb2 = null;
- private int mSession = -1;
- private boolean mHasControl = false;
- private boolean mIsEnabled = false;
- private int mChangedParameter = -1;
- private boolean mInitialized = false;
- private Looper mLooper = null;
- private final Object mLock = new Object();
private ListenerThread mEffectListenerLooper = null;
//-----------------------------------------------------------------
@@ -52,10 +45,12 @@ public class PresetReverbTest extends AndroidTestCase {
//Test case 0.0: test constructor and release
public void test0_0ConstructorAndRelease() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
PresetReverb reverb = null;
try {
reverb = new PresetReverb(0, 0);
- assertNotNull("could not create PresetReverb", reverb);
try {
assertTrue("invalid effect ID", (reverb.getId() != 0));
} catch (IllegalStateException e) {
@@ -78,6 +73,9 @@ public class PresetReverbTest extends AndroidTestCase {
//Test case 1.0: test presets
public void test1_0Presets() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
getReverb(0);
try {
for (short preset = FIRST_PRESET;
@@ -99,6 +97,9 @@ public class PresetReverbTest extends AndroidTestCase {
//Test case 1.1: test properties
public void test1_1Properties() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
getReverb(0);
try {
PresetReverb.Settings settings = mReverb.getProperties();
@@ -127,6 +128,9 @@ public class PresetReverbTest extends AndroidTestCase {
//Test case 2.0: test setEnabled() and getEnabled() in valid state
public void test2_0SetEnabledGetEnabled() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
getReverb(0);
try {
mReverb.setEnabled(true);
@@ -142,6 +146,9 @@ public class PresetReverbTest extends AndroidTestCase {
//Test case 2.1: test setEnabled() throws exception after release
public void test2_1SetEnabledAfterRelease() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
getReverb(0);
mReverb.release();
try {
@@ -159,6 +166,9 @@ public class PresetReverbTest extends AndroidTestCase {
//Test case 3.0: test control status listener
public void test3_0ControlStatusListener() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
synchronized(mLock) {
mHasControl = true;
mInitialized = false;
@@ -181,6 +191,9 @@ public class PresetReverbTest extends AndroidTestCase {
//Test case 3.1: test enable status listener
public void test3_1EnableStatusListener() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
synchronized(mLock) {
mInitialized = false;
createListenerLooper(false, true, false);
@@ -205,6 +218,9 @@ public class PresetReverbTest extends AndroidTestCase {
//Test case 3.2: test parameter changed listener
public void test3_2ParameterChangedListener() throws Exception {
+ if (!isPresetReverbAvailable()) {
+ return;
+ }
synchronized(mLock) {
mInitialized = false;
createListenerLooper(false, false, true);
@@ -377,5 +393,4 @@ public class PresetReverbTest extends AndroidTestCase {
mReverb2 = null;
}
}
-
} \ No newline at end of file
diff --git a/tests/tests/media/src/android/media/cts/VirtualizerTest.java b/tests/tests/media/src/android/media/cts/VirtualizerTest.java
index cac97b30985..51adf1d6782 100644
--- a/tests/tests/media/src/android/media/cts/VirtualizerTest.java
+++ b/tests/tests/media/src/android/media/cts/VirtualizerTest.java
@@ -24,7 +24,7 @@ import android.os.Looper;
import android.test.AndroidTestCase;
import android.util.Log;
-public class VirtualizerTest extends AndroidTestCase {
+public class VirtualizerTest extends PostProcTestBase {
private String TAG = "VirtualizerTest";
private final static short TEST_STRENGTH = 500;
@@ -34,13 +34,6 @@ public class VirtualizerTest extends AndroidTestCase {
private Virtualizer mVirtualizer = null;
private Virtualizer mVirtualizer2 = null;
- private int mSession = -1;
- private boolean mHasControl = false;
- private boolean mIsEnabled = false;
- private int mChangedParameter = -1;
- private boolean mInitialized = false;
- private Looper mLooper = null;
- private final Object mLock = new Object();
private ListenerThread mEffectListenerLooper = null;
//-----------------------------------------------------------------
@@ -60,7 +53,6 @@ public class VirtualizerTest extends AndroidTestCase {
Virtualizer eq = null;
try {
eq = new Virtualizer(0, 0);
- assertNotNull(" could not create Virtualizer", eq);
try {
assertTrue(" invalid effect ID", (eq.getId() != 0));
} catch (IllegalStateException e) {
@@ -299,10 +291,6 @@ public class VirtualizerTest extends AndroidTestCase {
// private methods
//----------------------------------
- private boolean isVirtualizerAvailable() {
- return AudioEffect.isEffectTypeAvailable(AudioEffect.EFFECT_TYPE_VIRTUALIZER);
- }
-
private void getVirtualizer(int session) {
if (mVirtualizer == null || session != mSession) {
if (session != mSession && mVirtualizer != null) {
diff --git a/tests/tests/media/src/android/media/cts/VisualizerTest.java b/tests/tests/media/src/android/media/cts/VisualizerTest.java
index e2a9fdd719e..8c91e9b8a43 100644
--- a/tests/tests/media/src/android/media/cts/VisualizerTest.java
+++ b/tests/tests/media/src/android/media/cts/VisualizerTest.java
@@ -24,7 +24,7 @@ import android.os.Looper;
import android.test.AndroidTestCase;
import android.util.Log;
-public class VisualizerTest extends AndroidTestCase {
+public class VisualizerTest extends PostProcTestBase {
private String TAG = "VisualizerTest";
private final static int MIN_CAPTURE_RATE_MAX = 10000; // 10Hz
@@ -33,10 +33,6 @@ public class VisualizerTest extends AndroidTestCase {
private final static int MAX_LOOPER_WAIT_COUNT = 10;
private Visualizer mVisualizer = null;
- private int mSession = -1;
- private boolean mInitialized = false;
- private Looper mLooper = null;
- private final Object mLock = new Object();
private byte[] mWaveform = null;
private byte[] mFft = null;
private boolean mCaptureWaveform = false;
@@ -53,10 +49,12 @@ public class VisualizerTest extends AndroidTestCase {
//Test case 0.0: test constructor and release
public void test0_0ConstructorAndRelease() throws Exception {
+ if (!hasAudioOutput()) {
+ return;
+ }
Visualizer visualizer = null;
- try {
+ try {
visualizer = new Visualizer(0);
- assertNotNull("could not create Visualizer", visualizer);
} catch (IllegalArgumentException e) {
fail("Visualizer not found");
} catch (UnsupportedOperationException e) {
@@ -75,6 +73,9 @@ public class VisualizerTest extends AndroidTestCase {
//Test case 1.0: capture rates
public void test1_0CaptureRates() throws Exception {
+ if (!hasAudioOutput()) {
+ return;
+ }
getVisualizer(0);
try {
int captureRate = mVisualizer.getMaxCaptureRate();
@@ -94,6 +95,9 @@ public class VisualizerTest extends AndroidTestCase {
//Test case 1.1: test capture size
public void test1_1CaptureSize() throws Exception {
+ if (!hasAudioOutput()) {
+ return;
+ }
getVisualizer(0);
try {
int[] range = mVisualizer.getCaptureSizeRange();
@@ -124,6 +128,9 @@ public class VisualizerTest extends AndroidTestCase {
//Test case 2.0: test cature in polling mode
public void test2_0PollingCapture() throws Exception {
+ if (!hasAudioOutput()) {
+ return;
+ }
try {
getVisualizer(0);
mVisualizer.setEnabled(true);
@@ -151,6 +158,9 @@ public class VisualizerTest extends AndroidTestCase {
//Test case 2.1: test capture with listener
public void test2_1ListenerCapture() throws Exception {
+ if (!hasAudioOutput()) {
+ return;
+ }
try {
getVisualizer(0);
synchronized(mLock) {