Commit 3055de94 by samrobinson Committed by christosts

Don't use transformationResult with timeout/unexpected exceptions.

PiperOrigin-RevId: 503187291
parent aa23920e
...@@ -211,7 +211,10 @@ public class TransformerAndroidTestRunner { ...@@ -211,7 +211,10 @@ public class TransformerAndroidTestRunner {
throw transformationTestResult.analysisException; throw transformationTestResult.analysisException;
} }
return transformationTestResult; return transformationTestResult;
} catch (UnsupportedOperationException | InterruptedException | IOException e) { } catch (InterruptedException
| IOException
| TimeoutException
| UnsupportedOperationException e) {
resultJson.put( resultJson.put(
"transformationResult", "transformationResult",
new JSONObject().put("testException", AndroidTestUtil.exceptionAsJsonObject(e))); new JSONObject().put("testException", AndroidTestUtil.exceptionAsJsonObject(e)));
...@@ -227,12 +230,16 @@ public class TransformerAndroidTestRunner { ...@@ -227,12 +230,16 @@ public class TransformerAndroidTestRunner {
* @param testId An identifier for the test. * @param testId An identifier for the test.
* @param editedMediaItem The {@link EditedMediaItem} to transform. * @param editedMediaItem The {@link EditedMediaItem} to transform.
* @return The {@link TransformationTestResult}. * @return The {@link TransformationTestResult}.
* @throws IllegalStateException See {@link Transformer#startTransformation(EditedMediaItem,
* String)}.
* @throws InterruptedException If the thread is interrupted whilst waiting for transformer to * @throws InterruptedException If the thread is interrupted whilst waiting for transformer to
* complete. * complete.
* @throws IOException If an error occurs opening the output file for writing. * @throws IOException If an error occurs opening the output file for writing.
* @throws TimeoutException If the transformation has not completed after {@linkplain
* Builder#setTimeoutSeconds(int) the given timeout}.
*/ */
private TransformationTestResult runInternal(String testId, EditedMediaItem editedMediaItem) private TransformationTestResult runInternal(String testId, EditedMediaItem editedMediaItem)
throws InterruptedException, IOException { throws InterruptedException, IOException, TimeoutException {
MediaItem mediaItem = editedMediaItem.mediaItem; MediaItem mediaItem = editedMediaItem.mediaItem;
if (!mediaItem.clippingConfiguration.equals(MediaItem.ClippingConfiguration.UNSET) if (!mediaItem.clippingConfiguration.equals(MediaItem.ClippingConfiguration.UNSET)
&& requestCalculateSsim) { && requestCalculateSsim) {
...@@ -319,31 +326,25 @@ public class TransformerAndroidTestRunner { ...@@ -319,31 +326,25 @@ public class TransformerAndroidTestRunner {
}); });
// Block here until timeout reached or latch is counted down. // Block here until timeout reached or latch is counted down.
boolean timeoutReached = !countDownLatch.await(timeoutSeconds, SECONDS); if (!countDownLatch.await(timeoutSeconds, SECONDS)) {
long elapsedTimeMs = SystemClock.DEFAULT.elapsedRealtime() - startTimeMs; throw new TimeoutException("Transformer timed out after " + timeoutSeconds + " seconds.");
}
@Nullable Exception unexpectedException = unexpectedExceptionReference.get();
if (unexpectedException != null) {
throw new IllegalStateException(
"Unexpected exception starting the transformer.", unexpectedException);
}
long elapsedTimeMs = SystemClock.DEFAULT.elapsedRealtime() - startTimeMs;
@Nullable FallbackDetails fallbackDetails = fallbackDetailsReference.get(); @Nullable FallbackDetails fallbackDetails = fallbackDetailsReference.get();
@Nullable Exception unexpectedException = unexpectedExceptionReference.get();
@Nullable @Nullable
TransformationException transformationException = transformationExceptionReference.get(); TransformationException transformationException = transformationExceptionReference.get();
@Nullable Exception testException = null; if (transformationException != null) {
if (timeoutReached) {
testException =
new TimeoutException("Transformer timed out after " + timeoutSeconds + " seconds.");
} else if (unexpectedException != null) {
testException =
new IllegalStateException(
"Unexpected exception starting the transformer.", unexpectedException);
} else if (transformationException != null) {
testException = transformationException;
}
if (testException != null) {
return new TransformationTestResult.Builder(checkNotNull(transformationResultReference.get())) return new TransformationTestResult.Builder(checkNotNull(transformationResultReference.get()))
.setElapsedTimeMs(elapsedTimeMs) .setElapsedTimeMs(elapsedTimeMs)
.setFallbackDetails(fallbackDetails) .setFallbackDetails(fallbackDetails)
.setTestException(testException) .setTestException(transformationException)
.build(); .build();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment