From d81f0fc8d1f6b1f8bb898a9bcd5c1393ec3b67cc Mon Sep 17 00:00:00 2001 From: David Stevens Date: Tue, 15 Sep 2020 18:53:39 +0900 Subject: c2_e2e_test: decouple activity and test startup This change adds a boolean extra flag that can be set to make the test wait until it receives a specific intent to start the decode/encode test. The delay can be used to configure the activity's window before the test itself starts. Bug: 166403789 Test: manually verify the new flag works Change-Id: Ibbae112dbb3c977be2ad3bf8507e60eeeb4fb72d --- .../src/org/chromium/c2/test/E2eTestActivity.java | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tests/c2_e2e_test/src/org/chromium/c2/test/E2eTestActivity.java b/tests/c2_e2e_test/src/org/chromium/c2/test/E2eTestActivity.java index e423fc2..140ff82 100644 --- a/tests/c2_e2e_test/src/org/chromium/c2/test/E2eTestActivity.java +++ b/tests/c2_e2e_test/src/org/chromium/c2/test/E2eTestActivity.java @@ -29,6 +29,8 @@ public class E2eTestActivity extends Activity implements SurfaceHolder.Callback private SurfaceView mSurfaceView; private Size mSize; + private boolean mSurfaceCreated = false; + private boolean mCanStartTest = false; private Size mExpectedSize; private CountDownLatch mLatch; @@ -44,6 +46,8 @@ public class E2eTestActivity extends Activity implements SurfaceHolder.Callback mSurfaceView = (SurfaceView) findViewById(R.id.surface); mSurfaceView.getHolder().addCallback(this); + + mCanStartTest = !getIntent().getBooleanExtra("delay-start", false); } @Override @@ -55,6 +59,14 @@ public class E2eTestActivity extends Activity implements SurfaceHolder.Callback @Override public void surfaceCreated(SurfaceHolder holder) { + mSurfaceCreated = true; + maybeStartTest(); + } + + private void maybeStartTest() { + if (!mSurfaceCreated || !mCanStartTest) { + return; + } boolean encode = getIntent().getBooleanExtra("do-encode", false); String[] testArgs = getIntent().getStringArrayExtra("test-args") != null @@ -71,7 +83,7 @@ public class E2eTestActivity extends Activity implements SurfaceHolder.Callback encode, testArgs, testArgs.length, - holder.getSurface(), + mSurfaceView.getHolder().getSurface(), logFile); Log.i(TAG, "Test returned result code " + res); @@ -95,6 +107,12 @@ public class E2eTestActivity extends Activity implements SurfaceHolder.Callback @Override public void onNewIntent(Intent intent) { + if (intent.getAction().equals("org.chromium.c2.test.START_TEST")) { + mCanStartTest = true; + maybeStartTest(); + return; + } + synchronized (this) { if (mDecoderPtr != 0) { stopDecoderLoop(mDecoderPtr); -- cgit v1.2.3