Set Robolectric graphics mode to NATIVE for all tests

This avoids needing to manually add `@GraphicsMode(NATIVE)` manually
to every test that relies on graphics/bitmap decoding behaviour.

PiperOrigin-RevId: 841719886
(cherry picked from commit 2e5e56f2af)
This commit is contained in:
ibaker
2025-12-08 05:25:15 -08:00
committed by Rohit Singh
parent f65b16374a
commit 813cf73f6d
11 changed files with 1 additions and 30 deletions

View File

@@ -45,6 +45,7 @@ android {
testOptions {
unitTests.all {
jvmArgs "-Xmx2g"
systemProperty "robolectric.graphicsMode", "NATIVE"
}
unitTests.includeAndroidResources true
// See https://developer.android.com/training/testing/instrumented-tests/androidx-test-libraries/runner

View File

@@ -17,7 +17,6 @@ package androidx.media3.exoplayer.e2etest;
import static androidx.media3.test.utils.robolectric.TestPlayerRunHelper.advance;
import static com.google.common.truth.Truth.assertThat;
import static org.robolectric.annotation.GraphicsMode.Mode.NATIVE;
import android.content.Context;
import android.graphics.Bitmap;
@@ -58,11 +57,9 @@ import java.util.ArrayList;
import java.util.concurrent.Executors;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.GraphicsMode;
/** End-to-end tests using image content loaded from an injected image management framework. */
@RunWith(AndroidJUnit4.class)
@GraphicsMode(value = NATIVE)
public final class ExternallyLoadedImagePlaybackTest {
private static final String INPUT_FILE_1 = "png/non-motion-photo-shortened.png";

View File

@@ -16,7 +16,6 @@
package androidx.media3.exoplayer.e2etest;
import static androidx.media3.test.utils.robolectric.TestPlayerRunHelper.advance;
import static org.robolectric.annotation.GraphicsMode.Mode.NATIVE;
import android.content.Context;
import androidx.media3.common.MediaItem;
@@ -30,11 +29,9 @@ import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.common.collect.ImmutableList;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.GraphicsMode;
/** End-to-end tests using image samples. */
@RunWith(AndroidJUnit4.class)
@GraphicsMode(value = NATIVE)
public class ImagePlaybackTest {
@Test

View File

@@ -16,7 +16,6 @@
package androidx.media3.exoplayer.e2etest;
import static androidx.media3.test.utils.robolectric.TestPlayerRunHelper.advance;
import static org.robolectric.annotation.GraphicsMode.Mode.NATIVE;
import android.content.Context;
import android.graphics.SurfaceTexture;
@@ -37,11 +36,9 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.ParameterizedRobolectricTestRunner;
import org.robolectric.ParameterizedRobolectricTestRunner.Parameters;
import org.robolectric.annotation.GraphicsMode;
/** End-to-end tests using MKV samples. */
@RunWith(ParameterizedRobolectricTestRunner.class)
@GraphicsMode(NATIVE)
public final class MkvPlaybackTest {
@Parameters(name = "{0}")
public static ImmutableList<String> mediaSamples() {

View File

@@ -16,7 +16,6 @@
package androidx.media3.exoplayer.e2etest;
import static androidx.media3.test.utils.robolectric.TestPlayerRunHelper.advance;
import static org.robolectric.annotation.GraphicsMode.Mode.NATIVE;
import android.content.Context;
import android.graphics.SurfaceTexture;
@@ -39,10 +38,8 @@ import org.junit.runner.RunWith;
import org.robolectric.ParameterizedRobolectricTestRunner;
import org.robolectric.ParameterizedRobolectricTestRunner.Parameter;
import org.robolectric.ParameterizedRobolectricTestRunner.Parameters;
import org.robolectric.annotation.GraphicsMode;
/** End-to-end tests using MP4 samples. */
@GraphicsMode(NATIVE)
@RunWith(ParameterizedRobolectricTestRunner.class)
public class Mp4PlaybackTest {

View File

@@ -16,7 +16,6 @@
package androidx.media3.exoplayer.e2etest;
import static com.google.common.truth.Truth.assertThat;
import static org.robolectric.annotation.GraphicsMode.Mode.NATIVE;
import android.content.Context;
import androidx.media3.common.C;
@@ -41,11 +40,9 @@ import org.junit.runner.RunWith;
import org.robolectric.ParameterizedRobolectricTestRunner;
import org.robolectric.ParameterizedRobolectricTestRunner.Parameter;
import org.robolectric.ParameterizedRobolectricTestRunner.Parameters;
import org.robolectric.annotation.GraphicsMode;
/** Parameterized end-to-end tests using image samples. */
@RunWith(ParameterizedRobolectricTestRunner.class)
@GraphicsMode(value = NATIVE)
public class ParameterizedImagePlaybackTest {
@Parameter public Set<String> inputFiles;

View File

@@ -17,7 +17,6 @@ package androidx.media3.exoplayer.e2etest;
import static androidx.media3.test.utils.robolectric.TestPlayerRunHelper.advance;
import static com.google.common.truth.Truth.assertThat;
import static org.robolectric.annotation.GraphicsMode.Mode.NATIVE;
import android.content.Context;
import android.graphics.SurfaceTexture;
@@ -41,12 +40,10 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.GraphicsMode;
/** End-to-end tests for playlists. */
@Config(sdk = 30) // TODO: b/382017156 - Remove this when the tests pass on API 31+.
@RunWith(AndroidJUnit4.class)
@GraphicsMode(value = NATIVE)
public final class PlaylistPlaybackTest {
@Rule

View File

@@ -18,7 +18,6 @@ package androidx.media3.exoplayer.image;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertThrows;
import static org.robolectric.annotation.GraphicsMode.Mode.NATIVE;
import android.content.Context;
import android.graphics.Bitmap;
@@ -36,11 +35,9 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.GraphicsMode;
/** Unit tests for {@link BitmapFactoryImageDecoder}. */
@RunWith(AndroidJUnit4.class)
@GraphicsMode(value = NATIVE)
public class BitmapFactoryImageDecoderTest {
private static final String PNG_TEST_IMAGE_PATH = "media/png/non-motion-photo-shortened.png";

View File

@@ -20,7 +20,6 @@ import static androidx.media3.test.utils.TestUtil.assertSubclassOverridesAllMeth
import static com.google.common.truth.Truth.assertThat;
import static java.util.concurrent.TimeUnit.SECONDS;
import static org.junit.Assert.assertThrows;
import static org.robolectric.annotation.GraphicsMode.Mode.NATIVE;
import android.content.Context;
import android.graphics.Bitmap;
@@ -45,7 +44,6 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.junit.runner.RunWith;
import org.robolectric.annotation.GraphicsMode;
/**
* Tests for {@link CacheBitmapLoader}.
@@ -54,7 +52,6 @@ import org.robolectric.annotation.GraphicsMode;
* fully functional.
*/
@RunWith(AndroidJUnit4.class)
@GraphicsMode(value = NATIVE)
public class CacheBitmapLoaderTest {
private static final String TEST_IMAGE_PATH = "media/jpeg/non-motion-photo-shortened.jpg";

View File

@@ -17,7 +17,6 @@ package androidx.media3.session;
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertThrows;
import static org.robolectric.annotation.GraphicsMode.Mode.NATIVE;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -42,12 +41,10 @@ import org.junit.Test;
import org.junit.function.ThrowingRunnable;
import org.junit.rules.TemporaryFolder;
import org.junit.runner.RunWith;
import org.robolectric.annotation.GraphicsMode;
/** Tests for {@link SimpleBitmapLoader}. */
@SuppressWarnings("deprecation") // Testing deprecated class
@RunWith(AndroidJUnit4.class)
@GraphicsMode(value = NATIVE)
public class SimpleBitmapLoaderTest {
private static final String TEST_IMAGE_PATH = "media/jpeg/non-motion-photo-shortened.jpg";

View File

@@ -19,7 +19,6 @@ import static androidx.media3.test.utils.TestUtil.assertSubclassOverridesAllMeth
import static com.google.common.truth.Truth.assertThat;
import static java.util.concurrent.TimeUnit.SECONDS;
import static org.junit.Assert.assertThrows;
import static org.robolectric.annotation.GraphicsMode.Mode.NATIVE;
import android.content.Context;
import android.graphics.Bitmap;
@@ -43,11 +42,9 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.junit.runner.RunWith;
import org.robolectric.annotation.GraphicsMode;
/** Tests for {@link SizeLimitedBitmapLoader}. */
@RunWith(AndroidJUnit4.class)
@GraphicsMode(value = NATIVE)
public class SizeLimitedBitmapLoaderTest {
private static final String TEST_IMAGE_PATH = "media/jpeg/non-motion-photo-shortened.jpg";