Derive test output video name from the TAG.

We need the filename of the output videos to be predictable, because
MobileHarness requires the exact filename to pull the file.

PiperOrigin-RevId: 412092347
This commit is contained in:
samrobinson 2021-11-24 18:48:02 +00:00 committed by tonihei
parent c18cbf1b22
commit e45140871e
6 changed files with 35 additions and 11 deletions

View file

@ -50,6 +50,7 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
* Transforms the {@code uriString} with the {@link Transformer}. * Transforms the {@code uriString} with the {@link Transformer}.
* *
* @param context The {@link Context}. * @param context The {@link Context}.
* @param testId An identifier for the test.
* @param transformer The {@link Transformer} that performs the transformation. * @param transformer The {@link Transformer} that performs the transformation.
* @param uriString The uri (as a {@link String}) that will be transformed. * @param uriString The uri (as a {@link String}) that will be transformed.
* @param timeoutSeconds The transformer timeout. An assertion confirms this is not exceeded. * @param timeoutSeconds The transformer timeout. An assertion confirms this is not exceeded.
@ -57,7 +58,7 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
* @throws Exception The cause of the transformation not completing. * @throws Exception The cause of the transformation not completing.
*/ */
public static TransformationResult runTransformer( public static TransformationResult runTransformer(
Context context, Transformer transformer, String uriString, int timeoutSeconds) Context context, String testId, Transformer transformer, String uriString, int timeoutSeconds)
throws Exception { throws Exception {
AtomicReference<@NullableType Exception> exceptionReference = new AtomicReference<>(); AtomicReference<@NullableType Exception> exceptionReference = new AtomicReference<>();
CountDownLatch countDownLatch = new CountDownLatch(1); CountDownLatch countDownLatch = new CountDownLatch(1);
@ -81,7 +82,7 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
.build(); .build();
Uri uri = Uri.parse(uriString); Uri uri = Uri.parse(uriString);
File externalCacheFile = createExternalCacheFile(uri, context); File externalCacheFile = createExternalCacheFile(context, /* filePrefix= */ testId);
try { try {
InstrumentationRegistry.getInstrumentation() InstrumentationRegistry.getInstrumentation()
.runOnMainSync( .runOnMainSync(
@ -108,11 +109,12 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
} }
} }
private static File createExternalCacheFile(Uri uri, Context context) throws IOException { private static File createExternalCacheFile(Context context, String filePrefix)
File file = new File(context.getExternalCacheDir(), "transformer-" + uri.hashCode()); throws IOException {
File file = new File(context.getExternalCacheDir(), filePrefix + "-output.mp4");
Assertions.checkState( Assertions.checkState(
!file.exists() || file.delete(), "Could not delete the previous transformer output file"); !file.exists() || file.delete(), "Could not delete the previous transformer output file.");
Assertions.checkState(file.createNewFile(), "Could not create the transformer output file"); Assertions.checkState(file.createNewFile(), "Could not create the transformer output file.");
return file; return file;
} }

View file

@ -31,6 +31,11 @@ public class RemoveAudioTransformationTest {
public void removeAudioTransform() throws Exception { public void removeAudioTransform() throws Exception {
Context context = ApplicationProvider.getApplicationContext(); Context context = ApplicationProvider.getApplicationContext();
Transformer transformer = new Transformer.Builder(context).setRemoveAudio(true).build(); Transformer transformer = new Transformer.Builder(context).setRemoveAudio(true).build();
runTransformer(context, transformer, MP4_ASSET_URI_STRING, /* timeoutSeconds= */ 120); runTransformer(
context,
/* testId= */ "removeAudioTransform",
transformer,
MP4_ASSET_URI_STRING,
/* timeoutSeconds= */ 120);
} }
} }

View file

@ -31,6 +31,11 @@ public class RemoveVideoTransformationTest {
public void removeVideoTransform() throws Exception { public void removeVideoTransform() throws Exception {
Context context = ApplicationProvider.getApplicationContext(); Context context = ApplicationProvider.getApplicationContext();
Transformer transformer = new Transformer.Builder(context).setRemoveVideo(true).build(); Transformer transformer = new Transformer.Builder(context).setRemoveVideo(true).build();
runTransformer(context, transformer, MP4_ASSET_URI_STRING, /* timeoutSeconds= */ 120); runTransformer(
context,
/* testId= */ "removeVideoTransform",
transformer,
MP4_ASSET_URI_STRING,
/* timeoutSeconds= */ 120);
} }
} }

View file

@ -32,7 +32,6 @@ import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
@Ignore("Internal - b/206917996") @Ignore("Internal - b/206917996")
public final class RepeatedTranscodeTransformationTest { public final class RepeatedTranscodeTransformationTest {
private static final int TRANSCODE_COUNT = 10; private static final int TRANSCODE_COUNT = 10;
@Test @Test
@ -50,6 +49,7 @@ public final class RepeatedTranscodeTransformationTest {
differentOutputSizesBytes.add( differentOutputSizesBytes.add(
runTransformer( runTransformer(
context, context,
/* testId= */ "repeatedTranscode_givesConsistentLengthOutput",
transformer, transformer,
AndroidTestUtil.REMOTE_MP4_10_SECONDS_URI_STRING, AndroidTestUtil.REMOTE_MP4_10_SECONDS_URI_STRING,
/* timeoutSeconds= */ 120) /* timeoutSeconds= */ 120)
@ -77,6 +77,7 @@ public final class RepeatedTranscodeTransformationTest {
differentOutputSizesBytes.add( differentOutputSizesBytes.add(
runTransformer( runTransformer(
context, context,
/* testId= */ "repeatedTranscodeNoAudio_givesConsistentLengthOutput",
transformer, transformer,
AndroidTestUtil.REMOTE_MP4_10_SECONDS_URI_STRING, AndroidTestUtil.REMOTE_MP4_10_SECONDS_URI_STRING,
/* timeoutSeconds= */ 120) /* timeoutSeconds= */ 120)
@ -104,6 +105,7 @@ public final class RepeatedTranscodeTransformationTest {
differentOutputSizesBytes.add( differentOutputSizesBytes.add(
runTransformer( runTransformer(
context, context,
/* testId= */ "repeatedTranscodeNoVideo_givesConsistentLengthOutput",
transcodingTransformer, transcodingTransformer,
AndroidTestUtil.REMOTE_MP4_10_SECONDS_URI_STRING, AndroidTestUtil.REMOTE_MP4_10_SECONDS_URI_STRING,
/* timeoutSeconds= */ 120) /* timeoutSeconds= */ 120)

View file

@ -32,6 +32,11 @@ public class SefTransformationTest {
Context context = ApplicationProvider.getApplicationContext(); Context context = ApplicationProvider.getApplicationContext();
Transformer transformer = Transformer transformer =
new Transformer.Builder(context).setFlattenForSlowMotion(true).build(); new Transformer.Builder(context).setFlattenForSlowMotion(true).build();
runTransformer(context, transformer, SEF_ASSET_URI_STRING, /* timeoutSeconds= */ 120); runTransformer(
context,
/* testId = */ "sefTransform",
transformer,
SEF_ASSET_URI_STRING,
/* timeoutSeconds= */ 120);
} }
} }

View file

@ -31,6 +31,11 @@ public class TransformationTest {
public void transform() throws Exception { public void transform() throws Exception {
Context context = ApplicationProvider.getApplicationContext(); Context context = ApplicationProvider.getApplicationContext();
Transformer transformer = new Transformer.Builder(context).build(); Transformer transformer = new Transformer.Builder(context).build();
runTransformer(context, transformer, MP4_ASSET_URI_STRING, /* timeoutSeconds= */ 120); runTransformer(
context,
/* testId= */ "transform",
transformer,
MP4_ASSET_URI_STRING,
/* timeoutSeconds= */ 120);
} }
} }