Bump targetSdkVersion to 30

- Remove Robolectric workarounds that are no longer needed
- Add workarounds for b/190021699

PiperOrigin-RevId: 377279422
This commit is contained in:
olly 2021-06-03 14:58:40 +01:00 committed by bachinger
parent 61397f2abe
commit bb2e0bc0ef
25 changed files with 18 additions and 79 deletions

View File

@ -17,7 +17,7 @@ project.ext {
releaseVersionCode = 2014000
minSdkVersion = 16
appTargetSdkVersion = 29
targetSdkVersion = 28 // TODO: Bump once b/143232359 is resolved. Also fix TODOs in UtilTest.
targetSdkVersion = 30
compileSdkVersion = 30
dexmakerVersion = '2.21.0'
junitVersion = '4.13.2'

View File

@ -25,11 +25,9 @@ import com.google.android.exoplayer2.video.ColorInfo;
import com.google.common.collect.ImmutableList;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
/** Unit tests for {@link MediaFormatUtil}. */
@RunWith(AndroidJUnit4.class)
@Config(sdk = 29) // Allows using MediaFormat.getKeys() to make assertions over the expected keys.
public class MediaFormatUtilTest {
@Test

View File

@ -984,9 +984,8 @@ public class UtilTest {
assertThat(Arrays.copyOf(output.getData(), output.limit())).isEqualTo(testData);
}
// TODO: Revert to @Config(sdk = Config.ALL_SDKS) once b/143232359 is resolved
@Test
@Config(minSdk = Config.OLDEST_SDK, maxSdk = Config.TARGET_SDK)
@Config(sdk = Config.ALL_SDKS)
public void normalizeLanguageCode_keepsUndefinedTagsUnchanged() {
assertThat(Util.normalizeLanguageCode(null)).isNull();
assertThat(Util.normalizeLanguageCode("")).isEmpty();
@ -994,9 +993,8 @@ public class UtilTest {
assertThat(Util.normalizeLanguageCode("DoesNotExist")).isEqualTo("doesnotexist");
}
// TODO: Revert to @Config(sdk = Config.ALL_SDKS) once b/143232359 is resolved
@Test
@Config(minSdk = Config.OLDEST_SDK, maxSdk = Config.TARGET_SDK)
@Config(sdk = Config.ALL_SDKS)
public void normalizeLanguageCode_normalizesCodeToTwoLetterISOAndLowerCase_keepingAllSubtags() {
assertThat(Util.normalizeLanguageCode("es")).isEqualTo("es");
assertThat(Util.normalizeLanguageCode("spa")).isEqualTo("es");
@ -1014,9 +1012,8 @@ public class UtilTest {
assertThat(Util.normalizeLanguageCode("sv-illegalSubtag")).isEqualTo("sv-illegalsubtag");
}
// TODO: Revert to @Config(sdk = Config.ALL_SDKS) once b/143232359 is resolved
@Test
@Config(minSdk = Config.OLDEST_SDK, maxSdk = Config.TARGET_SDK)
@Config(sdk = Config.ALL_SDKS)
public void normalizeLanguageCode_iso6392BibliographicalAndTextualCodes_areNormalizedToSameTag() {
// See https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes.
assertThat(Util.normalizeLanguageCode("alb")).isEqualTo(Util.normalizeLanguageCode("sqi"));
@ -1042,9 +1039,8 @@ public class UtilTest {
assertThat(Util.normalizeLanguageCode("wel")).isEqualTo(Util.normalizeLanguageCode("cym"));
}
// TODO: Revert to @Config(sdk = Config.ALL_SDKS) once b/143232359 is resolved
@Test
@Config(minSdk = Config.OLDEST_SDK, maxSdk = Config.TARGET_SDK)
@Config(sdk = Config.ALL_SDKS)
public void
normalizeLanguageCode_deprecatedLanguageTagsAndModernReplacement_areNormalizedToSameTag() {
// See https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes, "ISO 639:1988"
@ -1081,9 +1077,8 @@ public class UtilTest {
.isEqualTo(Util.normalizeLanguageCode("zh-hsn"));
}
// TODO: Revert to @Config(sdk = Config.ALL_SDKS) once b/143232359 is resolved
@Test
@Config(minSdk = Config.OLDEST_SDK, maxSdk = Config.TARGET_SDK)
@Config(sdk = Config.ALL_SDKS)
public void normalizeLanguageCode_macrolanguageTags_areFullyMaintained() {
// See https://en.wikipedia.org/wiki/ISO_639_macrolanguage
assertThat(Util.normalizeLanguageCode("zh-cmn")).isEqualTo("zh-cmn");

View File

@ -21,7 +21,6 @@ import static com.google.android.exoplayer2.AudioFocusManager.PLAYER_COMMAND_WAI
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.fail;
import static org.robolectric.Shadows.shadowOf;
import static org.robolectric.annotation.Config.TARGET_SDK;
import android.content.Context;
import android.media.AudioFocusRequest;
@ -100,7 +99,7 @@ public class AudioFocusManagerTest {
}
@Test
@Config(minSdk = 26, maxSdk = TARGET_SDK)
@Config(minSdk = 26)
public void setAudioAttributes_withNullUsage_abandonsAudioFocus_v26() {
Shadows.shadowOf(audioManager)
.setNextFocusRequestResponse(AudioManager.AUDIOFOCUS_REQUEST_GRANTED);
@ -286,7 +285,7 @@ public class AudioFocusManagerTest {
}
@Test
@Config(minSdk = 26, maxSdk = TARGET_SDK)
@Config(minSdk = 26)
public void updateAudioFocus_readyToIdle_abandonsAudioFocus_v26() {
Shadows.shadowOf(audioManager)
.setNextFocusRequestResponse(AudioManager.AUDIOFOCUS_REQUEST_GRANTED);
@ -324,7 +323,7 @@ public class AudioFocusManagerTest {
}
@Test
@Config(minSdk = 26, maxSdk = TARGET_SDK)
@Config(minSdk = 26)
public void updateAudioFocus_readyToIdle_withoutFocus_isNoOp_v26() {
Shadows.shadowOf(audioManager)
.setNextFocusRequestResponse(AudioManager.AUDIOFOCUS_REQUEST_GRANTED);
@ -455,7 +454,7 @@ public class AudioFocusManagerTest {
}
@Test
@Config(minSdk = 26, maxSdk = TARGET_SDK)
@Config(minSdk = 26)
public void onAudioFocusChange_withFocusLoss_sendsDoNotPlayAndAbandonsFocus_v26() {
Shadows.shadowOf(audioManager)
.setNextFocusRequestResponse(AudioManager.AUDIOFOCUS_REQUEST_GRANTED);

View File

@ -46,9 +46,8 @@ import org.robolectric.shadows.ShadowLooper;
@RunWith(AndroidJUnit4.class)
public class SimpleExoPlayerTest {
// TODO(b/143232359): Revert to @Config(sdk = Config.ALL_SDKS) once b/143232359 is resolved
@Test
@Config(minSdk = Config.OLDEST_SDK, maxSdk = Config.TARGET_SDK)
@Config(sdk = Config.ALL_SDKS)
public void builder_inBackgroundThread_doesNotThrow() throws Exception {
Thread builderThread =
new Thread(

View File

@ -19,8 +19,6 @@ import static com.google.android.exoplayer2.audio.AudioSink.CURRENT_POSITION_NOT
import static com.google.android.exoplayer2.audio.AudioSink.SINK_FORMAT_SUPPORTED_DIRECTLY;
import static com.google.android.exoplayer2.audio.AudioSink.SINK_FORMAT_SUPPORTED_WITH_TRANSCODING;
import static com.google.common.truth.Truth.assertThat;
import static org.robolectric.annotation.Config.OLDEST_SDK;
import static org.robolectric.annotation.Config.TARGET_SDK;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.C;
@ -219,7 +217,7 @@ public final class DefaultAudioSinkTest {
.isEqualTo(SINK_FORMAT_SUPPORTED_WITH_TRANSCODING);
}
@Config(minSdk = OLDEST_SDK, maxSdk = 20)
@Config(maxSdk = 20)
@Test
public void floatPcmNeedsTranscodingIfFloatOutputEnabledBeforeApi21() {
defaultAudioSink =
@ -237,7 +235,7 @@ public final class DefaultAudioSinkTest {
.isEqualTo(SINK_FORMAT_SUPPORTED_WITH_TRANSCODING);
}
@Config(minSdk = 21, maxSdk = TARGET_SDK)
@Config(minSdk = 21)
@Test
public void floatOutputSupportedIfFloatOutputEnabledFromApi21() {
defaultAudioSink =

View File

@ -55,10 +55,8 @@ import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.annotation.Config;
/** Unit tests for {@link MediaCodecAudioRenderer} */
@Config(sdk = 29)
@RunWith(AndroidJUnit4.class)
public class MediaCodecAudioRendererTest {
@Rule public final MockitoRule mockito = MockitoJUnit.rule();

View File

@ -39,7 +39,6 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.MediaCodecInfoBuilder;
import org.robolectric.shadows.ShadowAudioTrack;
import org.robolectric.shadows.ShadowMediaCodec;
@ -47,7 +46,6 @@ import org.robolectric.shadows.ShadowMediaCodecList;
/** End to end playback test for gapless audio playbacks. */
@RunWith(AndroidJUnit4.class)
@Config(sdk = 29)
public class EndToEndGaplessTest {
private static final int CODEC_INPUT_BUFFER_SIZE = 5120;
private static final int CODEC_OUTPUT_BUFFER_SIZE = 5120;

View File

@ -33,11 +33,8 @@ import org.junit.runner.RunWith;
import org.robolectric.ParameterizedRobolectricTestRunner;
import org.robolectric.ParameterizedRobolectricTestRunner.Parameter;
import org.robolectric.ParameterizedRobolectricTestRunner.Parameters;
import org.robolectric.annotation.Config;
/** End-to-end tests using FLAC samples. */
// TODO(b/143232359): Remove once https://issuetracker.google.com/143232359 is resolved.
@Config(sdk = 29)
@RunWith(ParameterizedRobolectricTestRunner.class)
public class FlacPlaybackTest {

View File

@ -34,11 +34,8 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.ParameterizedRobolectricTestRunner;
import org.robolectric.ParameterizedRobolectricTestRunner.Parameters;
import org.robolectric.annotation.Config;
/** End-to-end tests using FLV samples. */
// TODO(b/143232359): Remove once https://issuetracker.google.com/143232359 is resolved.
@Config(sdk = 29)
@RunWith(ParameterizedRobolectricTestRunner.class)
public final class FlvPlaybackTest {
@Parameters(name = "{0}")

View File

@ -32,11 +32,8 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.ParameterizedRobolectricTestRunner;
import org.robolectric.ParameterizedRobolectricTestRunner.Parameters;
import org.robolectric.annotation.Config;
/** End-to-end tests using MKA samples. */
// TODO(b/143232359): Remove once https://issuetracker.google.com/143232359 is resolved.
@Config(sdk = 29)
@RunWith(ParameterizedRobolectricTestRunner.class)
public final class MkaPlaybackTest {
@Parameters(name = "{0}")

View File

@ -34,11 +34,8 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.ParameterizedRobolectricTestRunner;
import org.robolectric.ParameterizedRobolectricTestRunner.Parameters;
import org.robolectric.annotation.Config;
/** End-to-end tests using MKV samples. */
// TODO(b/143232359): Remove once https://issuetracker.google.com/143232359 is resolved.
@Config(sdk = 29)
@RunWith(ParameterizedRobolectricTestRunner.class)
public final class MkvPlaybackTest {
@Parameters(name = "{0}")

View File

@ -32,11 +32,8 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.ParameterizedRobolectricTestRunner;
import org.robolectric.ParameterizedRobolectricTestRunner.Parameters;
import org.robolectric.annotation.Config;
/** End-to-end tests using MP3 samples. */
// TODO(b/143232359): Remove once https://issuetracker.google.com/143232359 is resolved.
@Config(sdk = 29)
@RunWith(ParameterizedRobolectricTestRunner.class)
public final class Mp3PlaybackTest {
@Parameters(name = "{0}")

View File

@ -35,11 +35,8 @@ import org.junit.runner.RunWith;
import org.robolectric.ParameterizedRobolectricTestRunner;
import org.robolectric.ParameterizedRobolectricTestRunner.Parameter;
import org.robolectric.ParameterizedRobolectricTestRunner.Parameters;
import org.robolectric.annotation.Config;
/** End-to-end tests using MP4 samples. */
// TODO(b/143232359): Remove once https://issuetracker.google.com/143232359 is resolved.
@Config(sdk = 29)
@RunWith(ParameterizedRobolectricTestRunner.class)
public class Mp4PlaybackTest {

View File

@ -31,11 +31,8 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.ParameterizedRobolectricTestRunner;
import org.robolectric.annotation.Config;
/** End-to-end tests using OGG samples. */
// TODO(b/143232359): Remove once https://issuetracker.google.com/143232359 is resolved.
@Config(sdk = 29)
@RunWith(ParameterizedRobolectricTestRunner.class)
public final class OggPlaybackTest {
@ParameterizedRobolectricTestRunner.Parameters(name = "{0}")

View File

@ -30,11 +30,8 @@ import com.google.android.exoplayer2.testutil.FakeClock;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
/** End-to-end tests for playlists. */
// TODO(b/143232359): Remove once https://issuetracker.google.com/143232359 is resolved.
@Config(sdk = 29)
@RunWith(AndroidJUnit4.class)
public final class PlaylistPlaybackTest {

View File

@ -30,11 +30,8 @@ import com.google.android.exoplayer2.testutil.FakeClock;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
/** End-to-end tests using {@link SilenceMediaSource}. */
// TODO(b/143232359): Remove once https://issuetracker.google.com/143232359 is resolved.
@Config(sdk = 29)
@RunWith(AndroidJUnit4.class)
public final class SilencePlaybackTest {

View File

@ -35,11 +35,8 @@ import org.junit.runner.RunWith;
import org.robolectric.ParameterizedRobolectricTestRunner;
import org.robolectric.ParameterizedRobolectricTestRunner.Parameter;
import org.robolectric.ParameterizedRobolectricTestRunner.Parameters;
import org.robolectric.annotation.Config;
/** End-to-end tests using TS samples. */
// TODO(b/143232359): Remove once https://issuetracker.google.com/143232359 is resolved.
@Config(sdk = 29)
@RunWith(ParameterizedRobolectricTestRunner.class)
public class TsPlaybackTest {

View File

@ -34,11 +34,8 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.ParameterizedRobolectricTestRunner;
import org.robolectric.ParameterizedRobolectricTestRunner.Parameters;
import org.robolectric.annotation.Config;
/** End-to-end tests using VP9 samples. */
// TODO(b/143232359): Remove once https://issuetracker.google.com/143232359 is resolved.
@Config(sdk = 29)
@RunWith(ParameterizedRobolectricTestRunner.class)
public final class Vp9PlaybackTest {
@Parameters(name = "{0}")

View File

@ -31,11 +31,8 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.ParameterizedRobolectricTestRunner;
import org.robolectric.annotation.Config;
/** End-to-end tests using WAV samples. */
// TODO(b/143232359): Remove once https://issuetracker.google.com/143232359 is resolved.
@Config(sdk = 29)
@RunWith(ParameterizedRobolectricTestRunner.class)
public final class WavPlaybackTest {
@ParameterizedRobolectricTestRunner.Parameters(name = "{0}")

View File

@ -33,7 +33,6 @@ import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicBoolean;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
/** Unit test for {@link ProgressiveMediaPeriod}. */
@RunWith(AndroidJUnit4.class)
@ -47,7 +46,6 @@ public final class ProgressiveMediaPeriodTest {
}
@Test
@Config(sdk = 30)
public void prepareUsingMediaParser_updatesSourceInfoBeforeOnPreparedCallback()
throws TimeoutException {
testExtractorsUpdatesSourceInfoBeforeOnPreparedCallback(new MediaParserExtractorAdapter());

View File

@ -52,11 +52,8 @@ import java.util.concurrent.atomic.AtomicReference;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
/** Unit test for {@link ServerSideInsertedAdsMediaSource}. */
// TODO(b/143232359): Remove once https://issuetracker.google.com/143232359 is resolved.
@Config(sdk = 29)
@RunWith(AndroidJUnit4.class)
public final class ServerSideInsertedAdMediaSourceTest {

View File

@ -183,6 +183,7 @@ public final class DefaultBandwidthMeterTest {
assertThat(initialEstimateEthernet).isGreaterThan(initialEstimate3g);
}
@Config(sdk = 28) // TODO(b/190021699): Fix 4G tests to work on newer API levels
@Test
public void defaultInitialBitrateEstimate_for4G_isGreaterThanEstimateFor2G() {
setActiveNetworkInfo(networkInfo4g);
@ -198,6 +199,7 @@ public final class DefaultBandwidthMeterTest {
assertThat(initialEstimate4g).isGreaterThan(initialEstimate2g);
}
@Config(sdk = 28) // TODO(b/190021699): Fix 4G tests to work on newer API levels
@Test
public void defaultInitialBitrateEstimate_for4G_isGreaterThanEstimateFor3G() {
setActiveNetworkInfo(networkInfo4g);
@ -228,7 +230,6 @@ public final class DefaultBandwidthMeterTest {
assertThat(initialEstimate3g).isGreaterThan(initialEstimate2g);
}
@Config(sdk = Config.NEWEST_SDK) // TODO: Remove once targetSDK >= 29
@Test
public void defaultInitialBitrateEstimate_for5gSa_isGreaterThanEstimateFor4g() {
setActiveNetworkInfo(networkInfo4g);
@ -323,6 +324,7 @@ public final class DefaultBandwidthMeterTest {
assertThat(initialEstimateFast).isGreaterThan(initialEstimateSlow);
}
@Config(sdk = 28) // TODO(b/190021699): Fix 4G tests to work on newer API levels
@Test
public void
defaultInitialBitrateEstimate_for4g_forFastCountry_isGreaterThanEstimateForSlowCountry() {
@ -340,7 +342,6 @@ public final class DefaultBandwidthMeterTest {
assertThat(initialEstimateFast).isGreaterThan(initialEstimateSlow);
}
@Config(sdk = Config.NEWEST_SDK) // TODO: Remove once targetSDK >= 29
@Test
public void
defaultInitialBitrateEstimate_for5gSa_forFastCountry_isGreaterThanEstimateForSlowCountry() {
@ -483,6 +484,7 @@ public final class DefaultBandwidthMeterTest {
assertThat(initialEstimate).isNotEqualTo(123456789);
}
@Config(sdk = 28) // TODO(b/190021699): Fix 4G tests to work on newer API levels
@Test
public void initialBitrateEstimateOverwrite_for4G_whileConnectedTo4G_setsInitialEstimate() {
setActiveNetworkInfo(networkInfo4g);
@ -495,6 +497,7 @@ public final class DefaultBandwidthMeterTest {
assertThat(initialEstimate).isEqualTo(123456789);
}
@Config(sdk = 28) // TODO(b/190021699): Fix 4G tests to work on newer API levels
@Test
public void
initialBitrateEstimateOverwrite_for4G_whileConnectedToOtherNetwork_doesNotSetInitialEstimate() {
@ -508,7 +511,6 @@ public final class DefaultBandwidthMeterTest {
assertThat(initialEstimate).isNotEqualTo(123456789);
}
@Config(sdk = Config.NEWEST_SDK) // TODO: Remove once targetSDK >= 29
@Test
public void initialBitrateEstimateOverwrite_for5gSa_whileConnectedTo5gSa_setsInitialEstimate() {
setActiveNetworkInfo(networkInfo5gSa);
@ -521,7 +523,6 @@ public final class DefaultBandwidthMeterTest {
assertThat(initialEstimate).isEqualTo(123456789);
}
@Config(sdk = Config.NEWEST_SDK) // TODO: Remove once targetSDK >= 29
@Test
public void
initialBitrateEstimateOverwrite_for5gSa_whileConnectedToOtherNetwork_doesNotSetInitialEstimate() {

View File

@ -35,12 +35,9 @@ import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.internal.DoNotInstrument;
/** End-to-end tests using DASH samples. */
// TODO(b/143232359): Remove once https://issuetracker.google.com/143232359 is resolved.
@Config(sdk = 29)
@RunWith(AndroidJUnit4.class)
@DoNotInstrument
public final class DashPlaybackTest {

View File

@ -18,7 +18,6 @@ package com.google.android.exoplayer2.source.dash;
import static com.google.common.truth.Truth.assertThat;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static org.junit.Assert.fail;
import static org.robolectric.annotation.LooperMode.Mode.PAUSED;
import android.net.Uri;
import androidx.test.core.app.ApplicationProvider;
@ -44,13 +43,11 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicReference;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.LooperMode;
import org.robolectric.annotation.internal.DoNotInstrument;
import org.robolectric.shadows.ShadowLooper;
/** Unit test for {@link DashMediaSource}. */
@RunWith(AndroidJUnit4.class)
@LooperMode(PAUSED)
@DoNotInstrument
public final class DashMediaSourceTest {