diff --git a/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTestRunner.java b/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTestRunner.java index 1a43a70f25..6ec2a825c3 100644 --- a/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTestRunner.java +++ b/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTestRunner.java @@ -323,7 +323,7 @@ public final class DashTestRunner { } @Override - protected void logMetrics(DecoderCounters audioCounters, DecoderCounters videoCounters) { + protected void onTestFinished(DecoderCounters audioCounters, DecoderCounters videoCounters) { metricsLogger.logMetric(MetricsLogger.KEY_TEST_NAME, streamName); metricsLogger.logMetric(MetricsLogger.KEY_IS_CDD_LIMITED_RETRY, isCddLimitedRetry); metricsLogger.logMetric(MetricsLogger.KEY_FRAMES_DROPPED_COUNT, @@ -335,10 +335,7 @@ public final class DashTestRunner { metricsLogger.logMetric(MetricsLogger.KEY_FRAMES_RENDERED_COUNT, videoCounters.renderedOutputBufferCount); metricsLogger.close(); - } - @Override - protected void assertPassed(DecoderCounters audioCounters, DecoderCounters videoCounters) { if (fullPlaybackNoSeeking) { // We shouldn't have skipped any output buffers. DecoderCountersUtil @@ -372,7 +369,6 @@ public final class DashTestRunner { } } } - } private static final class DashTestTrackSelector extends DefaultTrackSelector { diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java index ad59ca7152..74c0d4bb43 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java @@ -74,7 +74,6 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest { private SimpleExoPlayer player; private Surface surface; private ExoPlaybackException playerError; - private AnalyticsListener analyticsListener; private boolean playerWasPrepared; private boolean playing; @@ -127,14 +126,6 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest { } } - /** Sets an {@link AnalyticsListener} to listen for events during the test. */ - public final void setAnalyticsListener(AnalyticsListener analyticsListener) { - this.analyticsListener = analyticsListener; - if (player != null) { - player.addAnalyticsListener(analyticsListener); - } - } - // HostedTest implementation @Override @@ -145,19 +136,16 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest { String userAgent = "ExoPlayerPlaybackTests"; DrmSessionManager drmSessionManager = buildDrmSessionManager(userAgent); player = buildExoPlayer(host, surface, trackSelector, drmSessionManager); - player.prepare(buildSource(host, Util.getUserAgent(host, userAgent))); + player.setPlayWhenReady(true); player.addAnalyticsListener(this); player.addAnalyticsListener(new EventLogger(trackSelector, tag)); - if (analyticsListener != null) { - player.addAnalyticsListener(analyticsListener); - } - player.setPlayWhenReady(true); - actionHandler = Clock.DEFAULT.createHandler(Looper.myLooper(), /* callback= */ null); // Schedule any pending actions. + actionHandler = Clock.DEFAULT.createHandler(Looper.myLooper(), /* callback= */ null); if (pendingSchedule != null) { pendingSchedule.start(player, trackSelector, surface, actionHandler, /* callback= */ null); pendingSchedule = null; } + player.prepare(buildSource(host, Util.getUserAgent(host, userAgent))); } @Override @@ -172,10 +160,10 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest { @Override public final void onFinished() { + onTestFinished(audioDecoderCounters, videoDecoderCounters); if (failOnPlayerError && playerError != null) { throw new Error(playerError); } - logMetrics(audioDecoderCounters, videoDecoderCounters); if (expectedPlayingTimeMs != EXPECTED_PLAYING_TIME_UNSET) { long playingTimeToAssertMs = expectedPlayingTimeMs == EXPECTED_PLAYING_TIME_MEDIA_DURATION_MS ? sourceDurationMs : expectedPlayingTimeMs; @@ -189,8 +177,6 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest { && totalPlayingTimeMs <= maxAllowedActualPlayingTimeMs) .isTrue(); } - // Make any additional assertions. - assertPassed(audioDecoderCounters, videoDecoderCounters); } // AnalyticsListener @@ -251,12 +237,10 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest { return null; } - @SuppressWarnings("unused") protected DefaultTrackSelector buildTrackSelector(HostActivity host) { return new DefaultTrackSelector(new AdaptiveTrackSelection.Factory()); } - @SuppressWarnings("unused") protected SimpleExoPlayer buildExoPlayer( HostActivity host, Surface surface, @@ -274,20 +258,13 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest { return player; } - @SuppressWarnings("unused") protected abstract MediaSource buildSource(HostActivity host, String userAgent); - @SuppressWarnings("unused") protected void onPlayerErrorInternal(ExoPlaybackException error) { // Do nothing. Interested subclasses may override. } - protected void logMetrics(DecoderCounters audioCounters, DecoderCounters videoCounters) { - // Do nothing. Subclasses may override to log metrics. + protected void onTestFinished(DecoderCounters audioCounters, DecoderCounters videoCounters) { + // Do nothing. Subclasses may override to add clean-up and assertions. } - - protected void assertPassed(DecoderCounters audioCounters, DecoderCounters videoCounters) { - // Do nothing. Subclasses may override to add additional assertions. - } - }